better view controller presentation/dismissal to not trigger warnings

@aaustin leave on branch until 0.11.5 release

:+1:

Isn't this going to make the race conditions for 100% match almost certain to fail? If it waits 5 seconds before launching, initSession will have either finished or timed out.

That's not what is happening here. This is dealing with dismissal.
It used to wait 5 seconds to dismiss the invisible view controller, now it dismisses it as soon as the controller finishes presenting.
However, that raises another issue -- in poor connectivity scenarios, does this prevent retries that would have otherwise happened if this invisible view controller were kept open for up to 5 seconds? I think that's something we can worry about later. The important change here is to stop presenting with animated:NO as that triggers a warning that end users see.

Ah, this is removing that timeout. My mistake. Previously, five seconds after presenting, it would dismiss.  Why not just use the delegate properties to determine when to dismiss it? To your point about retries, I'm not sure that it retries, but this seems like it would cut things off for the main request early.

The important change here is to stop presenting with animated:NO as that triggers a warning that end users see.

That's probably an unbalanced transition call, right? I wouldn't think that changing to YES there would fix that. In fact, I think that changing to animated is what usually causes that. Is there a reason you need the plain controller to present that Saf controller though? Why not just make it the root controller originally?


See if we really need to build multiple python versions

Python is needed to build verilator and to run it (based on the Verilator docs) but this might be noarch: python because we aren't actually delivering any python artifacts, we only have makefiles that call python (I think).

Searching 4.034 for python shows that it is only used in examples/xml_py and the README mentions that 'C++-under-Python' is an output-type option.
Since Python>=3.5 is an optional dependence (like SystemC) and conda-forge no longer supports Python<3.5, we can definitely be no-arch Python.

verilator on  dont_hardcode_usr_bin_perl_v4.034 via 🅒 base took 8s
[I] ➜ git --no-pager grep -i python
README.adoc:{cpp}/SystemC/{cpp}-under-Python module.  The results are a compiled
ci/docker/buildenv/Dockerfile:                        python3=3.6.7-1~18.04 \
ci/docker/run/Dockerfile:                        python3 \
docs/doxygen.config:# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
docs/install.adoc:   sudo apt-get install perl python3
examples/xml_py/Makefile:PYTHON = python3
examples/xml_py/Makefile:PYTHON_VERSION := $(shell ${PYTHON} --version 2>&1)
examples/xml_py/Makefile:PYTHON_VERSION_FULL := $(wordlist 2,4,$(subst ., ,${PYTHON_VERSION}))
examples/xml_py/Makefile:PYTHON_VERSION_MAJOR := $(word 1,${PYTHON_VERSION_FULL})
examples/xml_py/Makefile:PYTHON_VERSION_MINOR := $(word 2,${PYTHON_VERSION_FULL})
examples/xml_py/Makefile:PYTHON_GE_3_5 := $(shell [ ${PYTHON_VERSION_MAJOR} -eq 3 -a ${PYTHON_VERSION_MINOR} -ge 5 ] && echo true)
examples/xml_py/Makefile:ifeq (${PYTHON_GE_3_5},true)
examples/xml_py/Makefile:default: python_message
examples/xml_py/Makefile:python_message:
examples/xml_py/Makefile:	@echo "Found Python version ${PYTHON_VERSION}, but require >= 3.5"
examples/xml_py/Makefile:	$(PYTHON) vl_file_copy -odir copied top.v
examples/xml_py/Makefile:	$(PYTHON) vl_hier_graph -o graph.dot top.v
examples/xml_py/vl_file_copy:#!/usr/bin/env python3
examples/xml_py/vl_file_copy:# -*- Python -*- See copyright, etc below
examples/xml_py/vl_hier_graph:#!/usr/bin/env python3
examples/xml_py/vl_hier_graph:# -*- Python -*- See copyright, etc below
examples/xml_py/vl_hier_graph:            # For more serious purposes, use the python graphviz package instead
nodist/fuzzer/actual_fail:#!/usr/bin/env python3
nodist/fuzzer/generate_dictionary:#!/usr/bin/env python3

@conda-forge-admin, please add noarch: python

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I made the recipe noarch: python in conda-forge/verilator-feedstock#4.

Actually, after looking at #4, I realized that we can't use noarch: python because we do need to build the C/C++ code on multiple platforms.  Since Python is an optional runtime requirement, I'm going to move it into run_constrained and hope that conda-smithy is smart enough to remove the python matrix.


Change of color on hovering the Readmore word and addition of links to icons

i)color of Readmore changes when we hover that line.

if possible there should be a link to read full article when we hover the Readmore word .
ii)Addition of links to the icons

I want to work on this issues.
@soham0005  please assign me this task with the labels gssoc-ext,hacktoberfest-accepted and level according to issue.

@Shirisha-16, do reach out if you have any doubt.
Happy Coding!

@soham0005 Do i need to keep a general example link or can u share your links of facebook,twitter,instagram. So that i can add


Slack channel down

Was going to ask a question in the Slack channel but the URL has the following error:
502 - An error occurred with your deployment

Think project authors also forgot about us

Sounds like there was a Slack outage. Not specific to this project. Looks like it's back up now though.

Still seeing the same error message at https://react-virtualized.now.sh/

Hm. I wonder if this is related to the recent Zeit outage.
The support channel is also accessible at react-virtualized.slack.com but because of how Slack works, you'll need an invite to join initially. That's what the Now deployment handles, by using rauchg/slackin.

I've just re-deployed and it looks like it's up and working again. Thanks for correcting my initial misunderstanding, and sorry for the inconvenience!

No worries, thanks for fixing it!


Build with latest/stable charmcraft (requirements.txt without hashes)

Issue

charmcraft pinned to 2.3.0
charmcraft stable (>2.3.0, <=2.4.1) can't do pip's secure installs (requirements.txt with hashes).

Solution

unpin charmcraft
poetry export requirements.txt w/o hashes

Is there any specific reason to use the latest charmcraft (i.e. feature or bug fix needed)? If not, maybe it'd be better to keep it pinned so that we don't lose the security benefit of hashes: https://pip.pypa.io/en/stable/topics/secure-installs/#hash-checking-mode

It's a tradeoff between security and maintenance effort. @taurus-forever it's your call

Is there any specific reason to use the latest charmcraft (i.e. feature or bug fix needed)?
If not, maybe it'd be better to keep it pinned so that we don't lose the security benefit of hashes:...

@carlcsaposs-canonical you are absolutely right about security concerns here!
This is why charmcraft needs to react seriously to bugreport https://github.com/canonical/charmcraft/issues/1179 + https://github.com/canonical/charmcraft/issues/1140 (sent ping there).
The reason why I am asking to fix it this way was the last interview candidate, which reported:
"I have tried to compile your charm following CONTRIBUTING.md, but it failed with strange errors I was not able to understand. I gave up...". Investigation showed:  charmcraft=2.4.1 from latest/stable.
The pinning of old version is a hidden knowledge (visible in CI/CD only).
The charmcraft 2.4.1 is the latest/stable. All team-mates/community will use it to build our charm (just because snapd refresh it silently).
My position: temporary remove hashes, until charmcraft releases the fix.

no longer topical


Random Battle: Update Mamoswine

Ice Shard can no longer be the only STAB on any Pokemon.
Remove Endeavor from Mamoswine. (less than 10% usage)

Hmm, perhaps we need to restrict Endeavor to leads only. It has its uses but it's pretty bad without Sash and/or on non-lead.


Right margin wrapping server module first part

This PR contains the changes in wrapping for 100 column right margin.

@dmytro-grankin PTAL

@alexander-aleksandrov PR name says that this a first part. But PR has no description about which part of the server module is affected by this PR. It generates the questions, expand the description a little bit.

@dmytro-grankin PTAL

@dmytro-grankin PTAL I fixed your comment

@dmytro-grankin Could you please specify how your last comment affects exactly this PR? I didn't change anything in Idea settings and also there are no files was committed with settings changes.

@dmytro-grankin PTAL


Pagination is ignoring siblingCount when boundaryCount is zero

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
When boundaryCount is set to zero, Pagination:

shows only first and last pages, no matter what i set on siblingCount;
doesn´t show the current page (if the current is not the first nor the last);
ignores siblingCount value not showing the always visible pages before and after the current page.

Expected Behavior 🤔
Pagination should not ignore the siblingCount value when boundaryCount is set to zero.
Steps to Reproduce 🕹
https://codesandbox.io/s/quirky-chebyshev-h25pc
Steps:

Step thru pages and you'll realize Pagination is not showing the siblingCount always visible pages before and after the current page.
Thats it.

Context 🔦
I would like to have a Pagination with the previous, current e next page numbers.
Your Environment 🌎
On chrome and firefox. I think the problem is not about the environment in this case.

Tech
Version

material-ui/core
v4.10.2

React
16.13.1

Browser
Chrome  83.0.4103.61

@guimacrf Thanks for taking the time to report the issue What do you think of this patch? Do you want to work on it? :)
diff --git a/packages/material-ui-lab/src/Pagination/usePagination.js b/packages/material-ui-lab/src/Pagination/usePagination.js
index 300ee9574..9464af317 100644
--- a/packages/material-ui-lab/src/Pagination/usePagination.js
+++ b/packages/material-ui-lab/src/Pagination/usePagination.js
@@ -62,7 +62,7 @@ export default function usePagination(props = {}) {
       boundaryCount + siblingCount * 2 + 2,
     ),
     // Less than endPages
-    endPages[0] - 2,
+    endPages.length > 0 ? endPages[0] - 2 : Infinity,
   );

   // Basic list of items to render

@oliviertassinari, if @guimacrf doesn't want to take this I'm more than happy to.

@oliviertassinari , I want to work on it. Thanks for the opportunity.
I will reply about your sugestion tonight.

@guimacrf Thanks for taking the time to report the issue What do you think of this patch? Do you want to work on it? :)
diff --git a/packages/material-ui-lab/src/Pagination/usePagination.js b/packages/material-ui-lab/src/Pagination/usePagination.js
index 300ee9574..9464af317 100644
--- a/packages/material-ui-lab/src/Pagination/usePagination.js
+++ b/packages/material-ui-lab/src/Pagination/usePagination.js
@@ -62,7 +62,7 @@ export default function usePagination(props = {}) {
       boundaryCount + siblingCount * 2 + 2,
     ),
     // Less than endPages
-    endPages[0] - 2,
+    endPages.length > 0 ? endPages[0] - 2 : Infinity,
   );

   // Basic list of items to render

@oliviertassinari , I made the correction a little differently than you suggested, but following your idea. Take a look:
diff --git a/packages/material-ui-lab/src/Pagination/usePagination.js b/packages/material-ui-lab/src/Pagination/usePagination.js
index 300ee9574..7391b7870 100644
--- a/packages/material-ui-lab/src/Pagination/usePagination.js
+++ b/packages/material-ui-lab/src/Pagination/usePagination.js
@@ -62,7 +62,7 @@ export default function usePagination(props = {}) {
       boundaryCount + siblingCount * 2 + 2,
     ),
     // Less than endPages
-    endPages[0] - 2,
+    endPages.length > 0 ? endPages[0] - 2 : count - 1,
   );

   // Basic list of items to render

Sending a pull request in a few minutes.

@guimacrf Thanks for looking into it, Infinity was probably not the best value 👍.

@oliviertassinari , Is it merged in latest version of material UI. Please let me know, how I can embedded this change on my end. I am also facing this same issue.

@oliviertassinari , Is it merged in latest version of material UI. Please let me know, how I can embedded this change on my end. I am also facing this same issue.

@shubknit This was merged in v5. You can upgrade

@shubknit This was merged in v5. You can upgrade

@oliviertassinari , v5 is not stable version. Currently v4.11.1 ✓ is to be used in production. When v5 is getting released ?

You can use v5 in production, there are more pros than cons at this point.

let boudaryCount={1} siblingCount={-1}
working for me


[Suggestion] Pattern storage for the advanced inscriber?

Maybe add 5 inventory slots on the left side of the advanced inscriber so that you can store your 5 different patterns there if you are doing manual crafting of your ME bits. That way you easily just take your gold ingot, redstone and silicon over to the machine, pick up the right pattern and make the bits.
Feels like something a real machine like this might have. If you don't want to change the machine too much from the beginning, you could even do it as a basic upgrade card that you slot in that activates those pattern storage slots.
Just a suggestion :) Feel free to close this when you see it.

The intention is to have separate machines for every process once you are past the very early game. I don't really see the value in this, sorry.


GSE[BUG]

The tanking code for GSE on the Demon Hunter is not working at all.  I have Max DPS and I also deleted all the GSE and re down loaded it. the DPS macros work but not the Tank. I am I am dumb but just cant figure it out what I am doing wrong.

Mate you have given me absolutely no meaningful information from which to help you.  If you are using someone else’s macro I suggest you take it up with them.
You have effectively said “I’m doing something wrong. You tell me what my problem is and how to fix it.”
Closing this as it has none of the BUG template information.


[SPARK-32399][SQL] Full outer shuffled hash join

What changes were proposed in this pull request?

Add support for full outer join inside shuffled hash join. Currently if the query is a full outer join, we only use sort merge join as the physical operator. However it can be CPU and IO intensive in case input table is large for sort merge join. Shuffled hash join on the other hand saves the sort CPU and IO compared to sort merge join, especially when table is large.
This PR implements the full outer join as followed:

Construct hash relation from build side, with extra boolean value at the end of row to track look up information (done in ShuffledHashJoinExec.buildHashedRelation and UnsafeHashedRelation.apply).
Process rows from stream side by looking up hash relation, and mark the matched rows from build side be looked up (done in ShuffledHashJoinExec.fullOuterJoin).
Process rows from build side by iterating hash relation, and filter out rows from build side being looked up already (done in ShuffledHashJoinExec.fullOuterJoin).

TODO: codegen for full outer shuffled hash join can be implemented in another followup PR.
Why are the changes needed?

As implementation in this PR, full outer shuffled hash join will have overhead to iterate build side twice (once for building hash map, and another for outputting non-matching rows), and iterate stream side once. However, full outer sort merge join needs to iterate both sides twice, and sort the large table can be more CPU and IO intensive. So full outer shuffled hash join can be more efficient than sort merge join when stream side is much more larger than build side.
For example query below, full outer SHJ saved 30% wall clock time compared to full outer SMJ.
def shuffleHashJoin(): Unit = {
    val N: Long = 4 << 22
    withSQLConf(
      SQLConf.SHUFFLE_PARTITIONS.key -> "2",
      SQLConf.AUTO_BROADCASTJOIN_THRESHOLD.key -> "20000000") {
      codegenBenchmark("shuffle hash join", N) {
        val df1 = spark.range(N).selectExpr(s"cast(id as string) as k1")
        val df2 = spark.range(N / 10).selectExpr(s"cast(id * 10 as string) as k2")
        val df = df1.join(df2, col("k1") === col("k2"), "full_outer")
        df.noop()
    }
  }
}

Running benchmark: shuffle hash join
  Running case: shuffle hash join off
  Stopped after 2 iterations, 15839 ms
  Running case: shuffle hash join on
  Stopped after 5 iterations, 28969 ms

Java HotSpot(TM) 64-Bit Server VM 1.8.0_181-b13 on Mac OS X 10.15.4
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
shuffle hash join:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
shuffle hash join off                              7555           7920         516          2.2         450.3       1.0X
shuffle hash join on                               5731           5794          62          2.9         341.6       1.3X

Does this PR introduce any user-facing change?

No.
How was this patch tested?

Added unit test in JoinSuite.scala.

cc @cloud-fan and @sameeragarwal if you guys have time to take a look, thanks.

Test build #127008 has started for PR 29342 at commit 635f6fb.

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-K8s/31632/
Test PASSed.

Test build #127008 has finished for PR 29342 at commit 635f6fb.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
   abstract class HashJoinedRow extends JoinedRow

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/127008/
Test PASSed.

Test build #127065 has started for PR 29342 at commit 01f1f04.

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-K8s/31687/
Test PASSed.

Test build #127065 has finished for PR 29342 at commit 01f1f04.

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/127065/
Test PASSed.

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-K8s/31831/
Test PASSed.

@agrawaldevesh - thank you for warm welcome, and excited to discuss and collaborate again here!

I am curious if the approach of storing the 'matched rows' out of band was considered ? The join algorithm could be extended to keep say an auxiliary struct of matched keys instead of populating this on the build side ? Since the build side hash tables are open addressed arrays, this auxiliary struct might be a bitset that stores the matched indices.

Yes I agree that would a good optimization for space. TLDR is I think given this full outer shuffled hash join is a new feature, and we could keep it simple to begin with and optimize further if needed, a detailed comment here.

In addition how do you account for this extra memory usage on the driver ? Is it possible that planner thinks that the query will "fit" and runs the query but it later on OOMs because of this extra "column" ?

That's a good question. Currently planner does not account for this extra boolean value overhead per row. However currently for BHJ and SHJ, planner does not take into account for extra key overhead in hash-map as well, and it's just based on size of rows. So to improve planner side of code, we need more change around it.

Test build #127211 has started for PR 29342 at commit d4e0084.

@cloud-fan, @maropu, @agrawaldevesh - addressed all comments, and the PR is ready for review again. Thanks.

Test build #127211 has finished for PR 29342 at commit d4e0084.

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/127211/
Test PASSed.

Test build #127255 has started for PR 29342 at commit 8b18f79.

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

@cloud-fan, @maropu, @agrawaldevesh and @viirya - addressed all new comments, and PR is ready for review. I get a sense that no major objections on overall approach, and we fixed multiple details and wording in previous iterations. Please take a look when you have time, thanks.

Test build #127255 has finished for PR 29342 at commit 8b18f79.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

I am curious if the approach of storing the 'matched rows' out of band was considered ? The join algorithm could be extended to keep say an auxiliary struct of matched keys instead of populating this on the build side ? Since the build side hash tables are open addressed arrays, this auxiliary struct might be a bitset that stores the matched indices.

I have the same feeling as well. The current approach has a few drawbacks to me:

It complicates the driver side hashed-relation building logic.
It increases the size of the data to be broadcasted.
It may waste space (every row has an extra boolean column, but not all of them will be updated)

I like the idea from @agrawaldevesh , we can build a bitset at executor side. It's good to have a bitset based on BytesToBytesMap, but I think a java standard bitset is fine. This is a new code path so we don't need to worry about perf regression.

@cloud-fan -

It complicates the driver side hashed-relation building logic.
It increases the size of the data to be broadcasted.

Note: the mark row feature is only active for full outer shuffled hash join. It has nothing to do with broadcast cast join and driver side hash relation building.
But if a java on-heap standard bitset is acceptable, I can change the PR with that approach.
WDYT?

+1 for the new idea. I guess that the code change can be more clear with it.

Yea let's use standard bitset. It's new code path anyway and we can improve later.

@cloud-fan, @viirya -
I just thought a bit more about it, and I think we need some tracking per row, but not per key. When doing full outer join, not only the join keys from both side should be matched, but the condition needs to be passed, e.g. in current implementation - https://github.com/apache/spark/pull/29342/files#diff-db4ffe4f0196a9d7cf1f04c350ee3381R139 .
So from ShuffledHashJoinExec after checking join condition, we need have a way to markRowLookedUp to call into HashedRelation. I am not sure if a bitset for values of BytesToBytesMap (not for key, but for values) is feasible. Do you guys have any thoughts? Thanks.

sorry I may miss something. I thought it would be
for (row <- inputs) {
  val match = hashedRelation.get(getKey(row))
  if (match != null && joinCondition(row, match)) {
    bitset.add(match.keyIndex)
    ...
  } else ...
}

... ++ hashedRelation.entries.filterNot(entry -> bitset.contains(entry.keyIndex)).map...

@cloud-fan - I thought for multiple different rows shared same key, the keyIndex here would be same. Is it the case that for every row BytesToBytesMap allocates a new key for them, even though if rows share same key?
I didn't check BytesToBytesMap details yet, and I will do a double check as well.

ah good point about one key multi value. How about we use a standard hash set and use (keyIndex, value_index) as the key?

ah good point about one key multi value. How about we use a standard hash set and use (keyIndex, value_index) as the key?
Yeah I think what I was suggesting would have required to expose the "Location.pos" via the HashedRelation.get() call. It is not worth it and lets just go with a HashSet.

Btw, can we use LongHashedRelation instead of the HashSet if we can squish the (keyIndex, valueIndex) into a single long number ?

For keyIndex, if what you really meant is pos of longArray in BytesToBytesMap, don't we still need to expose Location.pos? Otherwise how do we get the index of key?

@cloud-fan, @agrawaldevesh and @viirya - if we go with <keyIndex, valueIndex>, I think -
1.we probably still need one new abstract method for HashedRelation, which can be e.g.
HashedRelation.getWithIndex(key: InternalRow): Iterator[(InternalRow, Int, Int)]
where for UnsafeHashedRelation, 1st Int is the BytesToBytesMap.Location.pos (serve as key index) and 2nd Int is the BytesToBytesMap.Location.valueOffset (save as value index).
and for LongHashedRelation, this method getWithIndex will leave with UnsupportedOperationException for now.
2.In ShuffledHashJoinExec.fullOuterJoin, when streaming input rows, the getWithIndex will be called instead of get/getValue to get build side rows. A java normal HashSet or LongToUnsafeRowMap (I will check feasibility to squish key and value index into one long in this case) would be maintained separately inside ShuffledHashJoinExec.fullOuterJoin, to keep track of matched build side rows.
Does it sound good as a plan? Thanks.

The proposed approach looks good to me.
Some nit comments;

HashedRelation.getWithIndex(key: InternalRow): Iterator[(InternalRow, Int, Int)]

If we use HashSet[Long] or LongToUnsafeRowMap, the returned type is Iterator[(InternalRow, Long)]?

and for LongHashedRelation, this method getWithIndex will leave with UnsupportedOperationException for now.

Any plan to support the case? If we do so, the first key index should be long.

A few more thoughts:

For keyIsUnique code path, we know it's one key one value, I think we can still use bitset.
We don't need to get the value index. We can calculate it by ourselves since get(key) returns an Iterator[InternalRow]. e.g. values.zipWithIndex.

I would expect to see a def getWithKeyIndex(key): (Int, Iterator[InternalRow]). We can even combine key index and value index into a long for better performance.

@cloud-fan - sorry if I miss anything, could you elaborate more of

We don't need to get the value index. We can calculate it by ourselves

How do we calculate value index based on value itself?

@cloud-fan, @agrawaldevesh, @maropu and @viirya -
I took a more closer look inside BytesToBytesMap.java, and found it would probably be hard / hacky to get key index when iterating all values of map.
After reading the stream side of join, we need to iterate all rows on build side BytesToBytesMap to output build side rows not having a match. To iterate all rows on the map, BytesToBytesMap provides a method iterator(). The method is to iterate through all data (key-value pair) in each memory page of dataPages. The approach only reads through data pages, and does not interact with the key index array longArray at all. So we could not get key index efficiently here.
A workaround would be for every returned key-value pair inside MapIterator, we call lookup(key, ...) again on map to get key index. But we need a probing for every row on build side which seems to be obviously inefficient.
How do you guys think? Thanks.

@c21 yea this is a hard problem.
We can probably add a different iterator implementation in BytesToBytesMap, which iterates the longArray first, get the key address, and get key & value rows in dataPages. It's doesn't do extra key lookup, but it's not as cheap as the current BytesToBytesMap.iterator, because it needs extra addressing.

Thanks @cloud-fan and @maropu for feedback and discussion.
So here is the new proposal of change:

BytesToBytesMap.java:
Add a new iterator implementation to iterate on key index array longArray, and output key-value pair.
public MapIteratorWithKeyIndex iteratorWithKeyIndex()

HashedRelation.scala
Add two new methods in HashedRelation:

get values for the specified key with key index.
def getWithKeyIndex(key: InternalRow): (Int, Iterator[InternalRow])

get all values from map with key index
def valuesWithKeyIndex(): Iterator[(Int, InternalRow)]

Plan to implement both methods for UnsafeHashedRelation in this PR, and leave LongHashedRelation with UnsupportedOperationException  for now.

ShuffledHashJoinExec.scala
In method ShuffledHashJoinExec.fullOuterJoin:

if keys are unique in hash map:
A org.apache.spark.util.collection.BitSet is used to store key index (Int) of matched build side row.

if keys are non-unique in hash map:
The value index (Int) is computed based on order of rows returned by HashedRelation.getWithKeyIndex/valuesWithKeyIndex (they return the same order as the ordering in BytesToBytesMap).
Key index (Int) and value index (Int) would be packed into one Long index (e.g. upper 4 bytes for key, lower 4 bytes for value), and a java HashSet is used to store this <key index, value index> of matched build side row (I still need to verify the feasibility to use LongToUnsafeRowMap instead of HashSet but I take using HashSet is acceptable here).

Does it sound good as a plan? Thanks.

yea sounds good!

Any plan to support the case? If we do so, the first key index should be long.

@maropu - I think the key index for LongHashedRelation can be the index into key array - pos of array, which is still a Int here.

sgtm

Hi Cheng, I am wondering if you might have a perf test handy to test this new implementation vs your old approach ?
After going through the code and following along, I think my random idea of Bitset/auxiliary data structure might be a a lot more work/plumbing and may be inefficient compared to your older approach :-(. Let me explain:
The hashed relation has a list of (key, value) stored in pages. We want to know which of those key-value pairs didn't match. Unfortunately, due to the indirection of dataPages, this list is stored in a chunked way inside pages. You don't have ready access to the "index" of this list but instead of other things like (keyIndex, key, value, valueOffset, valueBase) and the like.
I don't want to lead you astray but I would advise you to not throw your old implementation and do some perf testing to validate that the axillary approach works better ?
Another way to solve this would be go with the spirit of your existing solution of putting the "matched bit" in the key-value payloads, but just put that as an unsafe field deep inside BinaryMap, so that you can avail of all the unsafe goodness. There will be a "Location.markMatched()" call to set this matched bit. Later on when you iterate these page entries in the BinaryMap, you can skip over those with the set matched bit. But this "unsafe" approach is more of an optimization and can cause other regressions.
So I would be curious for perf numbers for the two approaches of out of band matched-bit vs within the hashed relation matched-bit (older approach).
All the best and looking forward to how this new approach pans out !

@agrawaldevesh - thanks for notes. I totally agree. Just to point out for existing current approach, I already use unsafe row boolean type to store the matched bit in BytesToBytesMap.
I think for CPU usage, the current approach works better as it does not need to have extra look up in key array, when iterating all values of map (which my gut feeling is not very efficient). For memory usage, the newly proposed approach works better as it only saves information for matched row, but not all rows. This is a trade-off here. Side note: for our internal workload originally it is CPU bound but not memory bound, and we are gradually moving towards memory bound more and more now with new type of machines. Not sure whether it's a trend for others for caring more of memory usage.

Test build #127368 has started for PR 29342 at commit bd7261e.

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-K8s/31988/
Test PASSed.

let's compare the overheads of these 2 approaches.
The current approach (put "matched bit" in the value payload):

needs to do a project over the build side rows to add the extra boolean column
needs extra memory to store the "matched bit". (8 bytes in unsafe row)

The bitset/hashset approach

needs to build and update the bitset/hashset.
needs to get the key/value index when doing hash-join lookup.
needs to lookup bitset/hashset when iterating all the values at the end.

I think the new approach is usually more memory-efficient ("8 bytes * # of build side rows" v.s. "a bitset/hashset containing matched key/value index"). But if all rows are matched, and we can't use bitset, then hashset will take more memory.
The first approach is obviously more CPU efficient. If we can find a better way to package the "matched bit" in the value payload, then the memory problem is also solved.
I have a crazy idea: we can make the value length negative to indicate it's matched. Then the "matched bit" takes no extra memory. But I'm not sure how hard it is to update BytesToByteMap to support this hack.

@cloud-fan, @agrawaldevesh, @maropu and @viirya - updated the PR with latest proposed change (I still need to add unit test for BytesToBytesMap and HashedRelation, but the added unit test in JoinSuite should give us enough confidence for end-to-end working now. Would like to get feedback first before spending more time crafting more unit tests, thanks).
Tested with the same example small benchmark query in PR description, still seeing 30% wall clock time improvement compared to sort merge join (I agree this is much more a toy benchmark query, but it should give us some confidence that we are not doing some very wrong thing here in terms of performance):
Running benchmark: shuffle hash join
  Running case: shuffle hash join off
  Stopped after 2 iterations, 16602 ms
  Running case: shuffle hash join on
  Stopped after 5 iterations, 31911 ms

Java HotSpot(TM) 64-Bit Server VM 1.8.0_181-b13 on Mac OS X 10.15.4
Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
shuffle hash join:                        Best Time(ms)   Avg Time(ms)   Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
------------------------------------------------------------------------------------------------------------------------
shuffle hash join off                              7900           8301         567          2.1         470.9       1.0X
shuffle hash join on                               6250           6382          95          2.7         372.5       1.3X

Also running added unit test in JoinSuite. Verified all new added logic inside ShuffledHashJoin is 100% code covered (the not covered ones are related to code-gen, which is irrelevant here):

I have a crazy idea: we can make the value length negative to indicate it's matched. Then the "matched bit" takes no extra memory. But I'm not sure how hard it is to update BytesToByteMap to support this hack.

@cloud-fan - this is indeed crazy :). Honestly I feel it's becoming quite hacky where BytesToBytesMap is claimed to be An append-only hash map and we will break it with that. I will check tomorrow for feasibility but I feel either paths for now is fine for a starter new feature. Do you wanna take a look of current one that I have changed? Thanks.

Merged build finished. Test FAILed.

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

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-K8s/32016/
Test PASSed.

@cloud-fan - addressed all comments and added unit tests for HashedRelation and BytesToBytesMap. This PR is ready for review and merge if it looks good. Thanks.

Test build #127395 has started for PR 29342 at commit f4f0b0f.

Test build #127395 has finished for PR 29342 at commit f4f0b0f.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #127403 has started for PR 29342 at commit f4f0b0f.

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-K8s/32024/
Test PASSed.

Test build #127403 has finished for PR 29342 at commit f4f0b0f.

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/127403/
Test PASSed.

Test build #127420 has started for PR 29342 at commit 35651dd.

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-K8s/32041/
Test PASSed.

I am also curious if you can share the Perf benchmark you are using as a Gist (ideally linked in the PR description) in addition to please also reporting the aggregate CPU time ?

@agrawaldevesh - It's not a standalone benchmark, so it's hard to share as Gist. I ran the query in the environment of JoinBenchmark. You can run the same benchmark as followed:

Change JoinBenchmark.shuffledHashJoin with following query as specified in PR description:

def shuffleHashJoin(): Unit = {
    val N: Long = 4 << 22
    withSQLConf(
      SQLConf.SHUFFLE_PARTITIONS.key -> "2",
      SQLConf.AUTO_BROADCASTJOIN_THRESHOLD.key -> "20000000") {
      codegenBenchmark("shuffle hash join", N) {
        val df1 = spark.range(N).selectExpr(s"cast(id as string) as k1")
        val df2 = spark.range(N / 10).selectExpr(s"cast(id * 10 as string) as k2")
        val df = df1.join(df2, col("k1") === col("k2"), "full_outer")
        df.noop()
    }
  }
}

The JoinBenchmark is hardcoded to test disable/enable whole-stage code-gen. So we need to change it to test disable/enable shuffled hash join, by changing SqlBasedBenchmark.codegenBenchmark to:

  final def codegenBenchmark(name: String, cardinality: Long)(f: => Unit): Unit = {
    val benchmark = new Benchmark(name, cardinality, output = output)

    benchmark.addCase(s"$name off", numIters = 2) { _ =>
      withSQLConf(SQLConf.PREFER_SORTMERGEJOIN.key -> "true") {
        f
      }
    }

    benchmark.addCase(s"$name on", numIters = 5) { _ =>
      withSQLConf(SQLConf.PREFER_SORTMERGEJOIN.key -> "false") {
        f
      }
    }

    benchmark.run()
  }

cc @cloud-fan - all new comments are addressed. Thanks.

Test build #127421 has started for PR 29342 at commit 82ed0b4.

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-K8s/32042/
Test PASSed.

Test build #127420 has finished for PR 29342 at commit 35651dd.

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/127420/
Test PASSed.

Test build #127421 has finished for PR 29342 at commit 82ed0b4.

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/127421/
Test PASSed.

@agrawaldevesh @maropu @viirya   any more comments?
The benchmark shows that the previous "store matched bit in value payload" approach and the current "bitset/hashset" approach have similar performance. Then I prefer the current one because it's less hacky and the hashed relation is truly read-only.

I have not looked at current way in details. I will spend some time looking at it today.

@agrawaldevesh - thanks for pointer of measuring metrics for query and script. I will take a look. I also have the plan to backport the PR in our internal fork. We don't have it internally, I just add the feature here inspired by discussion with @cloud-fan and Bart Samwell (who told me delta engine will have this feature as well). I will run with our production queries in more serious way and report CPU metrics back here. But I want to align with our expectation here, that it may take couple of days and it's not a blocker for merging this PR, thanks.

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-K8s/32088/
Test PASSed.

Test build #127467 has started for PR 29342 at commit cf04e2f.

Test build #127467 has finished for PR 29342 at commit cf04e2f.

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/127467/
Test PASSed.

This improvement looks super nice! Thanks, @c21! Btw, I'm a bit afraid users won't notice this improvement, so how about describing something about it in SQLConf?
https://github.com/apache/spark/blob/1a4c8f718f748d8c2a39f0a3b209ce606bffe958/sql/catalyst/src/main/scala/org/apache/spark/sql/internal/SQLConf.scala#L332

Test build #127482 has started for PR 29342 at commit 381cdbc.

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-K8s/32103/
Test PASSed.

Test build #127482 has finished for PR 29342 at commit 381cdbc.

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

Merged build finished. Test FAILed.

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

retest this please

Test build #127483 has started for PR 29342 at commit 381cdbc.

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-K8s/32104/
Test PASSed.

@agrawaldevesh - sorry for a separate irrelevant ping. It seems that DecommissionWorkerSuite (added in https://github.com/apache/spark/pull/29014) was kind of flaky where it failed more than 3 times in testing for this PR (not looking at other PR). I can confirm the test failure is irrelevant as I don't touch any logic can affect the unit test and rerun of test succeeded.
An example of latest failed unit test is in https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/127482/testReport/, with stack trace in https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/127482/testReport/org.apache.spark.deploy/DecommissionWorkerSuite/decommission_workers_ensure_that_fetch_failures_lead_to_rerun/, thanks.

Test build #127483 has finished for PR 29342 at commit 381cdbc.

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/127483/
Test PASSed.

Test build #127492 has started for PR 29342 at commit 526709b.

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-K8s/32113/
Test PASSed.

Test build #127492 has finished for PR 29342 at commit 526709b.

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/127492/
Test PASSed.

Thanks, @c21, for the great improvement! Merged to master.

Thank you @maropu, @cloud-fan, @agrawaldevesh, and @viirya for all these insightful discussion and review!

@c21 thanks for this great improvement - quick question on this
https://github.com/apache/spark/pull/29342#discussion_r469568896

Btw, is it worth testing with shuffle partitions = 1 ?

I don't think so, as if there's only one shuffle partition,
we should use broadcast hash join instead.

BHJ doesn't support full outer join currently. Would it be possible to improve BHJ similarly to support full outer join as it's done here for SHJ? Thanks!

How do we know if join keys in a build(broadcasted) side don't exist in a stream side? If we can implement it cleanly, it looks okay to add it.

BHJ doesn't support full outer join currently. Would it be possible to improve BHJ similarly to support full outer join as it's done here for SHJ?

@Tagar - the major blocker is to figure out the non-matched rows from broadcasted side, as @maropu said. We did some brainstorming internally and one idea can be to make one single task to output all non-matched rows after collecting information from all other tasks.


fix cluster_helper.metrics_port zero means metric disable

Fix https://github.com/tair-opensource/RedisShake/issues/647

metrics_port 为0,监控不开启
pprof_port 若不为0,将不会自增，出现抢占端口的问题
修复loop函数在metrics_port为0时报错，影响：监控不开启时，主进程无法通过日志确定当前同步进度

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

v3 版本不演进了，我暂时关掉这个 PR


docs: Update data type alias

This reflects the change introduced by https://github.com/GreptimeTeam/greptimedb/pull/3731.
Checklist

[ ] Please ensure that the content in summary.yml matches the current document structure when you changed the document structure.
[ ] This change requires follow-up update in localized docs.

@nicecui Updated.


ch: Added set up the project landing page and user login and signup form

…ome, footer and login forms
Front-end setup and configuration
I added<EMAIL_ADDRESS><EMAIL_ADDRESS>I deed basic setup of the navbar, homepage, footer and the login pages.
Checklist:
null

hey buddy, run "npm serve -o"
On Mon, May 25, 2020 at 12:53 PM Didas Mbalanya<EMAIL_ADDRESS>wrote:

@didasmbalanya commented on this pull request.
NIce work however how can I test manually?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/BuildForSDG/team-132-frontend/pull/10#pullrequestreview-417599017,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJXHQ7LTHOQBAN2AVMZESVLRTI52TANCNFSM4NH7752Q
.


feat: deduplicate progress messages

Sometimes, an LSP server will start multiple tasks with the same message:

It makes no sense for Fidget to display all of them.

An idea: instead of hiding duplicates a counter, similar to one in browser's dev tools, could be displayed:
(2x) Completed Building (and then bump x counter on each repetition). What do you think?

I like the counter idea a lot! I'm wondering though, what mechanism should we use for deduplication?
At the moment, deduplication happens by key (which is the token accompanying each progress message); my initial thought was to add an option to the progress subsystem that allows that to be overridden.

I would love a deduplication feature as well. When using ltex-ls I get the notification "checking document" for every keypress, and they quickly start stacking:

Works great, thank you!


[Linux] showOpenDialog initialPath doesn't work

When I use initialPath inside showOpenDialog my File Manager shows me the recently used folders and when I use it in showSaveDialog everything works as I expect.
My initialPath variable is ProjectManager.getProjectRoot()._path
So this is working
FileSystem.showSaveDialog(title, initialPath, "",
this isn't
FileSystem.showOpenDialog(allowMultipleSelection, chooseDirectories, title, initialPath, fileTypes,
My machine:
Linux 3.17.6
Brackets 1.1.0

Try using ProjectManager.getProjectRoot().fullPath instead of ProjectManager.getProjectRoot()._path.

Try using ProjectManager.getProjectRoot().fullPath instead of ProjectManager.getProjectRoot()._path.

@sbruchmann it shows the same path and doesn't work as well. And I think because it works with the save dialog it should work with the open dialog, too.

@sbruchmann it shows the same path and doesn't work as well. And I think because it works with the save dialog it should work with the open dialog, too.

Ah, I misread your issue. Sorry for the inconvenience.

Ah, I misread your issue. Sorry for the inconvenience.

Do you have the same problem? I will try it with Windows in the next days.

Do you have the same problem? I will try it with Windows in the next days.

Works on my machine™
My setup:

OS X 10.9.5
Brackets Release 1.2 development build 1.2.0-15578 (master da48369fb)
build timestamp: Thu Jan 01 2015 23:47:59 GMT+0100
Brackets Shell d9b1cae

Tested with the following code sample:
define(function () {
    "use strict";

    var AppInit = brackets.getModule("utils/AppInit");
    var FileSystem = brackets.getModule("filesystem/FileSystem");
    var ProjectManager = brackets.getModule("project/ProjectManager");

    function main() {
        FileSystem.showOpenDialog(
            false,
            false,
            "Open a file",
            ProjectManager.getProjectRoot().fullPath,
            null
        );
    }

    AppInit.appReady(main);
});

Works on my machine™
My setup:

OS X 10.9.5
Brackets Release 1.2 development build 1.2.0-15578 (master da48369fb)
build timestamp: Thu Jan 01 2015 23:47:59 GMT+0100
Brackets Shell d9b1cae

Tested with the following code sample:
define(function () {
    "use strict";

    var AppInit = brackets.getModule("utils/AppInit");
    var FileSystem = brackets.getModule("filesystem/FileSystem");
    var ProjectManager = brackets.getModule("project/ProjectManager");

    function main() {
        FileSystem.showOpenDialog(
            false,
            false,
            "Open a file",
            ProjectManager.getProjectRoot().fullPath,
            null
        );
    }

    AppInit.appReady(main);
});

Windows 8.1
Brackets @ latest master
Release 1.1 Brackets Shell

So, it appears to be Linux only then, right?

Yes it is a Linux only problem! I've tested it on my Windows machine and everything works properly.

Fixed in 1.2 -- see PR adobe/brackets-shell#496.

@Wikunia As the fix now in the master, could you verify if the PR has fixed the problem?

@nethip is this fix already in Brackets or onlu in brackets-shell? I updated my fork yesterday and it didn't work.

@Wikunia . This is a fix in brackets-shell. You need to rebuild brackets-shell on Linux. As master branch is not yet ready for Linux compilation please use jasonsanjose/cef_217_linux branch to build Brackets on Linux. Here is the wiki for building brackets on Linux.
https://github.com/adobe/brackets-shell/wiki/Building-Brackets-Shell

@wikunia I checked if this is fixed or not and it is now fixed on Linux. The current Linux installer(posted at brackets.io) does not have this change. So when we post the next Linux installer, you can expect this issue to be fixed. Currently we are struggling with fixing the hang issues when quitting Brackets on Linux(after updating to latest version of chromium). All of the fixes relating to this are tracked at this PR. https://github.com/adobe/brackets-shell/pull/499.
I am closing this issue. Feel free to open this, if you feel the fix is not proper. Thanks!


The include at the end to build the executable JAR is missing the production profile

At the end of the tutorial, in the "Build an executable JAR" paragraph, the build instructions are missing the "production" profile that actually builds the frontend files to include in the JAR.
Without this, running the jar and trying to access the application produces an error page and this in the console:
java.lang.IllegalStateException:

  Failed to find the following files:
      - ./generated/jar-resources/lit-renderer.ts
      - ./generated/jar-resources/vaadin-time-picker/timepickerConnector.js
 [etc...]

includes in AsciiDoc do not seem to support a parameter that could contain the missing "-Pproduction" (for Maven), though.

Hi @DominiqueComte. I went through the guide and I see the same thing. Using ./gradlew bootRun will produce the desired results, but the instructions on the .jar file are incorrect. In addition to the problem you described in this issue the name of the .jar file is also incorrect. That is a common problem in our guides unfortunately.
You mention the AsciiDoc include files. Going forward I think we should favor correct information rather than standardized information if we have to choose one. That said, I think there is room for both using a new standard file. This is a pattern that I've implemented in a few guides, for example RabbitMQ.
For this guide specifically, I think that we should update the sections to roughly track:

Run the Application - ./gradlew bootRun
Preparing to Build the Application - modifying property files to set the profile
Building the Application - if guide specific configuration is handled in the 'Preparing to Build the Application' section, then hopefully this can remain common.

Could the instructions remain standard by merging the production profile into the default build ?
This way the frontend is simply built by using the usual Maven goals.

We should use includes only when they 100% match the need of the guide.
I am leaving this issue open in case you want to address it be merging the production profile.

I tried moving the contents of the "production" profile to the default build to avoid changing the build instructions, it works fine.
But when following the tutorial and generating the project from Spring Initializr, the production profile is there in the generated POM so the instructions still do not match.


Allow iOS to clear the tintColor property.

By allowing the image color to be set to nil, it's possible to set and then unset a tint color.
This now matches the Android behavior defined in FastImageViewManager.java
FastImageViewManager

This doesn't really works. It removes the tintColor but image still has a black tintColor for some reason.

There are still issues with thetintColor on iOS devices, the value is not cleared, so if switching on/off, the value stacks up.


Panel siderbar blocks the text

After last updates if the path is too long , sidebar appears but it block part of the text. This happens in Windows, couldn't reproduce in Linux.

This is caused by most likely by issue in Atom https://github.com/atom/atom/issues/5548

Resolved by new version of Atom.


Should we downgrade check/unitsperem_strict to a WARN on Google Fonts profile?

original title of this issue was:
FAIL: Stricter unitsPerEm criteria for Google Fonts.
Observed behaviour
The font has 2000upm, which doesn't exactly meet the Google spec, but there are two similar checks to indicate this:
🔥 FAIL: Stricter unitsPerEm criteria for Google Fonts.

com.google.fonts/check/unitsperem_strict

🔥 FAIL Font em size (unitsPerEm) is 1200. If possible, please consider using 1000. Good values for unitsPerEm, though, are typically these: [16, 32, 64, 128, 256, 500, 512, 1000, 1024, 2000, 2048]. [code: bad-value]

⚠ WARN: Checking unitsPerEm value is reasonable.
* [com.google.fonts/check/unitsperem](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/head.html#com.google.fonts/check/unitsperem)

⚠ WARN In order to optimize performance on some legacy renderers, the value of unitsPerEm at the head table should idealy be a power of between 16 to 16384. And values of 1000 and 2000 are also common and may be just fine as well. But we got 1200 instead. [code: suboptimal]

Expected behaviour
Chose only one fail/warn to keep.
Resources and exact process needed to replicate
https://github.com/emmamarichal/Familjen-Grotesk/tree/master/fonts/variable

I think the fail is too much
cc @m4rc1e @davelab6

The check states:

Font em size (unitsPerEm) is 1200.

This isn't a deal breaker to me.
I'd personally like to see this check dropped since it is too arbitrary. It should be up to the designer to select a upm which allows for all font details to be drawn correctly. Failing to drop it completely, it should be a warning, not a fail.

I agree, the warn is good information though; maybe it could be INFO check?
Like:
UPM=1200, FYI In order to optimize performance on some legacy renderers, the value of unitsPerEm at the head table should ideally be a power of 16 between 16 to 16384.

The reason why there are two similar checks here is because one of them is broader and comes from the universal profile, while the other one if stricter and comes from the googlefonts profile.
So, yeah, perhaps a good thing to do here would be to make the googlefonts profile remove the check inherited from universal profile.

On the PR #3798 I've just addressed the confusion by auto-skipping the OpenType one on the googlefonts profile.
This will be included in the upcoming v0.8.9 release.

But I will leave this issue open so that we can continue to discuss whether or not to downgrade check/unitsperem_strict from FAIL to WARN.

@davelab6, I'm starting to use the "Needs Dave's opinion" label on issues that I think you should take a look and help us decide.
In this specific case, I think I vaguely recall that making this a FAIL may have been your suggestion, as a policy to enforce good choices of UPM values for the Google Fonts collection.
Our code-tests have a long list of examples and reasoning for the choices of values deemed good or bad:

We've changed this in 40e78399f.


Develop

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-2.2%) to 83.4%

Totals

Change from base Build<PHONE_NUMBER>:
-2.2%

Covered Lines:
417

Relevant Lines:
500

💛  - Coveralls


doc: Fix FreeBSD link

What type of PR is this? (check all applicable)

[ ] Refactor
[ ] Feature
[ ] Bug Fix
[ ] Optimization
[x] Documentation Update
[ ] Other: Replace this with a description of the type of this PR

Description
I noticed that our README pointed to an outdated link for the polybar FreeBSD port.
@Tectu are the installation instructions otherwise still accurate?
Related Issues & Documents

Documentation (check all applicable)

[ ] This PR requires changes to the Wiki documentation (describe the changes)
[ ] This PR requires changes to the documentation inside the git repo (please add them to the PR).
[x] Does not require documentation changes

@patrick96 I'd recommend linking to freshports.org instead: https://www.freshports.org/x11/polybar
FreshPorts is universally the go-to resource for any FreeBSD port information that everybody uses. Repology links to there too.

Thanks!


Log all contexts with values when verbose=true

Proposal
Sometimes it's hard to understand what is happening with context. Did I put the right value? Did I name the context right?
It would be great to have a log for debugging purposes.
References
No response

Can you give some examples what would have been helpful?

When the recordState listener is executed - log "Context with name %context_name% with values $list_of_values% has been written"
When the 'deleteState'  listener is executed - log "Context with name %context_name% with values $list_of_values% has been deleted"
If we can hook to the handlebar helper 'state' - log "Access to context %context-name% value %value_of_requested_property".
I spent 30 minutes because I used a complex context name and added an extra underscore in the name =)

Sorry to hear that and thanks for the examples.

please check the PR #66 for a proposal on what and how things are logged. I would refrain from logging any values at these might contain data inserted by a user/tester.

thx. Closing it then. Will publish a patch release in a jiffy. Happy coding!!


signs: change default for warning sign to "‼"

'DOUBLE EXCLAMATION MARK' (U+203C) is typically more visible than
'WARNING SIGN' (U+26A0), which would require the emoji variation
selector (U+fe0f) to render it in width 2, but that makes it wider than
the other defaults, and is not handled well in Neovim/Vim.
Ref: https://github.com/kovidgoyal/kitty/issues/1612
Ref: https://github.com/neovim/neovim/issues/7151

Another alternative might be "⚡", open for other suggestions, of course.


Does have support for Styled Media Receivers.

https://developers.google.com/cast/docs/styled_receiver

@maximmcnair not yet, but PRs are welcome :) !

I believe it does because the app supports custom app id's correct? I use a custom receiver registered through the google cast development console and it works fine, and the styled media receiver is used the same way.

I does work by passing in our app id here: Chromecast.startScan(APP_ID);. But only when using the git repo, the package on npm is not up to date.

Any guideline, when can we expect it to be updated on NPM?


scripts: Add windows-build-tarball.ps1

An other nitpick would be to rename these script from windows-build-tarball.ps1  to windows-build-achive.ps1 ... but if for consistency you want to keep -tarball prefix, that also works

Or even better : windows-generate-build-tree-achive.ps1


Fix types and key maps for composed schemas

Two issues addressed here:

The DSL types hash did not merge in parent types. Override the types
accessors with one that merges in parent types.
Operation processing within Macros::Schema did not recursively merge
any nested operations.

These fixes allow for different key sets to be processed correctly.

@solnic looks like there is an issue when running the tests against dry-types's current main branch.

@robhanlon22 please rebase, main is now fixed

@solnic this is ready for eyeballs finally! sorry, had a bunch of other stuff i needed to get to

Comments addressed!


Using tableColumn head slot

Description
How can I have to use tableColumn head slot that it works?
I try make it like screen below but it dont works

Validations

[X] Ensure this issue neither a bug report nor a feature proposal.
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that descript the same thing to avoid creating a duplicate.

It works in playground, please check this demo.

so strange, now it works...


Scope(Apt::Source ... warnings during setup

It seems the module needs some cleanup. The following warnings are printed during manifest application:
==> default: Warning: Scope(Apt::Source[docker]): $include_src is deprecated and will be removed in the next major release, please use $include => { 'src' => false } instead
==> default: Warning: Scope(Apt::Source[docker]): $required_packages is deprecated and will be removed in the next major release, please use package resources instead.
==> default: Warning: Scope(Apt::Source[docker]): $key_source is deprecated and will be removed in the next major release, please use $key => { 'source' => https://apt.dockerproject.org/gpg } instead.
==> default: Warning: Scope(Apt::Key[Add key: 58118E89F3A912897C070ADBF76221572C52609D from Apt::Source docker]): $key_source is deprecated and will be removed in the next major release. Please use $source instead.

Closing in favour of #459. The issue is a backwards incompatible release of the apt module is coming at some point.


Bug Report:  Too Much time for lime test windows to compile (not first time)

Hello, I recently started fnf modding, I built the game, and it worked fine, but there is that problem that when I edit something
just 2 things, it takes too much time to compile the next time., it took about 2 hours or more, so can I do to stop this problem,
because if that carried on, I won't be able to make a mod in a really huge time
Using Windows 10 64-bit
Using latest version of Kade engine (1.7)

alr I will try fixing that


Fixed example code in README.md

I was confused for a few minutes and thought i did something wrong

Oh, sorry, it's for a previous simpler version


[GOBBLIN-1863] Multi-Active Launch Job Related Issues

Dear Gobblin maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[X] My PR addresses the following Gobblin JIRA issues and references them in the PR title. For example, "[GOBBLIN-XXX] My Gobblin PR"

https://issues.apache.org/jira/browse/GOBBLIN-1863

Description

[X] Here are some details about my PR, including screenshots (if applicable):

Bugs

DagManager check leader status before addDag bc calling this method from non-leader hosts throws a NPE which may caused failed dag event to be emitted. Then those job executions are skipped since they are marked as failed.
also handle LAUNCH type events upon leader change and setting a new participant DagManager to be active. Failing to handle these events may be causing missed flow launches on any leader change or restart.
Refactoring Done
Create a static function in Orchestrator to emit a flow failed event if spec compilation fails. This function is shared by the between the DagManager and Orchestrator. It takes in the eventSubmitter  as an argument to emit the event.
I abstracted all the checks in Orchestrator.orchestrate done to compile the flow and ensure an execution is allowed to be re-used by the DagActionStoreChangeMonitor when submitting the flow to the DagManager by calling submitFlowToDagManager.
Note that we skip spec compilation in multi-active mode to avoid two compilations since it's a memory intensive process and we can wait to do it before submitting to the DagManager.

Tests

[X] My PR adds the following unit tests OR does not need testing for this extremely good reason:
NA

Commits

[X] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #3727 (8b9be6e) into master (8198404) will decrease coverage by 2.12%.
Report is 1 commits behind head on master.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #3727      +/-   ##
============================================
- Coverage     47.45%   45.33%   -2.12%
+ Complexity     8687     2139    -6548
============================================
  Files          1731      413    -1318
  Lines         66736    17954   -48782
  Branches       7219     2183    -5036
============================================
- Hits          31671     8140   -23531
+ Misses        32306     8948   -23358
+ Partials       2759      866    -1893

see 2144 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Output values

I'm using videos encoded with ffmpeg x264 in default mode (subpixel motion estimation enabled, motion estimation range = 24). I have two questions about the output values of raw vectors.
Firstly, all values are integers, I expected noninteger values because of subpixel motion estimation. Secondly, there are values much larger than the motion estimation range.

Please consider mpegflow as an example of working with FFmpeg, and its AVMotionVector structure:  https://github.com/vadimkantorov/mpegflow/blob/master/mpegflow.cpp#L295
You can modify the relevant parts working with AVMotionVector, and possibly to post-process it differently. An analagous and newer tool is https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/extract_mvs.c
For motion scale, you may want to use mv.motion_scale (which i don't use) - https://github.com/FFmpeg/FFmpeg/blob/a0ac49e38ee1d1011c394d7be67d0f08b2281526/libavcodec/mpegutils.c#L32
Though ffmpeg itself doesn't seem to use it during motion vector visualization: https://github.com/FFmpeg/FFmpeg/blob/a0ac49e38ee1d1011c394d7be67d0f08b2281526/libavfilter/vf_codecview.c#L246
Good luck!


Character recognition

Issue Title :Character recognition
Implement character recognition in natural languages. Character recognition is the process of automatically identifying characters from written papers or printed texts.

[x] SWOC Participant
[ ] Contributor

Closes: #14
Describe the add-ons or changes you've made
Trained a keras model for alphanumeric predictions and achieved accuracy of 88.28%.
Type of change
What sort of change have you made:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
The notebook was ran by me on local machine as well as on kaggle and it ran successfully
Checklist:

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly wherever it was hard to understand.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have added things that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published in downstream modules.

Resolved the conflict

Fixed image path. I was using "" insteas of "/" to run the file on my windows machine and forgot to switch back.


Add analytics methods

Noticed that the new Sauce Analytics methods weren't included in this library.

@enriquegh
thanks! (especially for the tests) ... sorry about the delay merging this.


Join the WeChat Group

Hi, developers,
TransGPT is an exciting work! However, joining the WeChat discussion group via the QR code requires the invitation from the group owner. Is there any other ways to join the group?
Thanks.
Mianchu

Thanks for the info! Got it all fixed up. Sorry for the hassle.


Multicam triggering async

Hello
I wanted to reach out and figure out if this would be possible.
This is what is happening now.
I am running 8 cameras now and I want to optimize my code.
Right now we do this.
SwTrigger the camera and wait for the frame to be returned.
we do this for each camera sequentially.
This takes some time to do. Sometimes 2.5 seconds.
I would like to do the following but I have not had success.
SWtrigger each camera sequentially so they do not overlap.
This should take about 10 ms
then I would like to thread each cameras framegrabber to wait for a frame all at the same time. This seems straight forward but I seem to be having memory leak issues when I run the test and the data returned is inconsistent. I believe the shared_ptrs involved might be causing the issue.
It doesn't seem cooperate when I thread the fgs[index]->WaitForFrame(imgs[index].get(), 1000)
I can provide some code if needed.
Any thoughts or sample code on this.
The only multicam IFM3D sample code is sequential.
The Final goal would be able to asynchronously trigger each camera at the same time. That being 8 sensors or 20 sensors. I would like to grab data for all cameras without having to go through the list one by one.

@mikeNike9 could you please be so kind and share the configuration with us. I am interested in imager set-up and mode. Are all cameras using the same settings? The team will prepare a demo based on the information provided here: https://github.com/ifm/libo3d3xx/issues/46


Why can't this tool extract from itself?

Just being curious

sfextract.exe sfextract.exe -o temp

Could not extract: Only single file executables can be extracted.

Since it is not a single file executable.


Create Slytherin Page

Create a new page about Salazar Slytherin and Slytherin House which opens when you click this button.

Don't forget to link the page to this button. also create a separate folder for this by naming it Slytherin & use a theme of green, silver & black colors to make this page.

Sure go ahead.


The default gitops_path value is used even if the corresponding environment variable is set

At this point the default gitops_path value is used if the path env. variable is set. This needs to be changed to make sure that Flux can use the same manifest repository for different environments.

Item is closed.


ModuleNotFoundError: No module named 'gdsclient.algo'

I've tried to incorporate the library in a Jupyter notebook and get the following error:
Steps to reproduce:
git clone https://github.com/neo4j/gdsclient.git
cd gdsclient
pip install .

Then when I try to setup the library in the notebook:
from gdsclient import Neo4jQueryRunner, GraphDataScience
from neo4j import GraphDatabase

driver = GraphDatabase.driver(host,auth=(user, password))
gds = GraphDataScience(Neo4jQueryRunner(driver))

I get the following error:
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-5-155fb41d8c7a> in <module>
----> 1 from gdsclient import Neo4jQueryRunner, GraphDataScience
      2
      3 gds = GraphDataScience(Neo4jQueryRunner(driver))

~/anaconda3/lib/python3.8/site-packages/gdsclient/__init__.py in <module>
----> 1 from .graph_data_science import GraphDataScience
      2 from .query_runner import Neo4jQueryRunner, QueryRunner
      3
      4 __all__ = [GraphDataScience, QueryRunner, Neo4jQueryRunner]

~/anaconda3/lib/python3.8/site-packages/gdsclient/graph_data_science.py in <module>
----> 1 from .call_builder import CallBuilder
      2
      3
      4 class GraphDataScience:
      5     def __init__(self, query_runner):

~/anaconda3/lib/python3.8/site-packages/gdsclient/call_builder.py in <module>
----> 1 from .algo.algo_endpoints import AlgoEndpoints
      2 from .graph.graph_endpoints import GraphEndpoints
      3
      4
      5 class CallBuilder(AlgoEndpoints, GraphEndpoints):

ModuleNotFoundError: No module named 'gdsclient.algo'

and my python environment is:
Python 3.8.8
conda 4.10.1
I've tried without conda environment and the error persists

Hi @tomasonjo,
Thank you for reporting this. There was indeed an issue of us not including subdirectories properly when packaging. It should be fixed now.
So if you pip uninstall gdsclient, fetch and checkout the latest main and pip install . again, hopefully everything should be ok.
(FYI the docs are also a bit improved now :relaxed: )

thanks


Use internal registry with kyverno

This follows #436. It changes the registry from <IP_ADDRESS> or registry.registry to the minikube internal name which can also be used by both admission controllers running in a pod and the k8s node pulling the images. This does require the registry-proxy to be running in the background.
Because of #430, the attestation admission control policy is set to validationFailureAction: "Audit".

I'm not able to reliably run minikube on my M1 Mac at the moment, so I can't really verify this change.

I was able to validate the changes by using minikube running on top of colima.
I did have to export REGISTRY_PORT=5500 because 5000 is in use by a MacOS related service.

😄 Looks like I just needed to delete the minikube volume in Docker Desktop in order to make minikube happy again.
Also still needed to export REGISTRY_PORT=5500 since ControlCenter (AirPlay) is using 5000.

Force push was just a rebase.


fix: iceflowBase implementation

This implementation intends to add congestion control in the data publications sequence retrieval and sending interest to the producer

Hmm, considering that we are going to create a fork of ndn-svs instead, I suppose we could close this PR, right? :)

Closing this one since development will continue in a fork of ndn-svs.


Potential issues with renaming?

A user reported being asked to rename (with the standard Restrictions: All chat, All lobbies, Matchmaking, Room chat, Warning reminder) and failing, receiving the  message "You will be disconnected on success. Your new user name is: [new nickname]", but nothing happening. I've double checked, the new nickname was not taken. I was able to manually rename them afterwards.
I'm opening this ahead of time so we can refer to this, but I cannot reproduce this for now.

Another issue like this today, but again, little reproducibility details. Could still be coincidence.


Not compatible with ALT+X feature in Microsoft Word (wait, it’s not an issue)

In Microsoft Word, there is a little-known feature that automatically converts Unicode code points.
For example, in MS Word, type 0153 and then press ALT+X to get “œ”. Press ALT again to get back 0153
Unfortunately this won’t work if the keyboard layout has a character already defined at ALT+X
Wait, apparently this Microsoft Word only works for the standard US ANSI keyboard layout which treats the ALTGR key as ALT
So this is not an issue. Please close this. :)

You can close it yourselves !


feat(planning_debug_tools): add stop reason visualizer

Description
add stop reason visualizer in planning debug tools

Related links
https://github.com/autowarefoundation/autoware.universe/issues/1845
Tests performed
by psim
Notes for reviewers
test this with below command and add to rviz marker
ros2 run planning_debug_tools stop_reason_visualizer_exe
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.
[ ] The PR has been properly tested.
[ ] The PR has been reviewed by the code owners.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.
[ ] The PR is ready for merge.

After all checkboxes are checked, anyone who has write access can merge the PR.

@TakaHoribe
I added as a small text and added brief document


feat: use extraDomains and split chart

This is to support extraDomains easier within jenkins-x.
The idea being we can create the issues with the selector for extraDomains, then add an extra chart to be installed in each namespace's helmfile where they would like to use the certificate.
Apologies for the lack of testing, I've spent a fair amount of time looking at the tests and something just isn't clicking.
I'm going to copy the helm template outputs the different scenarios I've tested to show you that it's working correctly.

Hi @tomhobson. Thanks for your PR.
I'm waiting for a jenkins-x or todo member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign pmuir
You can assign the PR to them by writing /assign @pmuir in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Closing as I don't have time to continue this


DRILL-7279: Enable provided schema for text files without headers

Drill 1.16 allowed a "provided schema" for text files with headers. This PR extends the feature to text files without headers. Also adds support to use provided-schema table properties to override plugin config properties.

Allows a provided schema for text files without headers. The provided schema columns replace the columns column that is normally used.
Allows customizing four of the most commonly used text format properties using table properties. The table properties "override" properties set in the plugin config.
Added unit tests for the newly supported use cases.

See DRILL-7279 for additional details.

Thanks for adding all text properties. +1, LGTM.
Please squash the commits.

Commits squashed


Fixed: spelling mistake where 'adaptive' was mentioned as 'adative'

Hey there,
when trying out some integrations cards I realized that there are quite a few spelling mistakes regarding the word 'adaptive' in a  few tests as well as the samples section on the Card Explorer.
As I copied sample data I realized, that the path wasn't what I expected it to be ../adative/.., so I fixed it. Not a big deal or error in general.

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

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

Hi @SAPMarco!
Thank you for your fix!
Kind Regards, codeworrior

Hi @SAPMarco!
Thank you for your fix!
Kind Regards, codeworrior


Added 4 commands back, that allow you to change shirt, pants, face and tshirt with images as well.
They're named "customshirt, custompants, customtshirt, customface", they all allow the player running the command to specifiy image IDs as well.

If decals are supported as faces in :avataritem then we could probably go without adding :customface

If we add decal support as faces in :avataritem then we could probably go without adding :customface

You need to add a second argument for, face, shirt, pants and etc. for custom stuff, then it could only work.

If we add decal support as faces in :avataritem then we could probably go without adding :customface

You need to add a second argument for, face, shirt, pants and etc. for custom stuff, then it could only work.

Custom shirt/pants/tshirt should probably still be separate, I was just talking about custom faces. We wouldn't need a second argument if we assume all decals should be applied as faces

Custom shirt/pants/tshirt should probably still be separate, I was just talking about custom faces. We wouldn't need a second argument if we assume all decals should be applied as faces

Nevermind, this won't work the way I thought it would.

I think this should only be used for the images. ie. these custom commands should only have the abbility to change the image asset id.
So I don't think we'd need to have the support for assets other than images in the custom commands.

but if they don't have a shirt they need a shirt to get the image

I think this should only be used for the images. ie. these custom commands should only have the abbility to change the image asset id.
So I don't think we'd need to have the support for assets other than images in the custom commands.

but if they don't have a shirt they need a shirt to get the image

There are already commands for that

I think this should only be used for the images. ie. these custom commands should only have the abbility to change the image asset id.
So I don't think we'd need to have the support for assets other than images in the custom commands.

but if they don't have a shirt they need a shirt to get the image

There are already commands for that

which ones? I really wonder

When merge/cancelled???


Fix reloading

Fixes #6578. A few things:

Gunicorn has it's own reloader which works perfectly here, except:
The reloader doesn't work with preload_app, which we set in our gunicorn.conf.py file, and:
We use gunicorn.conf.py in local development, however:
We don't need to at all, everything specified in it is overkill for local development, but unfortunately:
Gunicorn picks up gunicorn.conf.py regardless of whether we specify it or not, so:
We also need to rename gunicorn.conf.py to gunicorn-prod.conf.py so --reload works.

(Unfortunately we still need hupper for the celery worker due to celery --autoreload being deprecated.)

It seems like one downside is that until https://github.com/benoitc/gunicorn/issues/2244 is fixed, any syntax error will crash the reloader, but it's still better than what we had before.


Exception in Tkinter Callback

frame = CTkXYFrame(root, width=1000)
frame.grid(row=1, column=1)

studentsTable = CTkTable(frame, values=studentsTableList)
studentsTable.grid(row=1, column=1)

marksTable = CTkTable(frame, values=marksTableList, write=1)
marksTable.grid(row = 1, column=2)

I have a problem, the application does not start. When I use CtkScrollableFrame, everything works

I also tried using pack positioning

@timursper-apps Don't add the width parameter in xyframe

@Akascape it doesn't help

Solution: I added the class into the main file


feat: allow specifying watcher root paths

This is a proposed feature to how watcher is configured.
Chokidar lets you specify one to many "root" paths to watch.  Currently fuse-box watches only one root, which is always env.APP_ROOT.  This PR leaves that as the default but allows overriding it with a root property in IWatcherPublicConfig.
Note that in a monorepo environment relying on workspaces, you would specify those workspace folders as roots, and in a future change, I plan to add the ability to auto-detect if in a workspaces environment and add those automatically.  But manual override of roots is a good feature to have anyway.

@warrenfalk could you update the docs for this? I don't want to have a documentation debt ;-)

Yep, doc updated


Remove safety section from README.

There are still some uses of unsafe in this crate.

@mbrubeck Hey, thanks for reporting! -- We should probably update the message to explain where we're using unsafe, rather than remove all information entirely. I'll write a quick patch for that. Thanks!


Docker Desktop for Windows does not work with TCE

Bug Report
I can't make TCE work as expected on my Docker Desktop for Windows on Windows 10.
Expected Behavior
I expected to install and run successfully.
Steps to Reproduce the Bug

choco install tanzu-community-edition -y

tanzu unmanaged-cluster create beepboop

kubectl config use-context kind-beepboop

kubectl get po -A
NAMESPACE            NAME                                             READY   STATUS              RESTARTS   AGE
kube-system          antrea-agent-cnchm                               2/2     Running             0          12m
kube-system          antrea-controller-76fd8dcd44-2wvr9               1/1     Running             0          12m
kube-system          coredns-558bd4d5db-vtgs8                         0/1     ContainerCreating   0          13m
kube-system          coredns-558bd4d5db-vvzfn                         0/1     ContainerCreating   0          13m
kube-system          etcd-beepboop-control-plane                      1/1     Running             0          14m
kube-system          kube-apiserver-beepboop-control-plane            1/1     Running             0          14m
kube-system          kube-controller-manager-beepboop-control-plane   1/1     Running             0          14m
kube-system          kube-proxy-zp8l4                                 1/1     Running             0          13m
kube-system          kube-scheduler-beepboop-control-plane            1/1     Running             0          14m
local-path-storage   local-path-provisioner-547f784dff-vwvdz          0/1     ContainerCreating   0          13m
tkg-system           kapp-controller-f7dbbcb4f-nmqfc                  1/1     Running             0          13m

Screenshots or additional information and context
N/A
Environment Details

Build version (tanzu version): v0.10.1
Deployment (Managed/Unmanaged cluster): Unmanaged cluster
Infrastructure Provider (Docker/AWS/Azure/vSphere): Docker
Operating System (client): Microsoft Windows [Version 10.0.19043.1586]
Kubectl version on Server: Server Version: v1.21.5

Diagnostics and log bundle

kubectl describe pod/coredns-558bd4d5db-vtgs8 --namespace kube-system
Name:                 coredns-558bd4d5db-vtgs8
Namespace:            kube-system
Priority:<PHONE_NUMBER>
Priority Class Name:  system-cluster-critical
Node:                 beepboop-control-plane/<IP_ADDRESS>
Start Time:           Tue, 15 Mar 2022 19:59:36 +0800
Labels:               k8s-app=kube-dns
                    pod-template-hash=558bd4d5db
Annotations:          <none>
Status:               Pending
IP:
IPs:                  <none>
Controlled By:        ReplicaSet/coredns-558bd4d5db
Containers:
coredns:
    Container ID:
    Image:         k8s.gcr.io/coredns/coredns:v1.8.0
    Image ID:
    Ports:         53/UDP, 53/TCP, 9153/TCP
    Host Ports:    0/UDP, 0/TCP, 0/TCP
    Args:
    -conf
    /etc/coredns/Corefile
    State:          Waiting
    Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Limits:
    memory:  170Mi
    Requests:
    cpu:        100m
    memory:     70Mi
    Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
    Readiness:    http-get http://:8181/ready delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:  <none>
    Mounts:
    /etc/coredns from config-volume (ro)
    /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vnclv (ro)
Conditions:
Type              Status
Initialized       True
Ready             False
ContainersReady   False
PodScheduled      True
Volumes:
config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      coredns
    Optional:  false
kube-api-access-vnclv:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 CriticalAddonsOnly op=Exists
                            node-role.kubernetes.io/control-plane:NoSchedule
                            node-role.kubernetes.io/master:NoSchedule
                            node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                            node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason                  Age                  From               Message
----     ------                  ----                 ----               -------
Warning  FailedScheduling        13m (x6 over 15m)    default-scheduler  0/1 nodes are available: 1 node(s) had taint {node.kubernetes.io/not-ready: }, that the pod didn't tolerate.
Normal   Scheduled               13m                  default-scheduler  Successfully assigned kube-system/coredns-558bd4d5db-vtgs8 to beepboop-control-plane
Warning  FailedCreatePodSandBox  12m                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "0d953f8ae30f892e237508f2b1273f18698eb07233d869d8487fdf9722b632f8": Server is busy, please retry later
Warning  FailedCreatePodSandBox  11m                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "447146ffb9c5eb6eeb0cd59dcc2b412a3a2d8887eb757f7580c11bfbf21bb799": Server is busy, please retry later
Warning  FailedCreatePodSandBox  11m                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "a67001a0aa99a9f6300e56a7cfeef0c367ec0d0ada1865c7af905e982661229e": Server is busy, please retry later
Warning  FailedCreatePodSandBox  10m                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "ae834db7dfad522700f1b31d54c23e15b349f76a22615b7b564bb08b812ea702": Server is busy, please retry later
Warning  FailedCreatePodSandBox  9m48s                kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "5aef00e345bad0fd26c01a78643afc39f271dc7565b2a1d457b7b2eec29d3b91": Server is busy, please retry later
Warning  FailedCreatePodSandBox  9m4s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "c7b720e3aa83c7a3a9bdab84f17a233b08d2ccbbc275f345070f5e70418da38a": Server is busy, please retry later
Warning  FailedCreatePodSandBox  8m22s                kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "db4539f128e2856b28095694112101fc226d74109ba3276d5571eea3e75c0977": Server is busy, please retry later
Warning  FailedCreatePodSandBox  7m39s                kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "d48e506528f05780350531bb373adfc62a00ae147bbd5b235476cbd18420f0fa": Server is busy, please retry later
Warning  FailedCreatePodSandBox  6m55s                kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "6a12c96522c2a2f802c15fd89f28ee7b64797e737c45b29e1b6876012bfd2f99": Server is busy, please retry later
Warning  FailedCreatePodSandBox  38s (x9 over 6m13s)  kubelet            (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "a12a0630de4f8582105a0b061d87892a3858ecaca194aeb6de3a836e53bb6407": Server is busy, please retry later

docker ps
CONTAINER ID   IMAGE                                                COMMAND                  CREATED          STATUS          PORTS                       NAMES
7004c1c758be   projects.registry.vmware.com/tce/kind/node:v1.21.5   "/usr/local/bin/entr…"   22 minutes ago   Up 22 minutes   <IP_ADDRESS>:14361->6443/tcp   beepboop-control-plane

docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
32b7c5c5eaf1   bridge    bridge    local
622157c4d2d0   host      host      local
5d3d6c755542   kind      bridge    local
263e3c9345a8   none      null      local

docker version
Client:
 Cloud integration: v1.0.22
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.12
 Git commit:        e91ed57
 Built:             Mon Dec 13 11:44:07 2021
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.5.1 (74721)
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.12
  Git commit:       459d0df
  Built:            Mon Dec 13 11:43:56 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Hi @doggy8088 - this looks like a known issue with WSL2. Our next release coming in a few weeks addresses this, but in the meantime you will either need to downgrade Docker Desktop to version 4.2.0, or follow this recommendation to force it to use cgroupv1:

Added a deprecated option to settings.json: "deprecatedCgroupv1": true, which switches the Linux environment back to cgroups v1. If your software requires cgroups v1, you should update it to be compatible with cgroups v2. Although cgroups v1 should continue to work, it is likely that some future features will depend on cgroups v2. It is also possible that some Linux kernel bugs will only be fixed with cgroups v2.

@stmcginnis Thanks! 👍

Ah, sorry, I think I looked too quickly. This looks more like a networking issue than the cgroups one. Can you try creating with tanzu uc create test --cni=calico? That will switch from the default CNI of Antrea to Calico.

Awesome, thanks for letting us know! This is another improvement in the upcoming release - we will default the CNI to calico for unmanaged clusters. So hopefully this will be less of an issue soon.
I'll close this issue out since it sounds like things are working for you now, but if there are any problems still, please feel free to reopen or file a new issue. Thanks!