[Captcher] A few different feature ideas

Options

[ ] Related to an issue: (Mention the issue)
[ ] Breaking change(s).
[X] Related to a cog. (Captcher)

Contents
A few feature requests I'd find useful :)

Wrong Message Kick Amount: So far the bot will immediately kick you if you enter the Captcha wrong. Let the admin decide how many times a user is allowed to enter it incorrectly before yeeting the user.
Refresh Captcha: Let the user refresh the captcha via an Emoji reaction or "refresh" in the chat if the captcha is unreadable
Timeout Adjust: Adjust the amount of time the user has to solve the captcha
Edit Message: Allow to edit the message the bot sends, or optionally allow users to completely turn this off and use "welcomeset" from Trusty-cogs to send a more customizable message which will also get auto-deleted once the user enters the captcha in/correctly

---
Optional:

Normal Chatting: Let the user write messages in the verify channel without the captcha plugin thinking he's trying to solve the captcha. As example, if the message doesn't start with a number don't interpret this as a solve attempt, maybe the user has some other issues he wants to discuss first.

Thanks!

Hey, thanks for your suggestion, here is my reply:
Wrong Message Kick Amount

Would you mind explaining again? I did not understood.

Refresh Captcha

This is a good idea, sometime, some captcha are hard to guess and this will help.

Timeout Adjust

I think about it, but this is possible.

Edit Message

I already think about it already, and I'm unsure about it, starting by how I could handle certain things.

Normal Chatting

No. The used channel should be used for passing captcha only, not for talking.

After reading again, I think I may be able to give an answer.

So far the bot will immediately kick you if you enter the Captcha wrong. Let the admin decide how many times a user is allowed to enter it incorrectly before yeeting the user.

Actually, the user is getting kicked if the bot is missing permissions to manage verification channel, since it try to mute the user in case he want to say anything else that shouldn't be in the channel.
However if muting has been successful, bot will wait 5 seconds, I guess this is possible to change this amount time, but I'm quite not understanding if it be useful.

After reading again, I think I may be able to give an answer.

So far the bot will immediately kick you if you enter the Captcha wrong. Let the admin decide how many times a user is allowed to enter it incorrectly before yeeting the user.

Actually, the user is getting kicked if the bot is missing permissions to manage verification channel, since it try to mute the user in case he want to say anything else that shouldn't be in the channel.
However if muting has been successful, bot will wait 5 seconds, I guess this is possible to change this amount time, but I'm quite not understanding if it be useful.

Could you mention this in the logs channel? Something along the lines "Failed to mute User after failed captcha attempt, User was kicked from server due to bot missing permissions".

It is already a thing, bot will add "(Immediate Kick)" at modlog message and logs message.
However I will indicate in logs channel that bot is missing permissions.

Here's a final message that will close the discussion and put the points on the development of Captcher. (Now Captcha)

Wrong Message Kick Amount (Adjust the limit of failed attempts or disable it completely)

Will be available.

Refresh Captcha (The option to refresh/regenerate a new captcha)

Will be available in next update.

Timeout Adjust (Adjust the limit of failed attempts or disable it completely)

Will be available in the future. Talking about it, it is impossible for me to disable it completely.

Edit Message (Edit the captcha message)

Will be available in next update.

Automatic verification
The current captcha bot I am using uses AI/machine learning to do most of the heavy work but sometimes it automatically verifies spam accounts and there isn't much you can do to change that. Maybe, if possible, add a setting that allows you to set the criteria for automatic verification (account age, has profile picture, ksoft bans etc)

Will be not available, I prefer that all users pass the captcha in order to join the server.
If you still want to add suggestions, feel free to add a comment.


AnimationLoop.onCreateContext - illegal context returned

I have had react-map-gl and deck-gl working in my code base with versions
"deck.gl": "^7.2.6"
"react-map-gl": "^5.0.10"
presenting the map and layers.
Now with the exact same code and data I am getting the following error.  Can you possibly advise me the best way to debug this?
animation-loop.js:444 Uncaught (in promise) Error: AnimationLoop.onCreateContext - illegal context returned
at AnimationLoop._createWebGLContext (animation-loop.js:444)
at animation-loop.js:133
_createWebGLContext @ animation-loop.js:444
(anonymous) @ animation-loop.js:133
Promise.then (async)
start @ animation-loop.js:150
Deck @ deck.js:144
componentDidMount @ deckgl.js:40
commitLifeCycles @ react-dom.development.js:22079
commitLayoutEffects @ react-dom.development.js:25331
callCallback @ react-dom.development.js:337
invokeGuardedCallbackDev @ react-dom.development.js:386
invokeGuardedCallback @ react-dom.development.js:439
commitRootImpl @ react-dom.development.js:25069
unstable_runWithPriority @ scheduler.development.js:701
runWithPriority$2 @ react-dom.development.js:12231
commitRoot @ react-dom.development.js:24909
finishSyncRender @ react-dom.development.js:24304
performSyncWorkOnRoot @ react-dom.development.js:24284
(anonymous) @ react-dom.development.js:12285
unstable_runWithPriority @ scheduler.development.js:701
runWithPriority$2 @ react-dom.development.js:12231
flushSyncCallbackQueueImpl @ react-dom.development.js:12280
flushSyncCallbackQueue @ react-dom.development.js:12268
discreteUpdates$1 @ react-dom.development.js:24401
discreteUpdates @ react-dom.development.js:1439
dispatchDiscreteEvent @ react-dom.development.js:5914

Please provide the following information:

The exact version of deck.gl installed
OS & version
Browser & version
GPU

<EMAIL_ADDRESS>Win 10 Pro x64 - v1809
Google Chrome Version 80.0.3987.132 (Official Build) (64-bit)
Intel Core i5-8500 3.00GHz with Intel UHD Graphics 630

Tried various things, no fix, restart session, tab, browser, incognito, etc etc.  The problem persisted on the same code base.  Finally - I restarted PC and the problem went away.  But the problem has been intermittent in the past.

Can you try adding the following prop to DeckGL:
  glOptions={{
    onError: console.error
  }}

Merging with https://github.com/visgl/deck.gl/issues/4250


As a volunteer, be able to mark pledged requests as complete once they are fulfilled

We don't have time to finish this before our presentation.


DrawCenterText in PxMatrix library or equivalent

Dear All
I love the PxMatrix library but I am looking for a solution to center my numbers on the matrix and keep them centered. The numbers have the top left location as the cursor setting and therefore is the numbers go above 9 (10, 30, and 100) the location shifts. I would like to center align or right top corner as a reference. However I have not seen a function like that in the PX matrix. Any ideas ?

Text is drawn by the AdafruitGFX library not pxmatrix itself. So you may want to submit an issue with them if you like to. In the meantime you could always center it yourself by adding a a varying number of spaces before the number ...


[CH-162]support limit operator

What changes were proposed in this pull request?
support limit operator
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

I ran the test case test 'select collect limit', saw the spark plan below:
== Physical Plan ==
CHNativeColumnarToRow
+- *(2) LimitTransformer 0, 5
   +- RowToCHNativeColumnar
      +- Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=1312]
         +- CHNativeColumnarToRow
            +- *(1) LimitTransformer 0, 5
               +- *(1) FilterExecTransformer (l_orderkey#3447L = 1)
                  +- FileScan parquet default.lineitem[l_orderkey#3447L] Batched: true, DataFilters: [(l_orderkey#3447L = 1)], Format: Parquet, Location: ClickHouseFileIndex(1 paths)[file:/home/myubuntu/Works/IdeaProjects/gluten-dev/backends-clickhous..., PartitionFilters: [], PushedFilters: [EqualTo(l_orderkey,1)], ReadSchema: struct<l_orderkey:bigint>

why it exists a Exchange SinglePartition?
The vanilla spark plan is :
== Physical Plan ==
CollectLimit 5
+- *(1) Filter (isnotnull(l_orderkey#1L) AND (l_orderkey#1L = 1))
   +- *(1) ColumnarToRow
      +- FileScan parquet default.lineitem[l_orderkey#1L] Batched: true, DataFilters: [isnotnull(l_orderkey#1L), (l_orderkey#1L = 1)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[file:/data1/test_output/tpch-data-sf10/lineitem], PartitionFilters: [], PushedFilters: [IsNotNull(l_orderkey), EqualTo(l_orderkey,1)], ReadSchema: struct<l_orderkey:bigint>

collect limit in spark is
case class CollectLimitExec(limit: Int, child: SparkPlan) extends LimitExec {
  override def output: Seq[Attribute] = child.output
  override def outputPartitioning: Partitioning = SinglePartition
  override def executeCollect(): Array[InternalRow] = child.executeTake(limit)
  private val serializer: Serializer = new UnsafeRowSerializer(child.output.size)
  private lazy val writeMetrics =
    SQLShuffleWriteMetricsReporter.createShuffleWriteMetrics(sparkContext)
  private lazy val readMetrics =
    SQLShuffleReadMetricsReporter.createShuffleReadMetrics(sparkContext)
  override lazy val metrics = readMetrics ++ writeMetrics
  protected override def doExecute(): RDD[InternalRow] = {
    val locallyLimited = child.execute().mapPartitionsInternal(_.take(limit))
    val shuffled = new ShuffledRowRDD(
      ShuffleExchangeExec.prepareShuffleDependency(
        locallyLimited,
        child.output,
        SinglePartition,
        serializer,
        writeMetrics),
      readMetrics)
    shuffled.mapPartitionsInternal(_.take(limit))
  }
}

It runs a local limit on every task node, and then runs a global limit.

ShuffledRowRDD

Which spark version? The Spark 3.2 is below:

When the partition num is equal 1, it will use childRDD directly, but not ShuffledRowRDD.

I have removedCollectLimitExec, for the following reasons
1
CollectLimitExec only occurs when limit is the final operation to output some rows. In most cases, dataset is not too large and make this operation support columnar may not bring to much improvement.
2
During TransformPreOverrides, we cannot get the child's partition number, since the partition number is always 0. So we need to add a single partition shuffle here. This may different from spark.
I have tried to implement a columnar collect limit exec, but found that some APIs are private in spark, and make the implementation not easy.

@lgbo-ustc Please do a rebase and resolve the conflicts, thanks.

Please rebase and include prewhere support.


Dump device profiler results in worker cores in async mode

Ticket
#12219
Problem description
Device profiler is making calls to CQ commands in main thread
What's changed
Push dump device profiler results to worker cores. Lock over the entire function to make the calls thread safe
Checklist

[x] Post commit CI passes https://github.com/tenstorrent/tt-metal/actions/runs/10709120816
[x] T3K profiler https://github.com/tenstorrent/tt-metal/actions/runs/10709124431
[x] Device Perf https://github.com/tenstorrent/tt-metal/actions/runs/10709127495
[x] uBenchmark https://github.com/tenstorrent/tt-metal/actions/runs/10709130084

Dump device is the only part that does any CQ commands in profiler so push them to workers for each device and
wrap the entire function in a mutex to make it thread safe
Yes we lose parallelizing the CQ commands, but they are actually a very minimal portion of the entire call
e.g.
For a ~6s device dump that bunch of various things that can’t be parallelized, only 2.86ms of it is the blocking EnqueReadBuffer. The rest of the function cannot be parallelized.

Serialized run for DumpDeviceProfileResults


DSRM Reader

Hello,
is it possible to also make an DSRM Reader dashboard addon?

Hi Alex,
You mean like not only running only the datalogger as addon but also the application itself?
Yes it could be build but you can also use https://github.com/hassio-addons/addon-portainer this addon to install it yourself (also working on the raspberry):

Install Portainer
With Portainer, install Postgres (https://hub.docker.com/_/postgres)
With Portainer, install dsmr-reader by xirixiz (https://hub.docker.com/r/xirixiz/dsmr-reader-docker)

Let me know if this works for you.

@alexswart i released the full DSMR Reader addon, would love your feedback: https://github.com/sanderdw/hassio-addons/tree/master/dsmr_reader


ERROR: No matching distribution found for onnxruntime==1.7.0

I keep getting the following error, when installing ivadomed from source on Compute Canada (graham).
ERROR: No matching distribution found for onnxruntime==1.7.0
Whether with python==3.9.7 or python==3.8, and
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 --find-links https://download.pytorch.org/whl/torch_stable.html, I still run into the same error.

So apparently Compute Canada has very limited package availability versus regular PyPI. @naga-karthik ran into this similar issue before. Did you manage to get it resolved, Naga?

Yeah, the onnxruntime package causes a problem on Compute Canada. @etetteh I was not able to resolve it but one quick way to fix this is to comment out the import statement in this line. This works because onnxruntime is only used when we want to run inference on a system that does not have a GPU, in which we have to convert it into the system-agnostic onnx format so that it also works on the CPU.
Hence, commenting it out should not cause any issue in routine ivadomed training.

Thanks. I commented onnxruntime out both here and here, and that issue was resolved.
However, installing ivadomed on Compute Canada inside a python==3.9 virtual environment raised the following error:

The fix for a successful installation for me was to use python==3.7.9.

Thanks for reporting back! Here s another related issue #919.

Thank you @dyt811. As mentioned by @naga-karthik onnxruntime is not needed when running on GPU platform, so simply commenting it out in the requirements_common.txt file and the import in ivadomed/inference.py was the fix.

@dyt811 #1000 would install onnxruntime only when user explicitly specifies (not added as of now, but definitely had this in mind while drafting the PR). Perhaps we could consider importing onnxruntime inside https://github.com/ivadomed/ivadomed/blob/422ada13a3d4d4904116ab99dac7d2cb61ac841a/ivadomed/inference.py#L31-L45
which would basically import onnxruntime only when the onnx_inference is called. I guess this should resolve this issue. Moreover, it's worth checking if this is due to the strict requirements as Joshua recommended loosening our requirements a bit.

@mpompolas experienced the same issue on the servers at McGill. I think it is reasonable to increase the priority level of this issue

This also shows up on any system using python3.10:
https://github.com/ivadomed/ivadomed/runs/6658529084?check_suite_focus=true#step:4:68
ERROR: Ignored the following versions that require a different python version: 2.5.2 Requires-Python !=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,<3.9dev,>=2.7
ERROR: Could not find a version that satisfies the requirement onnxruntime==1.7.0 (from versions: none)
ERROR: No matching distribution found for onnxruntime==1.7.0
Error: ERROR: Action failed during dependency installation attempt with error: The process '/opt/hostedtoolcache/Python/3.10.4/x64/bin/python' failed with exit code 1

Unfortunately onnx doesn't yet support 3.10: https://github.com/microsoft/onnxruntime/issues/11680


Need to offer some sort of feedback function outside of email

No reason this couldn't be integrated into the website itself, viewable in admin, and setup to email people when feedback is left.

This could also be used to request access to the site. No reason this couldn't be a form on the website, really.


NuGet has broken .NET core clr support

https://www.nuget.org/packages/IdentityServer4.EntityFramework/

fixed


Adapt new thread sizes for thread count > 16 .

Could you elaborate on the reason, why we decided to go this path?

These new thread sizes came up from our last weekly meeting.


Funds sent to Sparrow generated address confirmed, funds never arrives

I was sending funds to my sparrow wallet and when I copied the address it pasted "38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4". Anytime I generate a new address this one copies as well. I made this wallet as a legacy wallet accidentally but I don't think it would affect me receiving btc.

Is your Sparrow connected? What does the toggle in the lower right corner indicate? Is it yellow, green or blue?

It’s yellow when on.
On Tue, Mar 8, 2022 at 3:49 AM craigraw @.***> wrote:

Is your Sparrow connected? What does the toggle in the lower right corner
indicate? Is it yellow, green or blue?
—
Reply to this email directly, view it on GitHub
https://github.com/sparrowwallet/sparrow/issues/459#issuecomment-1061542502,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYDVYXMG53QF34DSEFIHOELU64IAPANCNFSM5QEN2AFQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok. Refresh the wallet (View menu) and check the loading log (Transactions tab) to make sure there are no failures loading the wallet. Also, check the Address above appears in the Addresses tab.

I did all of that and nothing shows up in transactions and none of my
receive addresses match the one it gives me. I still don't understand why
when I copy my receive address, no matter what it is, it copies
"38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4". I even made a new wallet and that one
copies the address perfectly fine.
On Tue, Mar 8, 2022 at 6:40 AM craigraw @.***> wrote:

Ok. Refresh the wallet (View menu) and check the loading log (Transactions
tab) to make sure there are no failures loading the wallet. Also, check the
Address above appears in the Addresses tab.
—
Reply to this email directly, view it on GitHub
https://github.com/sparrowwallet/sparrow/issues/459#issuecomment-1061689315,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYDVYXNLFUDVRBUDLUEYE7LU644C7ANCNFSM5QEN2AFQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

You mean no matter what the address says on the screen, it copies "38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4"? Given this is a legacy wallet, I assume your addresses start with "1...."? Was the new wallet that you created also a legacy wallet?

Yes correct. The new one I made was a native segwit and it copies the
address just fine.
On Tue, Mar 8, 2022 at 3:29 PM craigraw @.***> wrote:

You mean no matter what the address says on the screen, it copies
"38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4"? Given this is a legacy wallet, I
assume your addresses start with "1...."? Was the new wallet that you
created also a legacy wallet?
—
Reply to this email directly, view it on GitHub
https://github.com/sparrowwallet/sparrow/issues/459#issuecomment-1062179224,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYDVYXNVIRCGPFCEWJ2VXGTU662AVANCNFSM5QEN2AFQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Unfortunately, it sounds like the machine Sparrow is running on may be compromised. I suspect there is malware running which monitors the system clipboard for any legacy Bitcoin addresses, and replaces them with its own address. If you take a look at https://mempool.space/address/38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4, you will see that address has been reused in many transactions. One form of this malware is known as 'CryptoShuffler', although there may be others.
It appears that the malware does not operate on Native Segwit addresses - that's why you were able to copy the address from your new wallet without issues.

I was thinking that when it first happened and once I ran malwarebytes, the
address copied just fine. Thank you
On Tue, Mar 8, 2022 at 4:28 PM craigraw @.***> wrote:

Unfortunately, it sounds like the machine Sparrow is running on may be
compromised. I suspect there is malware running which monitors the system
clipboard for any legacy Bitcoin addresses, and replaces them with its own
address. If you take a look at
https://mempool.space/address/38pBm8pU2KkkBeCczLhTwXRCXD3W91Jha4, you
will see that address has been reused in many transactions. One form of
this malware is known as 'CryptoShuffler', although there may be others.
It appears that the malware does not operate on Native Segwit addresses -
that's why you were able to copy the address from your new wallet without
issues.
—
Reply to this email directly, view it on GitHub
https://github.com/sparrowwallet/sparrow/issues/459#issuecomment-1062229526,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYDVYXJHFF4DSWWUQYW4KJLU67BABANCNFSM5QEN2AFQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

Glad it's resolved.


[bug] aquatic-ws - Prometheus metrics discrepancies

Hi again,
When consuming the Prometheus metrics exported from aquaitc-ws, I have noted that over a long period of time, there are "ghost" entries in both the aquatic_active_connections and aquatic_peer_clients metrics, causing the numbers to not reflect aquatic_peers or the number of open tcp sockets on the server.
For example:

After a large spike in concurrent peers, all using a specific client, in this case WebTorrent 0.6, the number of peers reported in both the aquatic_peer_clients and aquatic_active_connections metrics do not appear to not fully reflect all of the peers disconnecting until aquatic-ws is restarted.
I believe this is a bug, due to the metrics being counts and not incremental values, but I have not been able to identify the specific condition needed to reproduce this issue, but have been noticing this consistently on aquaitc-ws since implementing Prometheus metrics.

Thanks.
I couldn't reproduce it, but I did find some issues that could possibly be the cause. I've just merged fixes.

After updating and having this running for over the past week, this appears to be fixed:

Thanks again for the fixes.

Great!


The fallback location of Hyprland socket is not properly configured when $TMP environment variable is set

In 0.10.3 Waybar was updated to support the new location of Hyprland IPC socket. The corresponding code contains logic to find the fallback location. The code uses the std::filesystem::temp_directory_path function to get location of the temp directory.
The temp_directory_path function does not always return path to the /tmp directory and may be affected by several environment variables. My distribution provides a $TMP variable that does not point to the /tmp directory. Therefore the path is not properly computed, the module can not communicate with Hyprland.
In old version of Hyprland wiki specifies the directory of the socket to be /tmp. Taking into account that previous Waybar was working perfectly fine with the same directory I suggest to change the search path to /tmp:
     socketFolder = xdgRuntimeDir / "hypr";
   } else {
     spdlog::warn("$XDG_RUNTIME_DIR/hypr does not exist, falling back to /tmp/hypr");
-    socketFolder = std::filesystem::temp_directory_path() / "hypr";
+    socketFolder = std::filesystem::path("/tmp") / "hypr";
   }
   socketFolder = socketFolder / instanceSig;
   return socketFolder;

If you want to fix it for your self just do exec = $XDG_RUNTIME_DIR=/path/to/runtime/dir waybar in your Hyprland config


How use a template URL in request

Hi all,
I'm trying to use a template URL in request like
$req = new \GuzzleHttp\Psr7\Request('GET', '/{email}');

The only solution have found is not very beautiful ....
// $request == \GuzzleHttp\Psr7\Request
$request = $this->getRequest(self::GET_USER_BY_EMAIL);
$url = \GuzzleHttp\uri_template(urldecode($request->getUri()), ['email' => $email]);
$response = $this->clientAPI->send($request->withUri(new \GuzzleHttp\Psr7\Uri($url)));

Is it possible to do the same things but more easier ?
Thanks in advance for your help ;)

No, Guzzle does not provide any mechanism for doing this magically. What you've done is the correct way to handle this if you want to use a URI template.

arf, no plan to add this feature later ?
This should by great for calling REST API.


Authentication type is entity Id not table ID

[Enter feedback here]
It mentions:
The Table Id value that specifies a globally unique name for the SAML 2.0 identity provider.
Example (Azure AD): https://login.microsoftonline.com/7e6ea6c7-a751-4b0d-bbb0-8cf17fe85dbb/
Should be:
The Entity Id value that specifies a globally unique name for the SAML 2.0 identity provider.
Example (Azure AD): https://login.microsoftonline.com/7e6ea6c7-a751-4b0d-bbb0-8cf17fe85dbb/

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

ID: 78758a5f-b84d-36ef-07bb-c53732c6a374
Version Independent ID: 5b0292f5-e236-e84e-f647-d0c46869ae1a
Content: Configure a SAML 2.0 provider for portals - Power Apps
Content Source: powerapps-docs/maker/portals/configure/configure-saml2-provider.md
Service: powerapps
GitHub Login: @sandhangitmsft
Microsoft Alias: sandhan

Thank you for your feedback. Documentation has been updated and will reflect the changes in some time.


Docker-machine Cert Generation Issue

The docker-machine cert generation has issues if multiple machines are spin up at the same time.  This was (partly) fixed in #83  but I think the given work around does not fully solve the issue. For me the certificates are generated in /.docker/machine instead of /root/.docker/machine. This has been discussed e.g. in https://github.com/docker/machine/issues/3845#issuecomment-280389178
I propose to explicitly set USER and HOME before creating the dummy machine. I would also suggest to remove the dummy machine again as it is not needed after creation of the certificates.

Port fix for terraform 0.12, still need to check


Retain non-null installer fields when copying over root values

[x] Have you signed the Contributor License Agreement?
[x] Are you working against an Issue?

Resolves #490

Added a test for validation.
cc @Trenly

Microsoft Reviewers: Open in CodeFlow

/azp run


Remove unwanted metadata

If a metadata form value is not set, and there is no default value, meta forms should* return an empty string "".
Instead of including the empty string meta value in frontmatter, Prose will now just not include that property.
Exceptions are title and published.

*Textareas forms are another exception, since reading the values are abstracted in CodeMirror and js-yaml code, "null" and "false" both register as empty strings and thus will not be included. If for some reason you need to set a meta form to "false" or false, use a text form.
Would close #945

does that mean if the key already existed, but had no value, it would be deleted? That doesn't seem good to me, if I'm understanding.

@budparr If you had the default set in _config.yml you would still see the form element in the metadata, but if you left that form blank the key just wouldn't appear in the frontmatter. But the form would still be there each time, so if you went back and added a value later then it would appear again.

@budparr is that how you understood it?

That's what I was not understanding. Sounds good.

so if you went back and added a value later then it would appear again


how can i write a plugin in async mode?

export default myplugin = ({ type:t }) => {
       let visitor = {
            stringLiteral ( path ) {
                  asyncfn(path, result =>{
                      // do something async
                      // how can i get these async result into ast tree?
                  })
            }
       }
       return {
            visitor
       }
}

This issue tracker is for issues with the babeljs.io website.
For questions and support please visit the discussion forum, Slack community, or StackOverflow.

Babel only supports synchronous transformations, sorry, and as mentioned, this repo is not for support requests.


Update vendored 'chosen' css

Change url to image_url to get fingerprinted image paths. This fixes
404 for chosen-sprite.png (and @2x)
This is fixed in the current version of harvesthq/chosen. @fofr Could we just upgrade to that? I chose to just fix in place for now to avoid any undesirables.
Trello

LGTM merge when :green_heart:

Good to see this fixed :)


FIX: plan metadata should be accessed at open_run

Most current scan plan metadata code is failing silently when their md properties are accessed prior to open_run. This should fix it. After a brief chat with @danielballan.
I'd like to require an md attribute on all plans so we don't ever have missing metadata due to buggy code. However, according to @danielballan this won't work with Hugo's code...

I'd like to require an md attribute on all plans so we don't ever have missing metadata due to buggy code. However, according to @danielballan this won't work with Hugo's code...

In case others are reading along, I specifically meant that the input "plan" should only be required to be a generic iterable. Our built-in OO plans happen to be classes with certain useful attributes, but Python generators and lists should also work. This has makes it easy to test, write very simple examples, and to generalize how Messages are sent. cc @hhslepicka

Updated to using dict.update as per @danielballan's request.


support building Python packages using distutils

Fixes #394.

This works for my use case, thanks for looking at it. :+1:

FWIW, I recall encountering a PyPI package which didn't even support --help-commands, but I have no idea what it was, possibly a super-old version of pyyaml? Anyway, I don't think that's worth thinking too much about in 2020— certainly with this change you probably have like 99% of coverage of all the stuff which actually matters.

If we run into another packages which doesn't work with this we can look into how to make it work.


npm run dev hangs

user@hp-laptop:~/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state$ npm run dev

><EMAIL_ADDRESS>dev
> vite

[info] welcome to sbt 1.8.2 (Eclipse Adoptium Java 11.0.17)
[info] loading global plugins from /home/user/.sbt/1.0/plugins
[info] loading settings for project scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state-build from plugins.sbt ...
[info] loading project definition from /home/user/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state/project
[info] loading settings for project livechart from build.sbt ...
[info] set current project to livechart (in build file:/home/user/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state/)
[info] sbt server started at local:///home/user/.sbt/1.0/server/e4aef4330ff55f755220/sock
[info] started sbt server
>....>....>....>....

Doesn't seem to do anything on those >...

If sbt is running in another tab, this appears:
user@hp-laptop:~/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state$ npm run dev

><EMAIL_ADDRESS>dev
> vite

[info] welcome to sbt 1.8.2 (Eclipse Adoptium Java 11.0.17)
[info] loading global plugins from /home/user/.sbt/1.0/plugins
[info] loading settings for project scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state-build from plugins.sbt ...
[info] loading project definition from /home/user/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state/project
[info] loading settings for project livechart from build.sbt ...
[info] set current project to livechart (in build file:/home/user/Dev/Scala/scalajs-sbt-vite-laminar-chartjs-example-scalablytyped-end-state/)
[warn] sbt server could not start because there's another instance of sbt running on this build.
[warn] Running multiple instances is unsupported
>....>....

Fixed by SBT reinstall


add support for World4You in Acme

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/plugins/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues, open and closed, and I'm convinced that mine is new.
[x] When the request is meant for an existing plugin, I've added its name to the title.

Is your feature request related to a problem? Please describe.
I am working a lot with World4You and I had to use a lot of workarounds to use the ACME plugin from OpnSense.
I have domains registered at World4You and I had to use the nameservers from Desec because Desec is already supported by the ACME plugin in OpnSense.
I want to get rid of this as I want to use the full features from World4You and at the same time from OpnSense without any workaround.
Describe the solution you'd like
I have already found a solution which I have tested on my OpnSense instance. I have created a local branch, but I cannot push it, as I do not have permissions.

Implemented in https://github.com/opnsense/plugins/pull/3735, will be available in os-acme-client 3.20.


Update Room.Boundaries.dyf

i added support for revit 2016 as well as debugging option using traceback

Nice, thanks! Will check it out in the next couple of days.

Hi Guys,
I'm working with:

Revit 2016 20150714_1515 SP2
Dynamo <IP_ADDRESS>72
Clockwork for Dynamo 0.90.7

I found the Room.Boundaries script on one of the Dynamobim.org forums and tried it with the OOTB rac advanced sample project and it "jams" in the "Room.Boundaries" node??? I thought it was because the architecture was linked but it gave me the same problem with the arch file directly also. I'd like to know what I'm doing wrong, thanks.

Thanks for the great work!!!! I'm getting more and more requests from engineers on what Dynamo can do to help design calcs for MEP.

Thanks @ksobon - I don't know why I left this one lying around for so long. Now I have to make it work for 2017, too... ;-)


ModuleNotFoundError: No module named 'flask.ext'

python -V 3.6.3
when I run the program
Traceback (most recent call last):
File "/Users/mosson/Downloads/microblog-master/microblog.py", line 1, in
from app import create_app, db, cli
File "/Users/mosson/Downloads/microblog-master/app/init.py", line 5, in
from flask_sqlalchemy import SQLAlchemy
File "/Users/mosson/envs/flask_env_3.6/lib/python3.6/site-packages/flask_sqlalchemy/init.py", line 30, in
from flask.ext.sqlalchemy._compat import iteritems, itervalues, xrange,
ModuleNotFoundError: No module named 'flask.ext'

Error with latest install of flask_sqalchemy as far as i know.
from flask_sqlalchemy import SQLAlchemy
  File "C:\Users\ashbu\Documents\trio-ircproxy\trio-ircproxy\venv\Lib\site-packages\flask_sqlalchemy\__init__.py", line 30, in <module>
    from flask.ext.sqlalchemy._compat import iteritems, itervalues, xrange, \
ModuleNotFoundError: No module named 'flask.ext'

@ashburry-chat-irc Try upgrading your dependencies. You have some very old ones in there.


We can't run the docker as we want

@jcfr
Hello Jean-christophe,
Thank you so much for your work. We have been looking at what you did those weeks and it's perfect.
However we still have one issue that we don't know how to solve.
In the dockerfile that you wrote: "L42: ENTRYPOINT bash --init-file /app/slicer-env.sh"
we understood that when the docker will be run, the first script that will be executed will be the slicer-env.sh bash script.
Our problem is that when we tried to run the following command line:
docker run --rm our_docker_name:latest bash /app/a_bash_script.sh --help
nothing happened.
We tried several approaches and the only one that worked is to copy all the paths in the slicer-env.sh into the dockerfile as ENV. But we don't think it's a "clean" solution.
So we have a couple of questions:

Is there a way to run a bash script even if there is a ENTRYPOINT inside the dockerfile script
Is there another way to create all the paths for the docker container

If you need more explanation and/or if you have time, we could schedule a meeting if you are available this week.
Thank you very much,
Sincerely,
Romain and Celia

It is great you are making progress :100:
Also thank you for the detailed description.

Thank you so much for your work

Credits should go to @allemangD who spent the time to add the script and update the DockerFile.
Creating pull request

Your latest changes

I noticed you directly added few commits on top of the main branch. The problem is that these commits do not have a descriptive message and where not reviewed.
I suggest to do the following:
(1) Push your changes in a separate branch called clusterpost-integration. This can be done like this:
git clone git@github.com:DCBIA-OrthoLab/SlicerCMF-docker.git
git push origin main:clusterpost-integration

(2) Revert the main branch to remove the two commits:
git reset --hard HEAD~2
git push origin main --force

(3) Go to https://github.com/DCBIA-OrthoLab/SlicerCMF-docker and create a new pull request
Comments

In the dockerfile that you wrote: L42: ENTRYPOINT bash --init-file /app/slicer-env.sh
we understood that when the docker will be run, the first script that will be executed will be the slicer-env.sh bash script.

Our problem is that when we tried to run the following command line:
docker run --rm our_docker_name:latest bash /app/a_bash_script.sh --help
nothing happened.

To  better answer the questions, could you describe where  /app/a_bash_script.sh comes from. Is it a script already available in the image or a script living outside ?

No problem, we will do it.
/app/a_bash_script.sh is a script that we will download in the dockerfile (RUN wget github/a_bash_script.sh), and that will run a slicer module, such as bone texture or histogram matching.

It is probably easiest to just manually source /app/slicer-env.sh from within a_bash_script.sh. This is what I would recommend. You can see the necessary changes in https://github.com/allemangD/SlicerCMF-docker/commit/4f7c56ea413bd1f7c23ca09950bee2c71c2cb700
Usage in that case would look something like this:
$ docker run --rm cmf bash some-script.sh

My intent in using ENTRYPOINT with --init-file was to automatically set up the environment; however, I misunderstood that --init-file is ignored if bash is run non-interactively (as with executing a script). The only other way I know to achieve this is to modify ~/.profile and use bash --login; however I do not recommend that. The only benefit may be that it would allow usage without a helper script; if you're interested you can see those changes in https://github.com/allemangD/SlicerCMF-docker/commit/b98a5f8d67efd9c76cee7034bc17c6ad6d495b95.
$ docker run --rm cmf -c ComputeGLCMFeatures --help

I would recommend the first approach; just add source /app/slicer-env.sh to the top of a_bash_script.sh and remove ENTRYPOINT from the Dockerfile.


Proposal: user -> ubuntu

Reasons to do this:

Containerbase only works using Ubuntu images today
Changing the base image in future would be a large task, definitely a breaking change anyway
Renovate and Mend images have been using ubuntu as the user for so long that changing them to use user instead would be much more work

So therefore my proposal is to refactor Containerbase to default to ubuntu instead of user here: https://github.com/containerbase/base/blob/5354700b5b7dc262783ea45a642dd82e17241a51/src/usr/local/bin/install-buildpack#L8
This would allow us to deprecate the renovate/* containerbase (buildpack) images faster.
Any reasons why not to do this?

I think the sidecar image is already running as user and the username seems to not matter as long as the user id matches.

btw: it was your idea to switch to a more general username. 😅


Feat/migrate to react router 7

Made the first changes to go from RemixV2 to React Router 7. These are only the basic changes to be made and I'm working on the dev and prod server, but they don't seem to work out of the box.
Sentry did not work so this has been updated to use different packages provided by them. We do miss some of the current integrations though.
On a different project I do got the dev and prod server working, but I had to change quite some code. I'll test this through and see if this is really necessary or not.
@hakimLyon I did start from your PR, created a new one though.

Some comments to be made:

The Sentry package has changed from the Remix one to @sentry/react. This setup still needs some testing and see if we are still receiving the correct information. For example the captureRemixServerException has no real replacement. Client and server errors are both using Sentry.captureException Not sure how this will turn out.

There is still a @remix-run/server-runtime dependency in some of the packages like remix-auth-* and the nasa-gcn/remix-seo package. Haven't looked into it but I had to install this dep in order to get everything working. This is causing one new typeerror within the sitemap route and I guess those packages need an upgrade so it works fine with RR7

Looks like the gcn SEO package is not being actively maintained. We could switch to: https://www.npmjs.com/package/@forge42/seo-tools


Debit / Credit transaction type

There should be a field in the payment transaction that indicates if the transaction is a debit / credit type. However currently the API that makes a transaction entry is the payment API which will make only a debit transaction - so the use case needs to be discussed further.
Reference : https://community.apigee.com/questions/39727/open-banking-identify-the-transaction-is-a-debit-o.html?childToView=39875#comment-39875

Closing as the project has been refactored and this bug issue no longer applies - please see https://github.com/apigee/openbank#previous-versions


[Bug]: shard option and global coverageThreshold config

Version
28.0.1
Steps to reproduce
Run tests with the shard option and have coverageThreshold defined in the config with some global values.
Expected behavior
The global values should only be tested against tests who ran in the given shard
Actual behavior
the global values are used for all tests, even those who don't run in the same shard
Additional context
I'm actually not 100% sure about the right behavior to have here. But if we set some global coverage threshold, those won't be met because only a subset of tests run on each shard. All others are considered 0
Environment
System:
    OS: macOS 11.6.4
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
  Binaries:
    Node: 16.14.1 - ~/.volta/tools/image/node/16.14.1/bin/node
    npm: 8.5.0 - ~/.volta/tools/image/node/16.14.1/bin/npm
  npmPackages:
    jest: ^28.0.1 => 28.0.1

Ran into the same issue. I had to stop running the tests with coverage for now.

We are facing a similar issue. It'd be great to have the possibility to run the checks of a previously-generated coverage report against the global threshold. This way we could handle the merging of all sharded coverage reports ourselves, and once we have a single file with the final results, check that it passes the global threshold.
This is still possible at the moment but we have to create a script for it ourselves.
I think this would be a simple solution.

We are also facing the same issue. Even if we were able to combine the multiple reports into one, the first shard run considers all the other files (which will be tested in the next shards) as not tested. Is there any way to fix this without turning off the coverageThreshold? 💭
We found this issue referenced in the initial feature implementation and the mention of the --includes flag but it's not clear how that fixes the coverageThreshold requirement. https://github.com/facebook/jest/pull/12546#issuecomment-1068380480
Any insight on this? @marionebl @SimenB 🙏

We have hit the same "bug" as well. We can not split unit tests via shards and have the code coverage enabled as it will look for all the files within global option instead of just the ones that were ran in the shard job. 🤔
@luke-lacroix-healthy wouldn't the command fail in the first place while generating the coverage with a coverageThreshold.global config set? I already see a potential problem that test cases for a single file get sharded into multiple jobs, so the file would get overriden, making the coverage wrong for that specific file?
Would love to see a workaround or a solution from the jest team 🙏

Thinking through this we'll have to create a 2-phase pattern to retain the original behaviour of coverageThreshold.

Execute shards collecting coverage information

yarn jest --shard 1/2 --coverage
yarn jest --shard 2/2 --coverage

Merge coverage information and enforce threshold

yarn jest --mergeCoverage --coverageThreshold

There are some quality of life improvement to make, e.g. fail for certain --shard and --coverage* flag combinations with very helpful error messages. cc @SimenB - what are your thoughts on intended developer experience for this case?

Multiple runs is the only to make Jest's threshold check work.
However, that threshold can be moved out of Jest (to e.g. coveralls or your CI) and then that could assert that the total coverage data is whatever threshold you want.
I'm not sure if adding coverage merging as a separate "mode" is something we want in Jest. However, I don't feel strongly.

@SimenB
I could be mistaken but, wouldn't that still require changes to Jest so that coverage was still collected but not reported?

@jcw- Do I get right that jest-a-coverage-slip-detector is the solution to this problem?

I could be mistaken but, wouldn't that still require changes to Jest so that coverage was still collected but not reported?

You'd remove coverageThreshold from Jest but still collect coverage like you do already. The responsibility of a failing status check based on coverage would be moved away from Jest itself to something that looks at all test runs collective coverage

I could be mistaken but, wouldn't that still require changes to Jest so that coverage was still collected but not reported?

You'd remove coverageThreshold from Jest but still collect coverage like you do already. The responsibility of a failing status check based on coverage would be moved away from Jest itself to something that looks at all test runs collective coverage

Ok. I can test that out.

@jcw- Do I get right that jest-a-coverage-slip-detector is the solution to this problem?

Yes - or at least, the same strategy is. You have to collect the coverage from all shards and merge it together before you validate it against coverage targets.
https://github.com/GetJobber/jest-a-coverage-slip-detector#concurrency-and-parallelism

Aside from jest-a-coverage-slip-detector
What is the alternative or the official recommendation/guide to merge coverage files when using shard option?

Aside from jest-a-coverage-slip-detector
What is the alternative or the official recommendation/guide to merge coverage files when using shard option?

I struggled finding an authoritative answer (but would love to see one!), but with a lot of source code reading and trial and error, landed on this approach, which uses the same underlying library as jest itself (istanbul):
https://github.com/GetJobber/jest-a-coverage-slip-detector/blob/main/src/mergeCoverage.js
Feel free to leverage it directly in your project, you'll just need to add three dependencies (istanbul-lib-coverage, istanbul-lib-report, istanbul-reports).

I was able to add coverage back into my sharded tests on Jenkins using istanbuljs/nyc with the following approach:

Run sharded tests on n different CI executors

Run the sharded tests with the --coverage option using the json reporter to produce coverage/coverage-final.json
Upload coverage from the current executor as coverage-final-{shard_number}.json (I used GCS)

Merge coverage in a single CI executor after all sharded executors have completed

Download the coverage-final-{shard_number}.json files into final-coverage directory
In a script, run sed[1] to change the path of the files in final-coverage to match the current executor

nyc needs the absolute path referenced in the coverage file to calculate coverage percentages

execute yarn test:ci:mergeCoverage, yarn test:ci:reportCoverage, and finally test:ci:validateCoverage [2] in a script

[1] sed script:
find final-coverage-files -type f -exec sed -i 's|/path/to/project/root/on/the/sharded/test/executors|'$(pwd)'|g' {} \;

[2] new scripts in package.json:
"test:ci:mergeCoverage": "mkdir -p merged-coverage && nyc merge final-coverage-files merged-coverage/coverage-final.json",
"test:ci:reportCoverage": "nyc report --reporter=text-summary --reporter=json-summary -t merged-coverage",
"test:ci:validateCoverage": "nyc check-coverage --branches 80 --functions 80 --lines 80 --statements 80 -t merged-coverage",

I was able to add coverage back into my sharded tests on Jenkins using istanbuljs/nyc

Thanks for posting your approach! I wish that repo was still active, I considered using the CLI but it hasn't had any commits or releases for over two years. :(

https://github.com/facebook/jest/issues/12751#issuecomment-1314236352
This makes sense to me
Since there is no activity istanbuljs/nyc, and jest has already provided shard option, for better dev experience, it makes sense to provide mergeCoverage, reportCoverage and validateCoverage OOB to make shared coverage much painless.
@SimenB thoughts?

I've got this mostly working locally using nyc to merge the coverage-final.json documents and then generate a report. However, coverage checks in nyc are only global and not based on globs. That is: I cannot specify a different set of coverage options for different sets of files.
Additionally, some of the better GitHub Actions that report Jest coverage REQUIRE the report.json output from Jest, which is not a format that Istanbul knows how to merge. So, aside from writing a brand new GitHub action that appropriately merges the reports, generates markdown, and generates annotations on the PR, this isn't a good solution.
Having these features directly in Jest sounds best, especially since nyc hasn't been updated in quite some time.

This is a big problem for us. We are running our tests in shards. Once the test execution completes, Jest gets stuck in "running coverage on untested files" error. This is an easily reproducible error. We need to make shard optional and automatically collect coverage from included test files.

Bumping this one.

Any update on this?

Bumping this one again!


eksctl anywhere download artifacts - error downloading artifact for component cluster-api-provider-tinkerbell

downloaded the new version binary v0.7.1 for implementation in air-gaped  environment
running the command eksctl anywhere download artifacts -f lab-eks-a-dev01.yaml -v9
i'm getting the following error:
2022-02-27T15:20:47.243+0200    V4      Logger init completed   {"vlevel": 9}
2022-02-27T15:20:47.245+0200    V1      RegistryMirrorConfiguration.Port is not specified, default port will be used    {"Default Port": "443"}
2022-02-27T15:20:47.245+0200    V1      First worker node group name not specified. Defaulting name to md-0.
2022-02-27T15:20:47.245+0200    V4      Reading releases manifest       {"url": "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/manifest.yaml"}
2022-02-27T15:20:47.422+0200    V4      Reading bundles manifest        {"url": "https://anywhere-assets.eks.amazonaws.com/releases/bundles/7/manifest.yaml"}
2022-02-27T15:20:47.600+0200    V4      Reading releases manifest       {"url": "https://anywhere-assets.eks.amazonaws.com/releases/eks-a/manifest.yaml"}
2022-02-27T15:20:47.613+0200    V3      Downloading artifact: https://anywhere-assets.eks.amazonaws.com/releases/eks-a/manifest.yaml
2022-02-27T15:20:47.613+0200    V3      Creating local artifact file: eks-anywhere-downloads/manifest.yaml
2022-02-27T15:20:47.624+0200    V3      Successfully downloaded artifact https://anywhere-assets.eks.amazonaws.com/releases/eks-a/manifest.yaml to eks-anywhere-downloads/manifest.yaml
2022-02-27T15:20:47.624+0200    V3      Downloading artifact: https://anywhere-assets.eks.amazonaws.com/releases/bundles/7/artifacts/cluster-api/manifests/control-plane-kubeadm/v1.0.2/control-plane-components.yaml
2022-02-27T15:20:47.624+0200    V3      Creating local artifact file: eks-anywhere-downloads/1.20/capi-kubeadm-control-plane/control-plane-components.yaml
2022-02-27T15:20:47.659+0200    V3      Successfully downloaded artifact https://anywhere-assets.eks.amazonaws.com/releases/bundles/7/artifacts/cluster-api/manifests/control-plane-kubeadm/v1.0.2/control-plane-components.yaml to eks-anywhere-downloads/1.20/capi-kubeadm-control-plane/control-plane-components.yaml
2022-02-27T15:20:47.659+0200    V3      Downloading artifact: https://anywhere-assets.eks.amazonaws.com/releases/bundles/7/artifacts/cluster-api/manifests/control-plane-kubeadm/v1.0.2/metadata.yaml
2022-02-27T15:20:47.659+0200    V3      Creating local artifact file: eks-anywhere-downloads/1.20/capi-kubeadm-control-plane/metadata.yaml
2022-02-27T15:20:47.670+0200    V3      Successfully downloaded artifact https://anywhere-assets.eks.amazonaws.com/releases/bundles/7/artifacts/cluster-api/manifests/control-plane-kubeadm/v1.0.2/metadata.yaml to eks-anywhere-downloads/1.20/capi-kubeadm-control-plane/metadata.yaml
2022-02-27T15:20:47.670+0200    V3      Downloading artifact:
2022-02-27T15:20:47.670+0200    V3      Creating local artifact file: eks-anywhere-downloads/1.20/cluster-api-provider-tinkerbell
Error: error downloading artifact for component cluster-api-provider-tinkerbell: failed reading local file [] for cluster spec: open : no such file or directory
i have tried with a few different deploy.yamls all with same result

Same as #1323

Yeh, this looks like a dup to me. Reopen if you feel this is in error. Thanks!


Support for configuring CacheQueryOptions in workbox.strategies

Library Affected:
workbox-strategies
Browser & Platform:
Google Chrome v67. Not tested on other browsers
Issue or Feature Request Description:
We recently changed strategy for our root-route (www.hadeland.no/) from staleWhileRevalidate to network first. We see the route appear in the runtime cache but are then removed from the cache on refresh. You can visit www.hadeland.no to see the behaviour. I have trie with and without the expiration plugin. I have also tried with different cache names and the precache module. All produce the same effect. I also used a custom plugin to verify that both the cacheWillUpdate and the cacheDidUpdate methods are called.
// Cache root
workbox.routing.registerRoute(
    (req) => (
            req.event.request.mode === 'navigate' &&
            req.url.pathname === '/' &&
            req.url.host.indexOf('www.hadeland.no') !== -1 &&
            req.event.request.method === 'GET'),
    workbox.strategies.networkFirst({
        networkTimeoutSeconds: 1,
    }));

// Warm cache
self.addEventListener('install', (event) => {
    const cacheName = workbox.core.cacheNames.runtime;
    event.waitUntil(
        caches.open(cacheName)
            .then((cache) =>
                fetch('/')
                    .then(res => {
                        if (res.ok) {
                            cache.put('/', res);
                        }
                    })
            )
    );
});

The complete service worker file:
'use strict';

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.3.0/workbox-sw.js');

const debug = true;

function matcher(patterns, req) {
    if (req.event.request.method !== 'GET') {
        return false;
    }

    if (!Array.isArray(patterns)) {
        patterns = [patterns];
    }
    return patterns.some(pattern => pattern.test(req.url));
}

const prowlPattern = matcher.bind(null, /\/prowl\//);
const imagesPattern = matcher.bind(null, [
    /g.acdn.no\/obscura/,
    /(?:api|acdn)\.no\/[^.]+\.(?:png|gif|jpg|jpeg|svg)/
]);
const jsCSSPatterns = matcher.bind(null, [
    /^https:\/\/r\.acdn\.no\/s3files\/castor/,
    /(?:api|acdn)\.no\/[^.]+\.(?:js|css)/
]);
const revisionedCSSJSPatterns = matcher.bind(null, [
    /shoal/
]);
//const articlePattern = /.*\/[a-z]{1}\/(\d+-\d+-\d+)/;))

workbox.setConfig({ debug });
if (debug) {
    workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug);
}

// Cache Prowl
workbox.routing.registerRoute(
    prowlPattern,
    workbox.strategies.networkFirst({
        networkTimeoutSeconds: 3,
        cacheName: 'prowl',
        plugins: [
            new workbox.expiration.Plugin({
                maxEntries: 50,
                maxAgeSeconds: 7 * 24 * 60 * 60, // 7 Days
            }),
        ],
    }));

// Cache images
const imageStrategy = workbox.strategies.cacheFirst({
    cacheName: 'images',
    plugins: [
        new workbox.expiration.Plugin({
            maxEntries: 100,
            maxAgeSeconds: 7 * 24 * 60 * 60, // 7 Days
        })
    ],
});

workbox.routing.registerRoute(
    imagesPattern,
    imageStrategy
);

// Cache CSS and JS
workbox.routing.registerRoute(
    jsCSSPatterns,
    workbox.strategies.staleWhileRevalidate({
        cacheName: 'assets',
    }));

workbox.routing.registerRoute(
    revisionedCSSJSPatterns,
    workbox.strategies.cacheFirst({
        cacheName: 'assetsRev',
        plugins: [
            new workbox.expiration.Plugin({
                maxEntries: 100,
                maxAgeSeconds: 365 * 24 * 60 * 60, // 365 Days
            }),
        ],
    }));

// Cache root
workbox.routing.registerRoute(
    (req) => (
            req.event.request.mode === 'navigate' &&
            req.url.pathname === '/' &&
            req.url.host.indexOf('www.hadeland.no') !== -1 &&
            req.event.request.method === 'GET'),
    workbox.strategies.networkFirst({
        networkTimeoutSeconds: 1,
    }));

// Warm cache
self.addEventListener('install', (event) => {
    const cacheName = workbox.core.cacheNames.runtime;
    event.waitUntil(
        caches.open(cacheName)
            .then((cache) =>
                fetch('/')
                    .then(res => {
                        if (res.ok) {
                            cache.put('/', res);
                        }
                    })
            )
    );
});

workbox.skipWaiting();
workbox.clientsClaim();

It works in my local development setup, but not in production.
Local headers are:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Vary: x-edition,x-pushapp,x-ab-maelstrom, Accept-Encoding
Content-Type: text/html; charset=utf-8
ETag: W/"23f9a-sbUFBGR3aTXZxsKfnME6e3I5MrY"
Cache-Control: no-cache
Content-Encoding: gzip
Date: Mon, 25 Jun 2018 19:52:34 GMT
Age: 0
Accept-Ranges: bytes
Transfer-Encoding: chunked
Connection: keep-alive

In a production the headers are:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Date: Mon, 25 Jun 2018 19:39:09 GMT
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: x-edition,x-pushapp,x-ab-maelstrom, Accept-Encoding, User-Agent
Cache-Control: must-revalidate
Accept-Ranges: bytes
Transfer-Encoding: chunked
Connection: keep-alive

We strip the etag in production because we use esi-includes.

Ok, So I tried with a proxy and rewrote/added some headers. If I add an ETag the route is added to the cache.

I added a proxy and rewrote Vary: x-edition,x-pushapp,x-ab-maelstrom, Accept-Encoding, User-Agent to Vary: x-edition,x-pushapp,x-ab-maelstrom, Accept-Encoding
And now I get caching

I "fixed" the problem by adding a plugin:
workbox.strategies.networkFirst({
        networkTimeoutSeconds: 1,
        plugins: [
            {
                cacheWillUpdate: ({ response }) => {
                    const init = {
                        status: response.status,
                        statusText: response.statusText,
                        headers: {},
                    };

                    response.headers.forEach((val, key) => (init.headers[key] = val));
                    delete init.headers.vary;

                    return response.text()
                        .then((body) => new Response(body, init));
                }
            }
        ]
    })

The underlying Cache Storage API has support for ignoring the Vary headers when doing a lookup via setting {ignoreVary: true} in the CacheQueryOptions.
The underlying wrapper that Workbox uses when doing cache lookups does support setting those options when called directly: https://github.com/GoogleChrome/workbox/blob/912080a1bf3255c61151ca3d0ebd0895aaf377e2/packages/workbox-core/_private/cacheWrapper.mjs#L118-L120
...but the built-in workbox.strategies all end up calling cacheWrapper.match() automatically for you, and hardcode null as that parameter's value: https://github.com/GoogleChrome/workbox/blob/912080a1bf3255c61151ca3d0ebd0895aaf377e2/packages/workbox-strategies/NetworkFirst.mjs#L290-L298
We currently let developers pass in fetchOptions when configuring one of the workbox.strategies, which allows them to override the default fetch() behavior in the underlying wrapper, and we could start doing the same for matchOptions, and then pass those through to our wrapper, instead of using null.

In case this helps anyone else, this is what worked for me:
  workbox.strategies.cacheOnly({
    cacheName: myCacheName,
    matchOptions: {
      ignoreVary: true,
    },
    ...
 })

In case this helps anyone else, this is what worked for me:
  workbox.strategies.cacheOnly({
    cacheName: myCacheName,
    matchOptions: {
      ignoreVary: true,
    },
    ...
 })


bump tomcat jdbc connection pool from 20 to 50

Rationale
default tomcat connection pool is sized at 20.
Recommended LabKey setting is 50.
Changes

Updated dataSourceResource.setProperty("maxTotal") value from 20 to 50 to allow for improved LKSM DB performance.

Closing - superseded by https://github.com/LabKey/server/pull/529


Added the links in the youtube section sucessfully

Added 2 resources in the youtube section under web-development.

This closes #783 and #782

Screenshots

@Soumyajit2825 could you please format the code?

Can you please brief me
Which I have to format in the code?? @rupali-codes

@Soumyajit2825 could you please format the code?

Can you please brief me Which I have to format in the code?? @rupali-codes

This file

@rupali-codes It's already formatted
You're viewing the soft-wrap view
Switch to no-wrap view then you can see that the code is formatted already


Add awesome-game-analysis

https://github.com/OTFCG/Awesome-Game-Analysis
a repository dedicated to the collection and analysis of various games, including graphics breakdown, frame analysis, gameplay design, networking and anything about game development (much focus on the programming side).
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

[X] Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it. Instead use #2242 for incubation visibility.
[X] Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
[X] You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions. Comments pointing out lint violation are allowed, but does not count as a review.

Other PR's Reviewed prior to this PR:

https://github.com/OTFCG/Awesome-Game-Analysis/pull/34

https://github.com/OTFCG/Awesome-Game-Analysis/pull/28

https://github.com/OTFCG/Awesome-Game-Analysis/pull/24

https://github.com/OTFCG/Awesome-Game-Analysis/pull/18

[X] You have read and understood the instructions for creating a list.

[X] This pull request has a title in the format Add Name of List. It should not contain the word Awesome.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

[X] Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

[X] Your entry should be added at the bottom of the appropriate category.

[X] The title of your entry should be title-cased and the URL to your list should end in #readme.

Example: - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software.

[X] No blockchain-related lists.

[X] The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

[ ] Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
(I think we are ready for this.)
[X] Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
[X] The default branch should be named main, not master.
[X] Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

[X] It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
[X] The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

[X] The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

[ ] Non-generated Markdown file in a GitHub repo.
(we use the toml format data for generation workflow and friendly change submission and for convinient of our future production)
[X] The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
[X] Not a duplicate. Please search for existing submissions.
[X] Only has awesome items. Awesome lists are curations of the best, not everything.
[X] Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
[ ] Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.
(WIP)

[X] Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
[X] Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

[ ] Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.
Must not feature Contributing or Footnotes sections.
(We only have a few headlines, so we don't need them)

[X] Has an appropriate license.

We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
Place a file named license or LICENSE in the repo root with the license text.
Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

[X] Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.
It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
The section should not appear in the Table of Contents.

[X] All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
[X] Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

[X] Does not use hard-wrapping.
[X] Does not include a CI (e.g. GitHub Actions) badge.You can still use a CI for linting, but the badge has no value in the readme.
[X] Does not include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

For this requirement, can you add links to the 2 reviews you've made?

You have to review at least 2 other open pull requests.

You can see an example of how and where to add your links from this PR.

For this requirement, can you add links to the 2 reviews you've made?

You have to review at least 2 other open pull requests.

You can see an example of how and where to add your links from this PR.

Updated.

Thanks for making an Awesome list! 🙌
It looks like you didn't read the guidelines closely enough. I noticed multiple things that are not followed. Try going through the list point for point to ensure you follow it. I spent a lot of time creating the guidelines so I wouldn't have to comment on common mistakes, and rather spend my time improving Awesome.

Contributing

❯ npx awesome-lint https://github.com/OTFCG/Awesome-Game-Analysis
✖ Linting

  README.md:76:84
  ✖    1:1   Git repository must be at least 30 days old                       remark-lint:awesome-git-repo-age
  ✖   76:84  https://simonschreibt.de/gat/alien-vs-wolfenstein-cutting-torch/  remark-lint:double-link
  ✖   77:93  https://simonschreibt.de/gat/alien-vs-wolfenstein-cutting-torch/  remark-lint:double-link
  ✖   80:76  http://simonschreibt.de/gat/dont-starve-diablo-parallax-7/        remark-lint:double-link
  ✖   82:82  http://simonschreibt.de/gat/dont-starve-diablo-parallax-7/        remark-lint:double-link
  ✖   84:88  http://simonschreibt.de/gat/oblivion-territory-tree-vs-palm/      remark-lint:double-link
  ✖   85:95  http://simonschreibt.de/gat/oblivion-territory-tree-vs-palm/      remark-lint:double-link
  ✖  171:74  https://www.youtube.com/watch?v=RkS8DmGqUmk                       remark-lint:double-link
  ✖  172:85  https://www.youtube.com/watch?v=RkS8DmGqUmk                       remark-lint:double-link
  ✖  186:81  https://www.youtube.com/watch?v=7jb0FOcImdg                       remark-lint:double-link
  ✖  187:79  https://www.youtube.com/watch?v=7jb0FOcImdg                       remark-lint:double-link
  ✖  219:86  https://www.youtube.com/watch?v=ItwtpX1SFcA                       remark-lint:double-link
  ✖  220:81  https://www.youtube.com/watch?v=ItwtpX1SFcA                       remark-lint:double-link

  13 errors

here's my awesome-lint output, the remainder of the errors is double links, but I want to quickly reference articles of relative games so I put these comparison articles (Game A vs Game B) in both game entries.

Your list was created on the 11th July 2023, it is not 30 days old yet.
You did not comment on either of the PRs you claim to have reviewed.

Your list was created on the 11th July 2023, it is not 30 days old yet.
You did not comment on either of the PRs you claim to have reviewed.

Thanks for your kind reminder!

You will have to be patient and wait those 30 days! In the mean time your logo is 404
I can also see a list of already analysed games, why not add resources for learning the process also?

The list is looking good! Just a suggestion: it would be great to include a game genre column as well.

Bump

Items in the "References" section are missing descriptions.

Non-generated Markdown file in a GitHub repo.

This apply to all lists.

Closing for lack of response.


[FLINK-7419] Shade jackson dependency in flink-avro

What is the purpose of the change
Shade jackson dependency in flink-avro to avoid incompatible versions
Brief change log

Shade jackson in pom.xml of flink-avro project

Verifying this change
(Please pick either of the following options)
No test case
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@zentol Thank you for your review, I have rename the pattern, thanks

Merging this...

@zjureel The PR has been merged, could you close the PR?


Automatic bitrate reduction when streaming over a low-bandwidth connection

I store my music in lossless formats such as FLAC, because I can stream it over my home network at high speeds.
On my phone, however, I would like to be able to stream compressed music to lower data usage. It would be nice if, in the settings, there was some kind of "automatic conversion" setting that would allow me to specify the format and/or bitrate of the compressed audio, and then when using the application, I could switch between the original and the compressed format.

Hello (again!).
This is also a highly desirable feature which has been requested a few times. Keeping this open until I get to it. I think the MVP for this would be:

Transcode FLAC to mp3 only. Add support for more lossless source formats later.
The API endpoint serving audio files supports parameter(s) for transcoding preferences.
Users can set transcoding preferences from the web UI (only applies to streaming from the web client).
Android client has a new persistent setting for transcoding preferences


[Enhancement] optimize analyze large column table take FE oom

Why I'm doing:
when we create 35k columns table, and execute full analyze or sample analzye.
we will get a sql like:
insert statistics...
select column_1, row_count, min, max from table
union all
select column_2, row_count, min, max from table
union all
select column_3, row_count, min, max from table
....

the table process in Optimizer:
1. analyze table, storage all columns in QueryAnalzyer
2. transform table to scan operator, create columnRef from all columns
3. prune columns in Optimizer

the step 1&2 is necessary, because we don't know what columns will used in other-clause, but it's will cost large memory to copy columns
and in statistics SQL, it's a simple format sql, we can try to prune columns in analyze step
and other bottleneck point:

for fast schema change feature, FE need send whole schema to BE, will cost large memory and time...
What I'm doing:
Fixes #issue
What type of PR is this:

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

@mergify backport branch-3.2 branch-3.3


Migrate camera.object entities to the new image entity

In home assistant 2023.6 there is a new image entity https://rc.home-assistant.io/blog/2023/06/28/release-20237/#image-entities
https://rc.home-assistant.io/integrations/image/

Not stale

Ping

Please don't stale this

Please don't stale this

Fixed by @NickM-27 , will be in the next release.


Nuget Package Creation - v3.1.3

Bump Selenium version '4.2.0' -> '4.3.0'.
Nuget package creation - v3.1.3.

Codecov Report

Merging #38 (200806e) into main (9591641) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #38   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           84        84
  Branches         6         6
=========================================
  Hits            84        84

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9591641...200806e. Read the comment docs.


refactor: git cli commands

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

Project coverage is 97.63%. Comparing base (4316735) to head (e0a0724).

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #26      +/-   ##
==========================================
- Coverage   97.77%   97.63%   -0.15%
==========================================
  Files          11       11
  Lines         315      296      -19
  Branches       69       56      -13
==========================================
- Hits          308      289      -19
  Misses          7        7

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


Remove ineffectual assignments

I'm not sure if we want to check for the error rather than
ignoring its return value here. The error wasn't handled
before, so that may as well be an oversight.

Feel free to close this one, should you not intend to merge it at a later point.

Thank you. I kind of lost track of issues like these after the merge of the filtering improvements branch. Please feel free to reopen on top of new master, if you have the time.


Only support for prometheus operator?

I see that this includes a service monitor definition. But doesn't define an annotation. Is this to only be used for installations with the prometheus operator?

@benmathews
Well, I think I can make it more flexible

That would be great. We expect an annotation of prometheus.io/scrape on our service for prometheus to pick it up.

@benmathews done. Please uncomment annotations here.
I've tested it with helm-deployed prometheus. Seems to be working.

Thanks for the fast work. I'll give it a try tomorrow.


Add prefix search

I know I said in the readme that you don't need this for prefix search, but I realize now that you do, because we have the benefit of being case-insensitive.

what needs to be done to support this?
for local query's, it supports instant search; which it's what we must aim for.
the -find selector it's fine; but it needs work to get rid of regular expressions (they tend to slow things down). I'll appreciate some ideas regard this and what can we do (or I).


Hide InputBar

Hi,
Thanks for sharing this awesome library.
I have a question though: In one scenario, I want to hide the whole inputbar on the bottom, while still using the SlackViewController.
Is that somehow possible? I tried things like bringSubviewToFront and textInputbar.hidden, but it doesn't help.
Thanks in advance!

Thank you! 👍

Hi @dzenbot!
I am trying to present a SlackTextViewController with the input bar hidden by default. So far I tried:
setTextInputbarHidden(true, animated: true)

But seems that only work when the input bar is already on screen. I also tried changing the isHidden option of the textInputBar and textView without any luck.
Is there a way to do this? Thanks!

Bumping this. I also have this issue.


UnnecessaryReversed style rule

Introduces a new style rule to fix #7480 that detects collection reversal immediately after a sorting operation.
non-compliant
 listOf(1,2)
 .sorted()
 .asReversed()

compliant
 listOf(1,2)
 .sortedDescending()

Messages

:book:
Thanks for adding a new rule to detekt :heart:

:white_check_mark:
We detekted that you added tests, to your rule, that's awesome!

:white_check_mark:

We detekted that you updated the default-detekt-config.yml file, that's awesome!

  Generated by :no_entry_sign: dangerJS against d6615f1830f8b29977d3a99aee1baa2f0cf62e71

@psuzn thanks for sending this over. Can you fix the CI?

@cortinico it should be good to go.

Sorry about the long absence, this should be good to go now.

Thanks for this rule :) it looks great!


Update distance.Rmd

The edit might look like it's nothing, but I actually replaced the left-quotes with regular quotes on the two image html tags at the beggining of the file, because they were causing a bug which made the HTML tag escaped after the .rmd was knit (tested on IE and Chrome). Note that the bug is not present at the .Rmd preview here on Github. Just check the current book status on http://genomicsclass.github.io/book/pages/distance.html, the first two images aren't shown. Also, the width parameters did not have the quotes. I made some testing and this should fix the problem.

Thank you Alan!!


Issue 1141: ParallelDownloadRemoteArtifactTest is not idempotent

The cleanup method is calling getVaultDirectoryVersionPath, which intends to replace "."
in the artifact name with "/" to be able to find the location on disk. However replaceAll
takes a regular expression and "." is interpreted as any character, so all characters in
groupId were being replaced by "/" yielding a wrong path. The solution is to escape "\.".

Hi!
Thank you for your contribution and congratulations on your first pull request!
Would you mind signing the ICLA, as described in the Contributing page?
Kind regards,
Martin

Hi Martin,
Nice meeting you. Please find it attached.
Best
icla1of2.pdf
icla2of2.pdf

Fixes #1141.


Create 53-Maximum-Subarray.cs

File(s) Modified: 53-Maximum-Subarray.cs
Language(s) Used: CSharp
Submission URL: _https://leetcode.com/submissions/detail/786701910/_

Thanks, @DaltonVislisel!


Add submitter attribute to ArchiveItems

This PR adds adds a new relationship to the data model: ArchiveItem belongs_to user.
When an ArchiveItem is added, we'll record the user who submitted it. If that user's account is deleted, all the ArchiveItems they submitted will have their submitter_id attr nullified:
https://github.com/TechAndCheck/zenodotus/blob/fdb94484f46276e9feb20f024f0c560bd52e2bc5/app/models/user.rb#L3
I'm submitting this PR in service of #112, which adds a feature allowing users to delete their accounts
Testing

rails db:migrate
rails t

I'm getting 12 errors when this test runs:
ActiveRecord::AssociationTypeMismatch: User(#22820) expected, got #<Sources::InstagramUser id: "9a35c656-4d6b-46f4-bd12-c15bdf995b67", display_name: "snoopdogg", handle: "snoopdogg", number_of_posts: 51755, followers_count: 65661962, following_count: 5327, verified: true, profile: "ALGORITHM 11/19/21", url: "https://snoopdogg.lnk.to/AlgorithmIB", profile_image_url: "https://scontent-lga3-1.cdninstagram.com/v/t51.288...", profile_image_data: {"id"=>"b2d510f882f4c4e653e7d2a2ba4b950d", "storage"=>"store", "metadata"=>{"filename"=>"20211217-4288-depq31", "size"=>5618, "mime_type"=>nil}}, created_at: "2021-12-17 11:28:32.768518000 +0000", updated_at: "2021-12-17 11:28:32.772866000 +0000"> which is an instance of Sources::InstagramUser(#25280)

Can you take a look before we merge? Zorki is running correctly so it's something to do with the code base

I'm getting 12 errors when this test runs:
ActiveRecord::AssociationTypeMismatch: User(#22820) expected, got #<Sources::InstagramUser id: "9a35c656-4d6b-46f4-bd12-c15bdf995b67", display_name: "snoopdogg", handle: "snoopdogg", number_of_posts: 51755, followers_count: 65661962, following_count: 5327, verified: true, profile: "ALGORITHM 11/19/21", url: "https://snoopdogg.lnk.to/AlgorithmIB", profile_image_url: "https://scontent-lga3-1.cdninstagram.com/v/t51.288...", profile_image_data: {"id"=>"b2d510f882f4c4e653e7d2a2ba4b950d", "storage"=>"store", "metadata"=>{"filename"=>"20211217-4288-depq31", "size"=>5618, "mime_type"=>nil}}, created_at: "2021-12-17 11:28:32.768518000 +0000", updated_at: "2021-12-17 11:28:32.772866000 +0000"> which is an instance of Sources::InstagramUser(#25280)

Can you take a look before we merge? Zorki is running correctly so it's something to do with the code base

Fixed. I added an argument to create_from_zorki_hash named user without realizing that the same variable name was already being used in the function.
https://github.com/TechAndCheck/zenodotus/blob/903200401297123fbbd3c4b88f53556f17ecbcf9/app/models/sources/instagram_post.rb#L80-L83


Documentation: Upload Example - Progress Doesn't Work Exactly As Shown

In the main documentation, an example is presented that has a template variable {{progress}} which is intended to return the progress as a completion percentage.  I worked with that example for a little while, and in my own testing it did not work as shown, so I did some digging and checked the demo programs.
I learned that the FileUpload object has property progress, but progress is an instance of ReactiveVar as opposed to a simple property; therefore, to get the value of the progress it is necessary to call FileUpload.progress.get() and I noted that this is precisely what the demo program does to show progress.
For a moment, I was scratching my head wondering whether Meteor template variables might implicitly call .get if the template references a ReactiveVar.  If this is so please forgive me and ignore this report; otherwise, the documentation should be updated to illustrate the call to .get.
In my case, to solve the problem, I coded a special helper to get the percent complete as shown:

     percentComplete : function() {

        var fileUpload;

        fileUpload = Template.instance().currentUpload.get();
        if (!fileUpload)
            return;

        return fileUpload.progress.get();
    }

Thanks in advance for your attention.  By the way we love Meteor-Files and we're using it in all cases where file uploads are needed.  We have backed away from CollectionFS for a variety of reasons.

@sotarules thank you for contribution.
I fixed the docs in dev branch.
And thank you for using this package, I appreciated.
Support this project by starring it on both GitHub and Atmosphere.


Add version field to Manifest struct

North runtime now verifies the new optional 'manifest_version' field.
If this field is missing, version '1.0.0' is assumed.
Manifest version '1.0.0' is written to all new manifests created by sextant.

Is it. possible to split this PR into 2, one for the manifest_version and one for the other stuff?

Is it. possible to split this PR into 2, one for the manifest_version and one for the other stuff?

I moved the archive reader and sextant commit to a new PR (#233). That PR depends on this one.

Can we have a chat about the manifest versioning?

@inorick as @flxo pointed out yesterday we did forget something important:
in order to parse the version field, the whole manifest has to be parsed correctly. If we have an older runtime that cannot parse a newer manifest anymore, we also cannot find out the version anymore!
A workaround might be to add a dedicated version file in our manifest. Let's talk about this later

We could put the "NPK version" into the ZIP archive comment field...?

Superseded by #233


FIX fix inverted index write array with _doc is empty

Proposed changes
when a array in single row is null or array has all null elements , the _doc param may has empty field, in this situation if we also call add_document,  inverted index will call process_document() make sure field with inverted , but field is cleared, and _doc is empty which will make heap use after free, so we should avoid this situation happen!
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run cloud_p1


RSA Decryption throwing exception?

My production code is crashing and the crash log from the play store ANRs & Crashes give me following log. What could be causing this?
io.reactivex.exceptions.CompositeException:
  at io.reactivex.internal.observers.LambdaObserver.onError (LambdaObserver.java:77)
  at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onError (ObservableSubscribeOn.java:63)
  at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError (ObservableCreate.java:85)
  at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError (ObservableCreate.java:73)
  at com.mtramin.rxfingerprint.RsaDecryptionObservable.initCryptoObject (RsaDecryptionObservable.java:79)
  at com.mtramin.rxfingerprint.FingerprintObservable.subscribe (FingerprintObservable.java:70)
  at io.reactivex.internal.operators.observable.ObservableCreate.subscribeActual (ObservableCreate.java:40)
  at io.reactivex.Observable.subscribe (Observable.java:10838)
  at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run (ObservableSubscribeOn.java:96)
  at io.reactivex.Scheduler$DisposeTask.run (Scheduler.java:452)
  at io.reactivex.internal.schedulers.ScheduledRunnable.run (ScheduledRunnable.java:61)
  at io.reactivex.internal.schedulers.ScheduledRunnable.call (ScheduledRunnable.java:52)
  at java.util.concurrent.FutureTask.run (FutureTask.java:266)
  at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
  at java.lang.Thread.run (Thread.java:764)

Thanks for reporting this issue. Do you have more info in the stack trace? The current one doesn't actually show which exception is getting thrown.

Unfortunately that is all I could get from the crash. This is the crash reported in production and that is all it was posted in the ANRs & crashes in Playstore.

It seems I have something similar
Fatal Exception: io.reactivex.exceptions.CompositeException: 2 exceptions occurred.
       at io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.tryOnError(ObservableCreate.java:85)
       at io.reactivex.internal.operators.observable.ObservableCreate$CreateEmitter.onError(ObservableCreate.java:73)
       at com.mtramin.rxfingerprint.RsaDecryptionObservable.onAuthenticationSucceeded(RsaDecryptionObservable.java:95)
       at com.mtramin.rxfingerprint.FingerprintObservable$2.onAuthenticationSucceeded(FingerprintObservable.java:104)
       at android.hardware.fingerprint.FingerprintManager$MyHandler.sendAuthenticatedSucceeded(FingerprintManager.java:1217)
       at android.hardware.fingerprint.FingerprintManager$MyHandler.handleMessage(FingerprintManager.java:1148)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6776)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

@PingForward Are you using dialog fragment? My issue was resolved by checking if the fragment was added before or not.

@PingForward The stacktrace you shared seems like a different issue. It looks like RxFingerprint is not able to correctly decrypt the value you passed in. Was the value previously encrypted by RxFingerprint with RSA?

@iprasla No, this is regular fragment (MvpAppCompatFragment from com.arello-mobile:moxy lib)
@Mauin Yes, the encrypted string is correct
I used decript function in onStart() of fragment
fun checkIfCanUseFingerPrint(context: Context) {
        if (isFingerprintAvailable(context)) {
            val encryptedString = getEncryptedPassword()
            if (encryptedString.isNotEmpty()) {
                startListenFingerPrint(context, encryptedString)
            }
        }
    }

startListenFingerPrint
disposableDecript = RxFingerprint.decrypt(EncryptionMethod.RSA, context, key, encriptedString)
               .subscribe({ decryptionResult ->
                ***
               }, { throwable ->
                   if (RxFingerprint.keyInvalidated(throwable)) {
                     ***
                   }
                   **Log.d("RxFingerprint", throwable.message)** // error here, but it's not NPE
               })
   }

I dispose disposableDecript in onDestroy
maybe I should move it in to onStop, hmm

Keeping the same lifecycle between subscribing and disposing would be a good idea to try I think onStart() -> onStop()

I'm closing this for inactivity. If you see further issues feel free to re-open this issue or create a new one.


Modify analysis wizard to accommodate language discovery

Summary
With the addition of automatic language discovery, the analysis wizard target selection step needs to be enhanced.
Enhancement references:

https://github.com/konveyor/enhancements/issues/170
https://github.com/konveyor/enhancements/issues/155
https://github.com/konveyor/enhancements/pull/173 - enhancement document

Requirements
Base requirements:

Existing Wizard functionality remains the same
On the "Set targets" step:

The language selection box needs to be updated to dynamically source the option list, and the selected options
The language selection box needs to support an "All Language" and multiple selection of languages
The set of target cards displayed will continue to match the selections in the language box
Each target card will need a visual indicator of its language/provider

When creating the task resources, TaskGroup.Addon: analyzer needs to be replaced with TaskGroup.Kind: analyzer

Details on changes to the language selection box:

Provide a "(Show All)" option to display all targets regardless of language tags
Populate the options list from the Provider field of the fetched targets.
Initially select the languages based on the tags, of tag category "Language", across the applications selected for analysis.

Details on changes to the target cards:

Each target card should always display a label with it's provider.  This will allow cards that belong to different providers to be differentiated when more than one language is selected.

HUB enhancements that may be needed:
None identified initially.  Target data is already available.  Tag category of "Language" is provided in the seed values.  Applications already have their tag data provided.
Screen shots and mockups
Current State

Future State
(the only real difference will be he constant language/provider tag on the cards)

Note: Until language discovery is working consistently, we can manually tag a language to an application for testing purposes.

The application Analysis fields used to correlated to task by addon.  This needs to be updated to correlate by kind == analyzer (when not blank) else fallback on addon == analyzer.  The fallback is needed for tasks created in previous releases.