Edge

[x] Compliance tests run successfully
[x] Documentation deployed at https://edge.js.m-ld.org/
[x] Website deployed at https://edge.m-ld.org/ & smoke tested
[x] No pre-release dependencies
[x] m-ld/m-ld-nodejs-starter#edge smoke tested
[x] m-ld/m-ld-web-starter#edge smoke tested
[x] m-ld/m-ld-cli#edge smoke tested
[x] Complete CHANGELOG.md

That's a lot of commits!  I've reviewed a couple at random, with comments, but overall I don't see any showstoppers with the merge.  May I suggest, however, that master be renamed main, for well-established reasons?

Please approve, thanks @Angus-McAllister

Holding off due to spec defect discovered in m-ld/m-ld-security-spec#4


[SPARK-13330][PYSPARK] PYTHONHASHSEED is not propgated to python worker

self.environment will be propagated to executor. Should set PYTHONHASHSEED as long as the python version is greater than 3.3

Test build #51335 has started for PR 11211 at commit f459705.

Test build #51335 has finished for PR 11211 at commit f459705.

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

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

Merged build finished. Test PASSed.

How do we handle this in Python 2? if we're running Python 2.x, do we currently propagate PYTHONHASHSEED to the worker?
Also, how are we going to ensure that this change isn't accidentally rolled back? This seems subtle, so adding an explanatory paragraph comment into the source code near this line would make sense.

PYTHONHASHSEED is set in script spark-submit no matter what version of python. And it would only be set in executor when python version is greater than 3.3. PYTHONHASHSEED is introduced in python 3.2.3 (https://docs.python.org/3.3/using/cmdline.html). I am not sure the purpose of disable random hash, just feel that we can set PYTHONHASHSEED as 0 in all the cases since it looks like there's no case we want to enable the random of hash. And it's also fine to set it in python 2, because it is only introduced after 3.2.3

I think that we need to disable randomness of the hash in order to be able to safely compare hashcodes which were generated by different Python processes / machines.
Could you do a little detective work to look through the Git history and try to figure out whether this propagation ever worked or determine whether it was broken recently? If it used to work and was broken only in 1.6 then I think that there might be another root cause that we should find rather than patching around this one specific issue in Python.

I verified it on spark-1.4.1 and spark-1.5.2, both of them have this issue. I believe it exists for a long time. Besides that I found pyspark specific environment variable is not propagated to driver if it is cluster mode.  Create SPARK-13360 for it, after SPARK-13360 I will update this PR.

I'm a bit concerned that the change implemented here won't be correct in case PYTHONHASHSEED is set to a non-zero value on the driver. In that case, wouldn't the driver and executors wind up with different hash seeds, leading to incomparable hash values?

Right, it should be set as the same as driver rather than set it as 0 explicitly.

Okay. Are you planning to update this PR to handle that case?

I plan to do it after SPARK-13360, or I can do them together in this PR if it is OK

@JoshRosen  I update the patch and also merge SPARK-13360 into this PR because they are related. Please help review it. Thanks

Test build #51835 has started for PR 11211 at commit 43dfd47.

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

Merged build finished. Test FAILed.

Jenkins, please build it again.

Test build #51835 has finished for PR 11211 at commit 43dfd47.

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

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

Merged build finished. Test PASSed.

Ping @JoshRosen

Now that your other patch has been merged, is this ready to update?

Update the patch.

Test build #54497 has started for PR 11211 at commit e68899c.

Test build #54497 has finished for PR 11211 at commit e68899c.

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

Merged build finished. Test PASSed.

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

Quick clarification: would calling self._conf.setExecutorEnv(key, value) in context.py be sufficient to propagate the variable to the executor, even in YARN mode?

@JoshRosen  Sorry for response late. Yes, self._conf.setExecutorEnv(key, value) in context.py will propagate the variable to the executor, even in YARN mode

Okay, so why don't we go ahead and use setExecutorEnv then?

The executor here may be a little misleading. It means the python worker rather than the spark executor.
Python worker get its env from PythonRDD and PythonRDD get the env from context.environment. ( I have updated the title)
See PythonRDD.scala
val worker: Socket = env.createPythonWorker(pythonExec, envVars.asScala.toMap)

Test build #59134 has started for PR 11211 at commit e68899c.

Test build #59134 has finished for PR 11211 at commit e68899c.

This patch fails Spark unit tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

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

For what its worth it seems like this has maybe caused issues in the past too - https://issues.apache.org/jira/browse/SPARK-12100

Conflicts is resolved.

Test build #66590 has started for PR 11211 at commit b761b85.

Test build #66590 has finished for PR 11211 at commit b761b85.

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

Merged build finished. Test PASSed.

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

LGTM. @JoshRosen do you have more thought on this?

(ping @zjffdu)

gentle re-ping - is this something you have badnwidth to work on @zjffdu?

Sorry for late reply, I may come back to this issue late of this week.

Test build #73046 has started for PR 11211 at commit e352c36.

Test build #73046 has finished for PR 11211 at commit e352c36.

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

Merged build finished. Test FAILed.

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

Test build #73049 has started for PR 11211 at commit 0acbb18.

Test build #73049 has finished for PR 11211 at commit 0acbb18.

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

Merged build finished. Test PASSed.

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

ping @holdenk @HyukjinKwon PR is updated, please help review. Thanks

LGTM as well, thanks for taking a look @vanzin and thanks for taking the time on this @zjffdu & sticking with it.

Actually one last thing before we merge this PR - would you be ok with updating the description to match the template that is now used? Just that way it is consistent with everything.

@holdenk description is updated.

thanks @zjffdu , merged to master.

how do we resolve the problem?


Handle empty params (JsonValue null) in StateChanger - java8

The StateChanger in java8 branch did not handle properly given statement without params:
In such case exception was thrown

it could not map on json null value
catched in above try and did not report any issue

thanks, I've tested this to confirm the issue. i have some test changes incoming that will act as a regression test for this too 👍


Update typedefs to use boolean instead of true/false

[x] I have followed (at least) the PR section of the contributing guide.

Some type definitions were using true or false literals when it seems boolean was intended. This PR attempts to fix that.

Please check out #14971 and #16245 for prior reports. For an in-depth explainer why these are literals instead of boolean see #15049 (which includes requirements for when we would accept a fix).


Fix from x import y inside functions.

This should fix #269. As a side affect, this also allows cyclical imports to work correctly when one of the imports is done inside of a function.

Still working on a test for this, not entirely sure how to do that but I'll try to add one.

If there's anything you'd want differently in the tests or anything in addition to be added, I can do that. I'm still not entirely sure I understand the auto testing, but I tried to add this in somewhere that seemed right.

Elegant, making the gap with CPython even semantics smaller.


Add rose macro -V command to rtw-tests.yml Github Workflow

Description

Closes #3632
Link to documentation: N/A

Before you get started

[x] ☝ Create an issue to discuss what you are going to do

Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.

[x] 🛠 This pull request has a descriptive title
[x] 🛠 Code is written according to the code quality guidelines
[x] 🛠 Tests run successfully

To help with the number of pull requests:

🙏 We kindly ask you to review two other open pull requests in this repository

If you need help with any of the items on the checklists above, please do not hesitate to ask by commenting in the issue or pull request.

@alistairsellar do you remember the conversation we had with Oliver about potentially grouping options via namelists? I'm wondering whether it's worth doing this for the options that we must duplicate in the rose-suite.conf file (because they are defined in e.g. opt conf files) so we can separate them under a "users must not edit these options as they are defined in opt conf files" list? 🤔

Yes, that seems sensible. That list could be called something like "site-specific settings, do not edit".

@alistairsellar do you remember the conversation we had with Oliver about potentially grouping options via namelists? I'm wondering whether it's worth doing this for the options that we must duplicate in the rose-suite.conf file (because they are defined in e.g. opt conf files) so we can separate them under a "users must not edit these options as they are defined in opt conf files" list? 🤔

Yes, that seems sensible. That list could be called something like "site-specific settings, do not edit".

Great! 👍 @chrisbillowsMO, I will leave it up to you whether you would like to do the above work; if not, would it be possible for you to open a new issue (and assign it to me), please? 😊

@alistairsellar do you remember the conversation we had with Oliver about potentially grouping options via namelists? I'm wondering whether it's worth doing this for the options that we must duplicate in the rose-suite.conf file (because they are defined in e.g. opt conf files) so we can separate them under a "users must not edit these options as they are defined in opt conf files" list? 🤔

Yes, that seems sensible. That list could be called something like "site-specific settings, do not edit".

Great! 👍 @chrisbillowsMO, I will leave it up to you whether you would like to do the above work; if not, would it be possible for you to open a new issue (and assign it to me), please? 😊

Alas no time! 😭 I've raised it as a new issue here:  #3679


Add support Nodejs22 to serverless

Description
Add additional versions v22 to supported nodejs serverless runtimes.
AC

[ ] new runtime is selectable from kyma dashboard
[ ] nodejs v20 stays the default
[ ] update documentation
[ ] include nodejs 22 in the test bed

Without Nodejs22 in the Alpine repo we either could

build nodejs22 each time (~15mins)
use official tar.xz, which limits us to amd64 and hinders local development on arm64 platform
We'll wait for Alpine repository


SDXL implementation not working

I tried the "experimental.hip" file in the repositorz and it was stuck on the tokenizer.
The following message appeared:
after download and test, the error was the following
Error
Invalid source /obj/geo1/sdsolver1/solver.
(Error: Python error: Traceback (most recent call last):
File "", line 60, in
File "D:\Github/MLOPS2/scripts/python\sdpipeline\default_pipeline.py", line 203, in run
output_image = pipe(
File "D:\Github\MLOPS_2\data\dependencies\python\torch\utils_contextlib.py", line 115, in decorate_context
return func(*args, **kwargs)
File "D:\Github\MLOPS_2\data\dependencies\python\diffusers\pipelines\stable_diffusion_xl\pipeline_stable_diffusion_xl.py", line 832, in __call
noise_pred = self.unet(
File "D:\Github\MLOPS_2\data\dependencies\python\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(args, **kwargs)
File "D:\Github\MLOPS_2\data\dependencies\python\accelerate\hooks.py", line 165, in new_forward
output = module._old_forward(args, kwargs)
File "D:\Github\MLOPS_2\data\dependencies\python\diffusers\models\unet_2d_condition.py", line 889, in forward
aug_emb = self.add_embedding(add_embeds)
File "D:\Github\MLOPS_2\data\dependencies\python\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, kwargs)
File "D:\Github\MLOPS_2\data\dependencies\python\diffusers\models\embeddings.py", line 192, in forward
sample = self.linear_1(sample)
File "D:\Github\MLOPS_2\data\dependencies\python\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "D:\Github\MLOPS_2\data\dependencies\python\torch\nn\modules\linear.py", line 114, in forward
return F.linear(input, self.weight, self.bias)
RuntimeError: mat1 and mat2 shapes cannot be multiplied (2x60672 and 2816x1280)
).
It would be nice to understand how does on change and use the different models on Hugging face. I wasn't sure to have downloaded the right SDXL model.
Cheers

Hi , look here maybe the steps i explained will work for you


Exit preview?

Not sure if this is out of scope but asking anyway:
Is it possible to have an "exit preview" button that would link to a /api/exit-preview of some sort?
Right now, once somebody views the preview, it will be in preview mode forever. Probably not related to this plugin but since I have no control over it, it would be nice to rely on this plugin to also exit preview.
Thoughts?

Hmm, I don't think that it's necessarily out of scope for this project. A button could be added and have an option to set the exit preview route in the code.
Right now I'm handling the exit preview by adding a custom banner on the page with a button that links to a /api/exit-preview route but it would be nice to have this built into the plugin.
Curious to hear what others think.

This is a bit tricky to do, because we can't reliably know if the iframe is in draft/preview mode or not from the iframe pane side.
It's equally confusing to see an "Exit Preview" button that can always be clicked because it fails to detect that it's exited so we need a proper solution for this to add it in the plugin.
The way we're currently handling this in our own templates is by showing a bar at the top.

https://github.com/sanity-io/sanity-template-nextjs-app-router-personal-website/blob/main/components/preview/PreviewBanner.tsx

Assuming you're using Next.js for this @marcobarbosa?
I agree with the banner as @stipsan mentions. You can detect if you're in an iframe from the frontend side with window.self !== window.top and hide the banner so it doesn't get in the way when you view the site in the iframe within Sanity, but still have the banner show if your users directly navigate to the site with the preview cookie set. This also handles the case where your user has clicked the "open" button to open the preview in a new tab, or that they've been sent the preview link by someone else, so I think it's the best option.

@gpoole Cool suggestion. Yes, I'm on Next. Thanks for the input too, @stipsan.


Unable to set prefilled text tab

I have followed the Docusign example for sending envelopes from a template and setting prefilled text tabs, but the value never gets set in the envelope, below is my code:
 const env = new docusign.EnvelopeDefinition();
  env.templateId = "the template id";

  const signer1 = docusign.TemplateRole.constructFromObject({
    email: args.signerEmail,
    name: args.signerName,
    roleName: "Contributor",
    tabs: {
      textTabs: [
        {
          tabLabel: "contributorId",
          value: "12345678",
        },
      ],
    },
  });

  env.templateRoles = [signer1];
  env.status = "sent";

results = await envelopesApi.createEnvelope(args.accountId, {
      envelopeDefinition: env,
    });

I am also having the same problem. How did you do it?


separate code from text; fixes #25

I had to accept this myself since the site is now advertised to participants.


Cannot run after cp -rf to new folder

the example works okay when not moved.. But whenever I do a cp -rf to a new folder, and use a regular npm link to isomorphic-relay-router, npm start gives me an error about babel-node cannot be found (from updateSchema.js).
Any ideas why I cant seem to run this in another folder? I modified package.json to include "isomorphic-relay-router": "0.7.0-beta.0",

babel-node cannot be found

This means npm cannot find babel-cli package in node_modules of the new directory. Probably, you just need to run npm install in the new directory.

@denvned   Thanks, I've tried that but I found that it did not work. Hm. I also have babel-cli installed globally.
The error seems to be from /node_modules/.bin/babel-node   . As you can see.. it does a require("../lib/babel-node");
and that fails since there is no lib folder in node_modules.. Hmm

While doing cp to another folder did not work, checking into github and checkout out again into a folder I wanted does work, so this is resolved now, thanks.


A Image Storage Service 图床

Image Storage Service

CAM tools
src images

several methods

Vis-pipeline
original

transformed

concat

pipeline

Vis_scheduler


0061 - Rotate List

Description of the Problem
Given a linked list, rotate the list to the right by k places, where k is non-negative.
Example 1:
Input: 1->2->3->4->5->NULL, k = 2
Output: 4->5->1->2->3->NULL
Explanation:
rotate 1 steps to the right: 5->1->2->3->4->NULL
rotate 2 steps to the right: 4->5->1->2->3->NULL

Example 2:
Input: 0->1->2->NULL, k = 4
Output: 2->0->1->NULL
Explanation:
rotate 1 steps to the right: 2->0->1->NULL
rotate 2 steps to the right: 1->2->0->NULL
rotate 3 steps to the right: 0->1->2->NULL
rotate 4 steps to the right: 2->0->1->NULL

Code
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def rotateRight(self, head: ListNode, k: int) -> ListNode:

Link To The LeetCode Problem
LeetCode

Can I do this!

#154


Publishing state (prod/preprod) should be more visible

It is difficult to see what is currently available in prod and preprod, compared to git content -- and difficult to see if their current state is a result of correct operation or a publishing issue.
I don't know what the correct fix is: just throwing some ideas out there:

An action that runs after every sync (and maybe also on cron) that actually fetches the prod, preprod and git main branch metadata as a TUF client, and publishes the received metadata version numbers (at a minimum root+timestamp) on a web page somewhere
In the sync* GitHub actions, once the process is successful, move a git tag or a branch to point to the commit that was synced
other approaches? Is there a solution where it's easy to tell which environments a particular PR has reached?

Out of these I like option 1 because it actually documents what clients see, not what our CI/CD thinks the sync state should be: It could also be further improved by sanity checks that file issues if the versions are not what we expected.

Option 1 is similar to tuf_client_tests.yml, except

depends on prod and preprod to be reachable
publishes metadata versions somewhere
optional sanity checks on expected metadata versions

It is difficult to see what is currently available in prod and preprod, compared to git content -- and difficult to see if their current state is a result of correct operation or a publishing issue.

Weirdly enough I had a dream this weekend where we dynamically published the values on the root-signing repository. +1 to this idea!

a web page somewhere

Having a table on the sigstore dashboard would be good -- the probers can probably manage this. I'm not sure how the sigstore dash is built or where it's hosted/what we can put on it, but that would b likely be the best way for on-callers to monitor state as well.

Related: https://github.com/sigstore/public-good-instance/issues/714

@priyawadhwa is the sigstore dashboard a thing or an idea? We can probably just start with a root-signing status page too.

Idea, it hasn’t been created yet. However, it was meant for debugging purposes and would be internal, not for public consumption, probably using Cloud Monitoring. If you want it for TUF, I’d create something else.

The implementation if tuf-on-ci is not perfect but it's an improvement IMO:

it moves publish branch when main is in a state ready for publish -- so a commit in publish branch does not guarantee that the content has been published all the way to GCS
publishing itself is more automatic: if the client tests pass on preprod, then content will move to GCS bucket
the status pages for preprod and prod will document the current published state (versions and the commit): https://sigstore.github.io/root-signing/, https://tuf-repo-cdn.sigstore.dev/index.html
there are cron driven tests that will start complaining if published repository does not match publish branch contents

closing as "mostly implemented"


Using + with choose field separator considered harmful

Hey there, I just discovered this project from following the breadcrumbs from your issue over on choose! I noticed you had some great benchmark reports (really impressive performance btw!). It looks like you are testing a couple choice inputs to choose using regexes with a + at the end. By default, field separators in choose are greedy, and so using + is not necessary, and actually hurts performance (my understanding is that it is typical for regex engine's performance to be hurt by any repetition).
So where you have choose -f '[[:space:]]+' -i ./hyper_data.txt 0 7 18 > /dev/null, I recommend you instead use choose -f '[[:space:]]' -i ./hyper_data.txt 0 7 18 > /dev/null (note the lack of +). It looks like there are a few other spots as well unnecessarily using +.
Admittedly, this is something of a foot gun, so if you felt that it would be good to demonstrate both, that would also be fair. I am thinking of adding some docs explaining that this should be avoided, and possibly stripping repeat operators in code as well.
For reference, with a quick test using time, it looks like adding the + makes choose take very roughly twice as long:
➜  choose git:(master) ✗ time choose -i input.txt -f '[[:space:]]' 3:5 > /dev/null
choose -i test/long_long_long_long_long.txt -f '[[:space:]]' 3:5 > /dev/null  4.26s user 0.13s system 99% cpu 4.415 total
➜  choose git:(master) ✗ time choose -i input.txt -f '[[:space:]]+' 3:5 > /dev/null
choose -i test/long_long_long_long_long.txt -f '[[:space:]]+' 3:5 > /dev/null  8.31s user 0.17s system 99% cpu 8.507 total

That's a great point! And an interesting optimization unto itself... I'll update the benchmarks here shortly running choose without the space.
I like your tool btw. I posted hck on reddit and of course the first comment was a link pointing out choose existed. I'm not sure how I missed it when looking for existing tooling at the start, by no means did I want to step on toes!

No worries! No toes were harmed in the making of this software. When I first posted about choose on reddit, the first comment was "what about fex" - although now I can't seem to find the repo for it, so maybe that's what's up!

No worries, thanks for the update! I'll be back when I am done improving performance :smiling_imp:


Moor + isolates - Problem with transaction

Hello,
I'm trying to use Moor with isolates (following this tutorial: https://moor.simonbinder.eu/docs/advanced-features/isolates/#initialization-on-the-main-thread). Everything works as expected, except transactions. While i'm using them, i'm getting error below:

Unhandled Exception: "Invalid argument (transactionId): Does not reference a transaction: null"
#0      _MoorServer._transactionControl (package:moor/src/runtime/isolate/server.dart:136:7)
#1      _MoorServer._handleRequest (package:moor/src/runtime/isolate/server.dart:66:14)
#2      IsolateCommunication.setRequestHandler.<anonymous closure> (package:moor/src/runtime/isolate communication.dart:163:31)
#3      _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
#5      _DelayedData.perform (dart:async/stream_impl.dart:611:14)
#6      _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:687:7)
#8      _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#9      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#10     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#11     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:169:5)

Thanks in advance.

Thanks for reporting this issue. Since we have tests for transactions in isolates, I'll need more information to reproduce this. It could also be an issue on your side, can you check that you're awaiting everything in a transaction?

Thanks for the reply. I figured out that the queries were await-ed, but they were in a not await-ed forEach loop.

Yeah, the problem with something like list.forEach((element) async {})  is that the inner futures generated by the callback can never be awaited. You'd have to use Future.wait(list.map((element) async {})) or a regular for-loop. If you're generating lots of statements with forEach, you could also use a batch which bundles synchronously-generated queries.

but they were in a not await-ed forEach loop

Just to be sure, did awaiting them fix your problem? Can we close this issue? I also improved the error message to point out that the probably cause are unawaited operations.

Thank You for help. Everything works perfectly;)


Using in static contexts

Hi,
I'm trying to create a Chrome extension that uses a selector engine like this and I'm wondering if I would be able to use this as a static script rather than including it via Node. I tried a couple of things that didn't seem to work -- could you let me know if this is possible and if so, how I would use your library in a static context?

@aas395  this is super easy to do -
<!DOCTYPE html>

One

Two

Got it, thanks so much for your help!


Don't found option to render values in one row(for big lists, with ellipsis at the end)

Hi! I have a big list, something about 50+ items, and by default all are selected. And, of course, i don't want to show them all in select. I want to get something in values like [item1, item2, item3,...] - i do not want to move other items, that cannot be rendered within the current width of select to new row, i want to keep it in one row. Is there any way to do it(I didn't found way in oprions)?

I need also same or similar functionality


shared/config: merge shared/config/expand submodule in

As discussed, it's not really justified to keep shared/config and shared/config/expand as separate modules as they are most likely always used together

<EMAIL_ADDRESS>tagged


Iframe

Can we use this with an Iframe? is there any example? Thanks

Hi @sexta13, I'm sorry it's taken me so long to get back to you. This library doesn't explicitly support iframes, but I don't think it would be too hard to add support.
We'd need to update the getDocument method to target the frame, so maybe just adding an options argument that would take a frameSelector...
//                                    ↯ ---------- New API ---------- ↯
const frame = await getDocument(page, { frame: { url: /google\.com/ } })
const input = await getByLabelText(frame, 'search')

The @playwright/test fixture API would be a little trickier... it would depend on the above change, and then maybe provide queries for each frame?
import {test as baseTest} from '@playwright/test'
import {fixturesFor, TestingLibraryFixtures} from '@playwright-testing-library/test/fixture'

// New API
const fixtures = fixturesFor({ google: { url: /google\.com/ }, bing: { url: /bing\.com/ } });

const test = baseTest.extend<TestingLibraryFixtures>(fixtures))
const { expect } = test

// Queries available for each frame... `main` is always available to query `page.mainFrame()`?
test('iframes with search inputs', async ({ queries: { main, google, bing } }) => {
  const inputFromMainFrame = await main.getByLabelText('search');
  const inputFromGoogleFrame = await main.getByLabelText('search');
  const inputFromBingFrame = await main.getByLabelText('search');

  // ...
})

I left links above with where the modifications would need to be made.

Out of curiousity, what's your use case? Would you be querying the main frame as well as an iframe? What do you think of this API?

Hey,
No problem...
Where I work there's a main application (not an iframe) with a menu that opens different applications, and these are inside iframes (mostly one at a time...)
So I would have to query the main app and the app inside the iframe.
Regarding that API, it seems good to me... As it even enables multiple iframes and so. Good work ;)
Is it expectable to have a new release with this?
Thanks.


Retrieve customer email and shipping address

How to retrieve customer email and shipping address.
I found the information I'm looking for within the variable $details in the file ExpressCheckoutPlugin.php (Line 161).
But I have no idea how to retrieve this information within my controller.
Any suggestion is appreciated.
Thanks to everyone.

Duplicate of #25


Telegram notification

Instructions:
Create a new bot (https://core.telegram.org/bots/api) with Botfather.
To retrieve your telegram_id, send a message to the bot, then open https://api.telegram.org/bot(your_bot_token)/getUpdates . You will find your telegram_id under message->from->id.
You are now able to fill all the properties in utils/Telegram.js and send messages to yourself.
Uncomment Telegram.init().telegramPost(r) in buy() function.
You will now receive a Telegram message as purchase notification!

Done


Date field also input with the time, how could to get rid of the time but just keep the date

There is date field for my data, every time I input the date it automatically come with the time as well. May I get rid of the time but just keep the date.

I'll add an option for this. Currently the time shows at the bottom but that can be disabled.

Could you let me know how to disable the time? I only like to show the dat.
From: Matt Driscoll<EMAIL_ADDRESS>Sent: Monday, October 24, 2016 1:41 PM
To: Esri/geoform-template-js<EMAIL_ADDRESS>Cc: Xia, Zhujing<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Esri/geoform-template-js] Date field also input with the time, how could to get rid of the time but just keep the date (#520)
ATTENTION: This email came from an external source. Do not open attachments or click on links from unknown senders or unexpected emails.
I'll add an option for this. Currently the time shows at the bottom but that can be disabled.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Esri/geoform-template-js/issues/520#issuecomment-255811412, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ASx7I8VOiTjZN1z0fU1OkSOQ2DdWTl86ks5q3O2cgaJpZM4KbTEW.

Found the main.js line 86, and change the format to ‘L’. Thanks
From: Matt Driscoll<EMAIL_ADDRESS>Sent: Monday, October 24, 2016 1:41 PM
To: Esri/geoform-template-js<EMAIL_ADDRESS>Cc: Xia, Zhujing<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Esri/geoform-template-js] Date field also input with the time, how could to get rid of the time but just keep the date (#520)
ATTENTION: This email came from an external source. Do not open attachments or click on links from unknown senders or unexpected emails.
I'll add an option for this. Currently the time shows at the bottom but that can be disabled.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Esri/geoform-template-js/issues/520#issuecomment-255811412, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ASx7I8VOiTjZN1z0fU1OkSOQ2DdWTl86ks5q3O2cgaJpZM4KbTEW.

We also just ran across this, was it added in a recent release or still pending? @driskull

Its still pending @slibby. Thanks


Explorer shows a blank screen on Safari (rather than the deprecated browser message)

Current behavior: when you click through to the Explorer on Safari, you see a blank page
Expected behavior: you should see a message that this is an obsolete browser.
See discussion here:
https://czi-sci.slack.com/archives/C02450V6L59/p1634060411039200
From Seve: "hmm it looks like the module we were using is stale, I wonder if we should look for an alternative"
Current module: https://github.com/ElemeFE/obsolete-webpack-plugin
https://images.zenhubusercontent.com/228681195/4100f884-d1de-4ce7-9899-ba7d554e79d0/screen_recording_2021_10_15_at_2_22_57_pm.mov


Added multiprocessing for cpu processing

Because of the Python GIL, the preprocessing doesn't fully efficiently use all the CPU cores. By spawning the CPU tasks in its own multiprocess, you can get requests that happen on different threads to fully utilize the CPU cores.

Does this have any actual impact on performance? Do you have benchmarks?

Yes! I can send my data and test case later today.
On Fri, Jan 19, 2024 at 1:15 AM Purfview @.***> wrote:

Does this have any actual impact on performance? Do you have benchmarks?
—
Reply to this email directly, view it on GitHub
https://github.com/SYSTRAN/faster-whisper/pull/648#issuecomment-1900033593,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEXW5QF2CYM2IVG5IA22GNLYPI2TBAVCNFSM6AAAAABCBKWDXKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBQGAZTGNJZGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

Does this have any actual impact on performance? Do you have benchmarks?

Testing code:
`from faster_whisper import WhisperModel, decode_audio
from io import BytesIO
import time
from fastapi import FastAPI, Request, UploadFile
import nvtx
import threading
import time
import time
from concurrent.futures import ThreadPoolExecutor
from faster_whisper import WhisperModel, decode_audio
def preprocess_audio(filename):
with nvtx.annotate("Decode audio"):
return decode_audio(filename)
model = WhisperModel("large-v3", device="cuda", device_index=[0], compute_type="bfloat16", cpu_threads=2, num_workers=2)
def transcribe(model_to_use):
start_time = time.time()
with nvtx.annotate("Transcribe"):
    segments, info = model_to_use.transcribe("test.wav", language=None, vad_filter=True, word_timestamps=False, vad_parameters={"window_size_samples": 1024}, preprocess_on_multiple_cores=True)

print(f"Single Request Elapsed time: {time.time() - start_time}. Audio duration: {info.duration}")

#this is to clear out memory from the GPUs
transcribe(model)
transcribe(model)
if name == "main":
threads = []
for i in range(20):
threads.append(threading.Thread(target=transcribe, args=(model,)))
# thread_1 = threading.Thread(target=transcribe)
start_time = time.time()

for thread in threads:
    thread.start()

for thread in threads:
    thread.join()
print(f"Total Elapsed time: {time.time() - start_time}")

`
Results:
Overall time to pre-process 20 requests before without multicore:
2.7506766319274902 seconds
Overall time to pre-process 20 requests before with multicore:
1.9269721508026123 seconds
Now to test the overhead for a single request.
Overall time to pre-process 1 requests before without multicore:
0.21215391159057617 seconds
Overall time to pre-process 1 request with multicore:
Total Elapsed time: 0.21257996559143066
So there's a tradeoff between overhead and spawning the worker process

@joiemoie , hello. Tks for an interesting pull request.
From my test (20 requests, device=cpu, model=tiny, cpy_threads=8), I received the overall time as below:

without multicore:  14.506s
with multicore: 10.917s

That's a pretty significant improvement !
But I think we can improve further. I tried adding this logic to the cpu_preprocessing function:
if not isinstance(audio, np.ndarray):
    audio = decode_audio(
        audio, sampling_rate=feature_extractor.sampling_rate
    )

if vad_filter:
    if vad_parameters is None:
        vad_parameters = VadOptions()
    elif isinstance(vad_parameters, dict):
        vad_parameters = VadOptions(**vad_parameters)

The overall time was 9.633s after my change. I think the logic in the decode_audio function also takes up a significant amount of computation time.
What do you think about this idea? And should we add more code logic into the cpu_preprocessing function?

Nice! That's not a bad idea. Please don't merge this in for now. I noticed that there's memory inefficiency, and the pool size needs to be capped or have a parameter set. I'm investigating the memory inefficiency

@joiemoie , hello. Have you finished your work yet :smiley: ?


Saving progress/ fits

Dear all,
I copy a conversation GV and I have been having here:

I’m working on a fit saving method. I think I have a really neat, novel idea, but it will take some time. I hope by the end of the week. If we can get this together… we can maybe make an announcement soon that it is ready for certain things

GV:
For saving fit results, can you explain the idea before implementing it, even if it's not fully formed? I am changing these days the format of the output of fitting and sampling routines to be more convenient when doing time-resolved fitting, and easier to save, so we should coordinate.

The basic idea is an base object that is inherited for bayesian or MLE fits. It stores parameters/marginals loglike/posteriors knows about models, selections etc.
Now, this object can write a fits/binary file that stores all this information as well as be able to read such files to restore it in python.
This makes the fitsave/fitinfo object the center.
For time-resolved, I was inspired by you linking of functions. I want to have it so you can link the fit objects to each other and they then know about each other in time. Then, they will have in iterator function or you can index them so that you can look over them in time for plotting. But all the time organization is done behind the scenes. Since they know about the models and parameters, you can do a loop and have the model change in time.

Hi,
I think this is a good thing to pursue. However, I don't think a custom format and a class is necessarily the way to go. I think we should divide things:
-saving the results of an analysis: a model from astromodels can already be saved and loaded from disk. Saving the samples or the likelihood profile is a very nice thing, but I would do it in a separate file. There are already discussions about a format for that on the github repository of the germans, but it's not finalized yet, so we can do other things until that's finalized. This way you could exchange a model which is the result of an analysis without having to send several MB of numbers (the samples or the profile). Also the output of model.save() is a YAML file which is easy to read and parse, with no binary data.
-saving a session: it means saving everything (all plugins, models, results). This is more for your own archive than to send around, because it will depend on your particular configuration (another user might not have the same plugins or data files). Since 3ML will be used also for proprietary data, some of these data cannot be exchanged. However, if we implement the first point, that plus the notebook itself would essentially provide the same functionality, right? I see it as a low-priority thing
-I am in the process of switching to using pandas for results. Pandas containers can be merged (for example, the results from different intervals can be appended in a big table by using .append()), easily plotted, saved and loaded from disk (http://pandas.pydata.org/pandas-docs/stable/io.html). They also provide out-of-the-box fancy displaying and many other features. So a time-resolved analysis would look like (pseudo-code):
Define all the models you want to try with priors for the parameters
...
for i in range(n_intervals):
# Load plugins for this interval

...

data = DataList(...)

for j, model in enumerate(models):

    jl = JointLikelihood(model, data)

    this_results = jl.fit()

    bs = BayesianAnalysis(model, data)

    this_samples = bs.sample(...)

    if j==0:

        results = this_results

        samples = samples

    else:

       results.append(this_results)

       samples.append(this_samples)

if i==0:

    all_results = results

    all_samples = samples

else:

    all_results.append(results)

    all_samples.append(samples)

plt.plot(all_results['alpha'])
all_results.to_hdf("time_resolved_results.hdf")
all_samles.to_hdf("samples.hdf")
We could place this code into a convenience function in the OGIP plugin so that if you have PHA2 files (as the GBM does) you can say all_results = time_resolved_analysis(...) and have it all in one line:
channels_lists = [["10.0-30.0", "40.0-10000.0"],"200-40000.0"]]
pha_list = ["nai0_pha.pha2","bgo0_pha.pha2"]
bak_list = [...]
rsp_list = [...]
Models you want to try
models = [model1, model2, ...]
all_results = time_resolved_analysis(pha_list, bak_list, rsp_list, channels_lists, models)
Add priors to parameters
...
all_samples = time_resolved_bayesian_analysis(pha_list, bak_list, rsp_list, channel_lists, models)
Let's use as much as numpy, panda and scipy we possibly can, as those will continue to evolve and add amazing features. A specific file format should be avoided at all cost :-) It will also save us a ton of coding.

Ok: I agree this is better. So let's find a way to  keep the time resolved internal.
Pandas is good. I've been using it for a while now as well and it is really built for this type of thing.
If we go with pandas, I recommend using seaborn if we build plotting capability. Seaborn natively deals with pandas object.

See #44


Elasticsearch for searching metadata

to provide search capabilities we need to add elasticsearch as part of the new architecture so storage providers can use it instead of having to walk down the file hierarchy recursively.
next step is to schedule this. AFAICT we need a new api in the CS3 storage provider or a dedicated service, similar to the data provider.

does this still fit into the current storage-only architecture?

ping @butonic is this still relevant or can it be closed?

ping @butonic is this still relevant or can it be closed?

Closing. This is not technical debt. Ocis 2.0.0-beta1 has filename search based on bleve.
All further Search features will be handled in separate Epics and User stories.


Bug: Postgres Port not working

Describe the bug
Creating a PostgresContainer gets stuck on creating when port= is defined and raises a Runtime error after 1-2 minutes except when setting to the default Postgres port 5432.
Not defining it leads to random port mapping (as intended), but reading it with PostgresContainer.port returns the default Postgres port instead of the randomly selected one. It gets correctly mapped in the connection url though.
To Reproduce
import asyncpg
import pytest
from testcontainers.postgres import PostgresContainer

pytest_plugins = ('pytest_asyncio',)

# Gets stuck in creating container process and eventually raises a RuntimeException
@pytest.mark.asyncio
async def test_postgres_start():
    port = 3182
    with PostgresContainer("postgres:16-alpine", port=port) as pg:
        pass

# Reading port via .port returns the default port and not the actual one
@pytest.mark.asyncio
async def test_postgres_port():
    # Gets stuck in creating process:
    with PostgresContainer("postgres:16-alpine") as pg:
        port = pg.get_connection_url().split(":")[-1].split('/')[0]
        assert int(port) == pg.port

You can check the port with nmap as-well to be certain that the variable fails.
Setting driver=None leads to the same results.
Runtime environment
Versions and specs (at time of creating latest stable versions):

Machine: EndeavourOS Linux 6.8.9-arch1-2 x86_64 GNU/Linux
Docker: v26.1.2
Python: v3.12.3

pip: v24.0
pytest: v8.2.0
pytest-asyncio: v0.23.6
asyncpg: v0.29.0
testcontainers: v4.4.0

I think you are setting the port inside the container not outside. There is
a separate API for what you are trying to do.
On Fri, May 10, 2024, 3:47 PM David Horvát @.***> wrote:

Describe the bug
Creating a PostgresContainer gets stuck on creating when port= is defined
and raises a Runtime error after 1-2 minutes except when setting to the
default Postgres port 5432.
Not defining it leads to random port mapping (as intended), but reading it
with PostgresContainer.port returns the default Postgres port instead of
the randomly selected one. It gets correctly mapped in the connection url
though.
To Reproduce
import ...
pytest_plugins = ('pytest_asyncio',)
Gets stuck in creating container process and raises a RuntimeException @.*** def test_postgres_start(monkeypatch):
port = 3182
with PostgresContainer(
        "postgres:16-alpine",
        port=port,
) as pg:
    ...

Reading port via .port returns the default port and not the actual @.*** def test_postgres_port(monkeypatch):
# Gets stuck in creating process:
with PostgresContainer(
        "postgres:16-alpine"
) as pg:
    port = pg.get_connection_url().split(":")[-1].split('/')[0]
    assert port != pg.port

You can check the port with nmap as-well to be certain that the variable
fails.
Setting driver=None leads to the same results.
Runtime environment
Versions and specs (at time of creating latest stable versions):

Machine: EndeavourOS Linux 6.8.9-arch1-2 x86_64 GNU/Linux
Docker: v26.1.2
Python: v3.12.3

pip: v24.0
pytest: v8.2.0
pytest-asyncio: v0.23.6
asyncpg: v0.29.0
testcontainers: v4.4.0

—
Reply to this email directly, view it on GitHub
https://github.com/testcontainers/testcontainers-python/issues/569, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACECGJFH7DB4VBFIA4F3JXLZBUP6NAVCNFSM6AAAAABHRFCYL6VHI2DSMVQWIX3LMV43ASLTON2WKOZSGI4TAMZRG4YDINQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hello!
Would it be possible to maybe expand the documentation on what exactly port= does? Because neither in the Python documentation nor in Postgres-Tests was I able to find any hints.
Or implementing a simple function for getting the containers port directly.

you can get the exposed port using this function: https://github.com/testcontainers/testcontainers-python/blob/main/core/testcontainers/core/container.py#L140
https://github.com/testcontainers/testcontainers-python/blob/690b9b4526dcdf930c0733c227009af208f47cda/core/testcontainers/core/container.py#L139-L148
e.g. by:
mkdir tcp-postgres-port-demo
cd tcp-postgres-port-demo
python -m venv .venv
test -d .venv/bin && . .venv/bin/activate
test -d .venv/Scripts && . .venv/Scripts/activate
pip install testcontainers pytest
cat > example.py <<EOF
from testcontainers.postgres import PostgresContainer
def test():
    with PostgresContainer("postgres:16-alpine") as pg:
        print(pg.get_exposed_port(5432))
EOF
pytest -s example.py

documentation can be improved a lot, you are right about that

okay, that works too, thanks :+1:


fix attribute passthrough in DataInspector

Description
Fixes a typo that broke attribute passthrough in DataInspector
Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Compile Times benchmark
Note, that these numbers may fluctuate on the CI servers, so take them with a grain of salt. All benchmark results are based on the mean time and negative percent mean faster than the base branch. Note, that GLMakie + WGLMakie run on an emulated GPU, so the runtime benchmark is much slower. Results are from running:
using_time = @ctime using Backend
# Compile time
create_time = @ctime fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @ctime Makie.colorbuffer(display(fig))
# Runtime
create_time = @benchmark fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @benchmark Makie.colorbuffer(display(fig))

using
create
display
create
display

GLMakie
–
–
–
–
–

master
–
–
–
–
–

evaluation
–
–
–
–
–

CairoMakie
12.20s (12.12, 12.42) 0.10+-
24.01s (23.75, 24.15) 0.14+-
3.65s (3.60, 3.68) 0.03+-
20.01ms (19.49, 20.32) 0.30+-
24.58ms (24.45, 24.72) 0.10+-

master
12.18s (12.11, 12.31) 0.07+-
24.04s (23.87, 24.22) 0.12+-
3.67s (3.64, 3.71) 0.03+-
19.88ms (19.50, 20.34) 0.25+-
24.51ms (24.30, 24.81) 0.18+-

evaluation
+0.15%, 0.02s invariant (0.21d, 0.70p, 0.09std)
-0.13%, -0.03s invariant (-0.23d, 0.67p, 0.13std)
-0.50%, -0.02s invariant (-0.67d, 0.23p, 0.03std)
+0.67%, 0.13ms invariant (0.49d, 0.38p, 0.27std)
+0.28%, 0.07ms invariant (0.47d, 0.40p, 0.14std)

WGLMakie
–
–
–
–
–

master
–
–
–
–
–

evaluation
–
–
–
–
–


Build Squad : skip-coverage-for-scripts-and-transactions by introducing new flag as covercode="contracts

#1143
Hi flow Team Thank you for creating awesome flow project .
This PR allow you to produce test coverage only for contracts and skip for scripts and transactions
to implement this one more flag added as covercode whose default value is "all" and other one "contracts"
$go run cmd/flow/main.go test --cover --covercode="contracts" flow-code-coverage/tests/test_approval_voting.cdc

Thank you please review MR

Could you please describe the PR

Could you please describe the PR

@sideninja description updated thank you

Hey @PratikDhanave, thanks for the PR!
However, there is no actual code in your proposed changes, besides a JSON file and some dependency version bumps.
The reason is that the feature in your description, has already been implemented and merged on the master branch.
See the relevant PR: https://github.com/onflow/flow-cli/pull/1122


BUG: sparse: fix Asp @ vsp for 1D sparse vector and add tests

Fixes #21775
Asp @ vsp with sparse vector vsp tried to construct a 1D shape using the 2D indices from csr_matmat directly. Needs post-processing: construct with 2D shape using the data and then reshape to make the 1D result.
Added tests of basic matmul ops.

Fix looks good, and the added tests are very appreciated. Merged! Thanks @dschult


Does not work with any of the map APIs (re-rendering incompatibility)

Expected behavior
With the library like leafletjs or  google maps API, choo  should render a geo map and then update (re-render) it without any problem.
Actual behavior
Upon emitting render with updated coordinates (latitude and longitude), every map implementation dies and then displays blank container or , alternatively,  empty, grey map. Tested with:

Leaflet
Google Maps
Mapbox GL

It results in the same outcome.
Steps to reproduce behavior
Example code (map component):
import html from 'choo/html';

export default ({latitude = 51.505, longitude = -0.09, zoom = 18, markers = []},
    emit) => {
    const geoMap = html`<div id="map" style="height: 380px"></div>`;
    if (typeof L !== 'undefined') {
            const map = L.map(geoMap).setView([latitude, longitude], zoom);
            L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}', {
                attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox',
                maxZoom: zoom,
                id: 'mapbox.streets',
                accessToken: 'apiTokenHere'
            }).addTo(map);
    }
    return geoMap;
};

It may not be related I am not sure what's causing this issue. If its not diffing algorithm issue, than its probably worth closing.

Just found its unrelated to choo's render!

Yup, the rerender of anything apparently kills all maps.
There has to be a way not to do this as this makes geocoding impossible.

Check out the example in https://github.com/yoshuawuyts/nanocomponent, you
need to make sure that the DOM element is not recreated on each render,
nanocomponent (and https://github.com/yoshuawuyts/microcomponent) help with
this (:
On Wed, May 31, 2017 at 8:21 PM Maciej Sitko<EMAIL_ADDRESS>wrote:

Yup, the rerender of anything apparently kills all maps.
There has to be a way not to do this as this makes geocoding impossible.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/yoshuawuyts/choo/issues/507#issuecomment-305273961,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACWlej4RbDafrKCvQOPP3fCwb23FiU9Rks5r_a-xgaJpZM4Nr5sx
.

Thats cool, but a bit low-level. Wouldn't it be much better to add/extend something in the API ? Some layer of abstraction.
Especially given that choo aims to be top-level framework at the tompost body level

@graforlock the diffing module used by choo (nanomorph) allows for this. You can override the isSameNode() method of an element to prevent nanomorph from replacing it:
let el = bel`<div id='abc'>cache me ousside</div>`
el.isSameNode = function (target) { return target.id === 'abc' }

From the caching DOM elements section in the nanomorph docs:

Sometimes we want to tell the algorithm to not evaluate certain nodes (and its children). This can be because we're sure they haven't changed, or perhaps because another piece of code is managing that part of the DOM tree. To achieve this nanomorph evaluates the .isSameNode() method on nodes to determine if they should be updated or not.

nanocomponent overrides this method under the hood.

You are right, its even on the forefront of github :) My bad


Azure App Service on Linux, Kudu build fails after automatic PLATFORM_VERSION change, PATH variables missing

The Issue
I have been deploying a Node JS Angular App to App Services using Local Git from PowerShell and it has been working fine until last weekend. I have tried a handful of things to rectify the git push and Kudu build process but the failure continues. For some reason I had saved the Application Settings from the week before. When I compared that settings with the current, I can see that the PLATFORM_VERSION have changed and also the PATH variables are missing donet related directory paths. These changes where not made by me.
Project structures.
Local Node Js version v16.1.0 and npm 7.19.0.
Local Git run from PowerShell
Azure App Service, Linux Plan, Node Js version  14-lts.
Application Settings and PATH from the week before:
PLATFORM_VERSION = <IP_ADDRESS>
PATH = /home/site/deployments/tools:/opt/Kudu/Scripts:/usr/bin:/usr/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/opt/dotnet/2.2:/usr/local/.rbenv/bin:/usr/local:/opt/oryx:/opt/nodejs/lts/bin:/opt/dotnet/lts:/opt/python/latest/bin:/opt/php/lts/bin:/opt/php-composer:/opt/yarn/stable/bin:/opt/hugo/lts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.dotnet/tools:/opt/nodejs/9/bin

Application Settings current:
PLATFORM_VERSION = <IP_ADDRESS>4
PATH = /home/site/deployments/tools:/opt/Kudu/Scripts:/usr/bin:/usr/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/bin:/usr/local/.rbenv/bin:/usr/local:/opt/oryx:/opt/nodejs/lts/bin:/opt/dotnet/lts:/opt/python/latest/bin:/opt/php/lts/bin:/opt/php-composer:/opt/yarn/stable/bin:/opt/hugo/lts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/nodejs/9/bin

We can see that the recent platform version is missing both /opt/dotnet/2.2 and  /root/.dotnet/tools in its PATH
Now taking into account that the git push and Kudu build failure below indicates a missing command or file, I suspect that the PLATFORM_VERSION version change is the culprit.
The log/error given by the failure:
PS > git push
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 212 bytes | 212.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Could not execute because the specified command or file was not found.
remote: Possible reasons for this include:
remote:   * You misspelled a built-in dotnet command.
remote:   * You intended to execute a .NET Core program, but dotnet-/opt/Kudu/KuduConsole/kudu does not exist.
remote:   * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
To https://xxxxx.scm.azurewebsites.net/xxxxx.git

##What I have tried:
I have tried to modify the Environment PATH variables by adding PATH=$PATH:/opt/dotnet/2.2:/root/.dotnet/tools; export PATH , first to  ~/.bash_profile, it did not help, then to ~/.bashrc, it did not make any difference either. I have to mention that these Application Settings are also set: SCM_DO_BUILD_DURING_DEPLOYMENT = false and DISABLE_HUGO_BUILD = true. It seems the files bash_profile and bashrc are never read when I restart the the App Service or Stop and restart the App Service, which I have done a couple of times. This is a shared platform so I cannot reboot, so the bash_profile can be read. I have also changed the PLATFORM_VERSION back to <IP_ADDRESS>, it did not help, the PATH variables remain unchanged.
Anyone here who can give me a hint on how to resolve this issue?  I still strongly suspect the missing PATH variable /root/.dotnet/tools which Kudu is asking for to be the missing puzzle, but I don't know how to force it into the build environment.

Observations
The details described in the issue submission about change in platform, remains the cause of the problem, as far as I have observed.
It seems that the change in platform version created a mismatch between the files already deployed and the new pushed files. And it is most likely that Kudu-git stores some meta-data of the platform in its manifest, hence the failure to build a new push. I might be wrong here, in that case I stand corrected or you guys need to look into that.
Solution for others
To resolve the conflict, create a newui in your Kudu deploy URL, e.g.   https://xxxx.scm.azurewebsites.net/newui.
From this page, open bash terminal and remove everything inside your home directory with rm or open the file-manager and delete all files/folders inside home.
 It seems this clears all your previous deployments. Works well for a deployment Repo, it will be a disaster if it were a source code Repo.

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


chore: move malleated transaction decoder to the encoding package

I don't think it makes sense that we are keeping the custom decoder in the app package, since it is strictly related to encoding.
Moved this in the non-interactive defaults feature branch, but it should probably be its own PR. I think it makes sense to include this in the next breaking update, since its an API change.

Codecov Report

Merging #690 (50cd498) into main (511e22c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #690   +/-   ##
=======================================
  Coverage   40.49%   40.49%
=======================================
  Files          28       28
  Lines        2857     2857
=======================================
  Hits         1157     1157
  Misses       1611     1611
  Partials       89       89

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


ARROW-12161: [C++] Async streaming CSV reader deadlocking when being run synchronously from datasets

Calling the async streaming CSV reader from the synchronous Scanner::Scan was causing a form of nested parallelism and causing nested deadlocks.  This commit brings over some of the work in ARROW-7001 and allows the CSV scan task to be called in an async fashion.  In addition, an async path is put in the scanner and dataset write so that all internal uses of ScanTask()->Execute happen in an async-friendly way.  External uses of ScanTask()->Execute should already be outside the CPU thread pool and should not cause deadlock.
Some of this PR will be obsoleted by ARROW-7001 but the work in file_csv and the test cases should remain fairly intact.

The JNI failure looks to be a timeout.  The integration failure is unrelated (Rust error).  The R Windows 3.5 error seems legitimate.  I am investigating.


Block explorer RPCs

block hash in notifications RPC
chains RPC
block and blocks RPCs

@afck I'll let you land this


Added detail to explanation of quantile function

I didn't understand it so I thought I'd make it easier for the next person.

Looks good, thanks!


[DX] Improve command and argument suggestions

It's been a while since I did a manual deploy, so I forgot the command (of course) to do so. I tried guessing it from memory, and while I was happy to see that netlify-cli tried to help me out, the suggestions felt really weird:
$ netlify publish
  > warning publish is not a netlify command.
Did you mean unlink [y/n]

I expected netlify-cli to suggest deploy (the correct command) here, instead of the dangerous unlink
$ netlify push
  > warning push is not a netlify command.
Did you mean api [y/n]

I also expected netlify-cli to suggest deploy (the correct command) here, instead of the unrelated api
$ netlify deploy --production
  > Error: unexpected argument: --production
  > See more help with --help

I expected netlify-cli to suggest using --prod (the correct argument) here.

To add more context - I believe we're using an oclif plugin for that, see https://github.com/oclif/plugin-not-found.
It seems to use Levenshtein distance for guessing the correct command:
https://github.com/oclif/plugin-not-found/blob/d7f5ae83c7f2241e9a8b010f6fe13ece26046663/src/index.ts#L15
There might be a better approach to do it, but I can't think of one without doing more research


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-2.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 971

Questions ?
Please refer to the Backport tool documentation


Package renaming request

Hi @mob-sakai,
Favo from OpenUPM - a platform collects open-source UPM packages. First of all, thanks for creating this awesome open-source package. I am writing to you because OpenUPM is preparing to comply with Unity's Terms of Services (TOS) Updates. Your package is available on our platform, and I need your help to make some changes.
According to the Unity Package Manager Naming Convention, the package name should use reverse domain name notation, at least 3 sections joined by a dot: tld.org-name.package-name. For example com.littlebigfun.addressable-importer.

tld is the top-level domain, like com, org and so on. If you're not sure about what to use, please use com.
org-name is your organization name. With tld together it makes sure the organization name is globally unique to its registered owner. You should avoid using a tld and org-name combination that may be confusing to users, like com.unity or com.github.
package-name is your package name.

Your package name is UnityEventDrawerEx. I recommend you to update it to comply with the naming convention by,

change the package name in package.json.
bump the version field of package.json.
create a Git tag.

Please reply to me if you've made the change, I will update the OpenUPM side to make it live.
If you do not respond to the issue, It will be closed by the end of Jan 2021, and your package will be removed from our platform. Please notice that Unity Package Guiding Principles & Guidelines do not apply to you when you host Packages on GitHub for Unity users to download and put the Packages in their projects, as long as the hosted Package does not, directly or indirectly, leverage the Unity Editor as a marketing or distribution platform. Thus, you don't have to change anything if you don't intend to publish the package on a scoped registry (like OpenUPM).
Sorry for the inconvenience, feel free to discuss with me if you have any questions.
BR
Favo

Also, the package name should be lower case.

@favoyang

The package name has been changed to com.coffee.event-drawer-ex.
A package version 1.0.0 has been released.

Thanks. The package is available at https://openupm.com/packages/com.coffee.event-drawer-ex/


Missing Licenses and certifications

It seems like it's not pulling this information from the profile, would it be possible to add this to the data?
An example profile containing this section would be:
https://www.linkedin.com/in/devashish-katoriya-84699337
EDIT: Seems like it's not pulling the languages out either, only the first one

Both issues (Certifications + Languages) are now fixed in the v3.1.0 release.
Thanks for bringing this to my attention!

Sorry to reopen this one.
https://www.linkedin.com/in/punika1988/
Not sure what the edge case is but it seems on this profile it doesn't pull all the languages. However the profile in the OP seems to work fine.
Also, thanks for the extremely fast fix!

@eNzyOfficial No worries; I appreciate the follow up and bringing the edge-case to my attention. I had missed a different way that LinkedIn was nesting the language data - now fixed in the v3.2.1 release.


Extended Drop area to report 🗒  body for attachment

Details

Fixed Issues

Fixes #3605
Tests | QA Steps

Open any conversation on E.cash on the Web or Desktop.
try dropping a file over the composer. Composer should be highlighted and on drop upload attachment modal should open.
Try dropping a file over the Report Body. Composer should not be highlighted and on drop upload attachment modal should open.

Tested On

[x] Web
[ ] Mobile Web
[x] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

https://user-images.githubusercontent.com/24370807/123133206-21e34b80-d46d-11eb-9e98-ac03bd5aba6f.mp4
Mobile Web

Desktop

iOS

Android

Updated

@ctkochan22 Is there anything left to do on this PR? Please let me know. Thanks.

🚀 Deployed to staging in version: 1.0.74-1🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Multilingual improvements to do

To not end up with source code files full of translations starting with the filename.message-key we'll build an extra function and class parameter to setFile(filename-not-path); We will also modify out get() function to handle both cases. File name previously defined in the stack trace (to build) or traditionally prepending the filename. to the message-key.
In order to change filename (messages to load from other file) the setFile(otherfilename); should be (re)called. Or traditional fetching: otherfilename.message-key

Fixed in commit acce371
Miss-usage can error out. For example: TranslationService->setFile('non-existent') Also: if for example non-existent.yaml doesn't exist in the lang/en/ directory. (Fallback language = "en")


Remove useless constructor from 'NullDependency'.

What kind of change does this PR introduce?
Removes the useless constructor from NullDependency.

Did you add tests for your changes?
No.

If relevant, link to documentation update:

Summary
constructor() {
  super();
}

doesn't do anything.  There's even an eslint rule about it.

Does this PR introduce a breaking change?
No.

Other information

is the yarn.lock added intentionally?

It is not.  I don't know how I missed that.

Thanks


ReferenceError: Can't find variable: require

Can't get rid of this error. Here's my package.json:
{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "dependencies": {
  },
  "devDependencies": {
    "karma": "~0.12.25",
    "karma-jasmine": "~0.2.3",
    "karma-phantomjs-launcher": "~0.1.4",
    "karma-junit-reporter": "~0.2.2",
    "jshint-stylish": "~1.0.0",
    "browserify": "~6.3.3",
    "proxyquireify": "~1.1.0",
    "karma-browserify": "~1.0.0"
  }
}

karma.conf.js
module.exports = function(config) {
  config.set({
    basePath : '.',

    autoWatch : false,
    singleRun: true,

    frameworks: ['jasmine', 'browserify'],

    browsers : ['PhantomJS'],

    plugins : [
      'karma-browserify',
      'karma-jasmine',
      'karma-junit-reporter',
      'karma-phantomjs-launcher'
    ],

    preprocessors: {
      '*.spec.js': [ 'browserify' ]
    },

    browserify: {
      debug: true,
      plugin: ['proxyquireify/plugin']
    },

    junitReporter : {
      outputFile: 'test_out/unit.xml',
      suite: 'unit'
    },

    files: ['*.js']
  });
};

hello.js
exports= {
  hello: function() {
    return "hello";
  }
};

hello.spec.js
var proxyquire =  require('proxyquireify')(require);

describe('testing hello', function () {
	var Hello= proxyquire('./hello');

	it('should say hi', function() {
		expect(Hello.hell()).toBe('hello');
	});

});

Output from karma start karma.conf.js --log-level debug
DEBUG [config]: Loading config /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/karma.conf.js
DEBUG [plugin]: Loading plugin karma-browserify.
DEBUG [plugin]: Loading plugin karma-jasmine.
DEBUG [plugin]: Loading plugin karma-junit-reporter.
DEBUG [plugin]: Loading plugin karma-phantomjs-launcher.
DEBUG [framework.browserify]: created browserify bundle: /var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/9409150f6698b81bf6aaf0b28d56eb7f01704769.browserify
DEBUG [framework.browserify]: no matching preprocessed file was found, defaulting to prepend
DEBUG [framework.browserify]: add bundle to config.files at position 0
INFO [karma]: Karma v0.12.28 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
DEBUG [temp-dir]: Creating temp dir at /var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/karma-5759403
DEBUG [launcher]: /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-phantomjs-launcher/node_modules/phantomjs/lib/phantom/bin/phantomjs /var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/karma-5759403/capture.js
DEBUG [watcher]: Excluded file "/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/karma.conf.js"
DEBUG [framework.browserify]: building bundle
DEBUG [framework.browserify]: adding hello.spec.js to bundle
DEBUG [framework.browserify]: bundling
INFO [framework.browserify]: 19474 bytes written (0.12 seconds)
INFO [framework.browserify]: bundle built
DEBUG [watcher]: Resolved files:
	/var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/9409150f6698b81bf6aaf0b28d56eb7f01704769.browserify
	/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/jasmine.js
	/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/boot.js
	/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/adapter.js
	/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/hello.js
	/Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/hello.spec.js
DEBUG [web-server]: serving: /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma/static/client.html
DEBUG [web-server]: serving: /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma/static/karma.js
DEBUG [web-server]: upgrade /socket.io/1/websocket/snH5FbsEJtcHVKNbf6AU
DEBUG [karma]: A browser has connected on socket snH5FbsEJtcHVKNbf6AU
INFO [PhantomJS 1.9.8 (Mac OS X)]: Connected on socket snH5FbsEJtcHVKNbf6AU with id 5759403
DEBUG [launcher]: PhantomJS (id 5759403) captured in 2.082 secs
DEBUG [web-server]: serving: /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma/static/context.html
DEBUG [web-server]: serving (cached): /var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/9409150f6698b81bf6aaf0b28d56eb7f01704769.browserify
DEBUG [web-server]: serving (cached): /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/jasmine.js
DEBUG [web-server]: serving (cached): /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/hello.spec.js
DEBUG [web-server]: serving (cached): /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/boot.js
DEBUG [web-server]: serving (cached): /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/node_modules/karma-jasmine/lib/adapter.js
DEBUG [web-server]: serving (cached): /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/hello.js
PhantomJS 1.9.8 (Mac OS X) ERROR
  ReferenceError: Can't find variable: require
  at /Users/magnusorngylfason/Google Drive/Business/Shopping Network/Code/browserifytest/hello.spec.js:1

DEBUG [karma]: Run complete, exiting.
DEBUG [launcher]: Disconnecting all browsers
DEBUG [framework.browserify]: cleaning up
DEBUG [launcher]: Process PhantomJS exited with code 0
DEBUG [temp-dir]: Cleaning temp dir /var/folders/qg/r32h5c8s3sb5s4xy6lpthn680000gn/T/karma-5759403

Any ideas? This has been driving my crazy all weekend.

This should be a relatively easy fix on proxyquireify's end of things. Basically the prelude replacement code needs to check b._expose. If it's empty, require won't be global normally and the replacement doesn't need to be either. If it has any keys, then newRequire needs to be on the window with as b._options.externalRequireName ('require' by default).
If you want details on why karma-browserify exposes your test files, read on:

I'm a maintainer over at karma-browserify and just wanted to weigh in on exactly what's going on here and especially speak to the questions Thorsten raised in https://github.com/thlorenz/proxyquireify/issues/21#issuecomment-66531714. karma-browserify is essentially a collection of hacks that deals with shortcomings in the Karma API and quirks in the Browserify API.
The core issue is that portion of Karma's API that allows for changing the files that it synchronizes with the browser is synchronous. The framework API was designed for things like karma-mocha which just needs to add two static scripts: mocha and some glue between the Mocha API and the Karma browser API. karma-browserify isn't that simple. Generating the bundle is async. The preprocessor API in Karma (e.g. compiling CoffeeScript to JS) is async.
karma-browserify is typically receiving a glob of files that matches multiple test files. Then this is what it does:

Generates a random filename and adds that to Karma's file list (framework)
Begins receiving calls to preprocess your test files (preprocessor)
Adds these files to the random, static bundle file, exposing them as their absolute paths
In place of the actual content, passes 'require(' + path ')' back to Karma

On top of this, it hacks in a preprocessor for the randomized static bundle. This preprocessor is basically there to hold up Karma until the initial bundle has finished. This is why, when in doubt, you design your APIs to be async.

Seems like a weird quirk with karma-browserify/karma then.
Possibly ask them to fix/remove some of their hacks?
If there is a straightforward solution we could apply to proxyquireify to fix this I'm open to it, but seems like we'd have to fix one hack with another ugly hack.
I'm leaning towards closing this, @bendrucker if you agree go ahead and do so.
Thanks.

This should be a relatively easy fix on proxyquireify's end of things

If anyone wants to stab at this however I'm open to merging this in (as long as its not too ugly and won't potentially cause problems in other cases).

Yeah unfortunately it's a karma thing and karma-browserify is hacky because that's the only way to go.
I just dug in and this is a proxyquireify bug and a one line fix :)
Wait til you see

So technically it was a 2 line fix :smile:
My missive about the crazy hoops karma-browserify jumps through above was totally unnecessary. This was just an obscure proxyquireify bug. Commit message describes the issue if anyone cares to take a look for themselves.

bad news: Anyone using @git-jiby-me 's patch will find their lives ruined by the v1.2.0
good news: You can just remove the patch entirely and everything will be fine!

This is why the advice on the SO post is bad. If you catch a bug in a project and need to hotfix it you should always fork and use a git dep.

@Dakuan so removing that patch and using the latest proxyquireify version makes it work with karma for you as well?

@thlorenz correct!

Ok, I left a comment on the stackoverflow answer.


View tests for empty values incorrectly.

In result_json, the view multiple times checks to see if a value 'is' the empty string rather than checking if it '==' the empty string. This causes unexpected behavior, as the two are not the same.

Fixed in 58e469632f12167c6d14771ddca9718e0f4ab373.


chore: add benchmarks to CI

Codecov Report

Merging #35 (c28fe60) into main (91b5178) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #35   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines          245       245
  Branches        34        34
=========================================
  Hits           245       245

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


No Error Handled when --test entered wrongly

Dear Team
When we include multiple tests to execute using --test , if any of the entered TC title is incorrect then framework runs the TC which have correct syntax and doesnt give any note for incorrect test-cases that were included

Steps To Reproduce :
Execute : robot --test "correct.tcid" --test "wrong.tcid" suitefile.robot
Observation :
In the above scenario TC "wrong.tcid" doesnt get executed ( wrong TCID/TC-Title ), at the end of execution there is no note/error message given by unexecuted cases.
Version : Robot Framework 3.1.2 (Python 3.7.6 on win32)

It's true that there's no error or warning if you use --test so that there's no match if some tests are run anyway. If no tests match the given filtering criteria, then you get an error. I agree it would be better to somehow notify the user about this situation. My guess why it's not done is that we use that approach also with --include and --exclude and with them the current approach works fine.
If we'd change this, we have two possibilities:

Emit a warning to the console that's also visible in the log file.
Make this an error that prevents the whole execution.

Making this an error would make the change pretty badly backwards incompatible so warning is probably better.


docs: General Information update

Description
Mihaela worked on a separate branch to add more information to the docs
Type of change

[x] Documentation updated

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I have not reduced the existing code coverage

The non-deterministic bug with incorrect singularity version appears again here, as well.
Regardless, builds on the PR were succesfull - our software works correctly.


code coverage for ui/dialogs package

Signed-off-by: Navid Yaghoobi<EMAIL_ADDRESS>

Nice work.
LGTM


Get Energy Usage returns the wrong data

The method GetEnergyUsageAsync returns DeviceGetInfoResult which contains no information about the energy usage. It should return a json object that contains the correct energy usage data from the device.

I don’t currently have a device that has this feature to test with. If you
would like to alter the code it should not be too difficult.
On Sat, Feb 17, 2024 at 12:06 PM Oliver Waits @.***>
wrote:

The method GetEnergyUsageAsync returns DeviceGetInfoResult which contains
no information about the energy usage. It should return a json object that
contains the correct energy usage data from the device.
—
Reply to this email directly, view it on GitHub
https://github.com/cwakefie27/TapoConnect/issues/4, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHPPOGMXPAJK6S25HM5NYLLYUDPQ3AVCNFSM6AAAAABDNOG57WVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE2DAMZRG4YTIMI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

This appears to be fixed in this fork https://github.com/lcervo/TapoConnect but there is no pull request.

I just pulled in that version. I have not tested it so please proceed knowing it is untested code. Thanks


CSS update

This change is

src/main/resources/css/language.css, line 91 at r9 (raw file):
Previously, natibekele wrote…
you should be able to get away without the !important here

I found that without the !important here, the border:none of .unavailable has override this border-top

src/main/resources/css/chapters.css, line 40 at r10 (raw file):
Previously, natibekele wrote…
redundant, with line 9?

Done!

src/main/resources/css/chapters.css, line 41 at r4 (raw file):
Previously, AnonymousWalker (Tony) wrote…
sure, let me fix that

done!

src/main/resources/css/language.css, line 96 at r9 (raw file):
Previously, natibekele wrote…
we should be able to move this to common.css.
    .l-list-container > div:last-child a {
     border-bottom: 1px solid #111A3133;
    }

we can leave it general and not have to specify def-card or chaptercard after the a

Yes, I changed it.

src/main/resources/css/language.css, line 91 at r9 (raw file):
Previously, natibekele wrote…
oh i see. so maybe it's better if we use border: 1px solid #111A3133 instead of just border-top? we should get the same look and be able to avoid the !important again no big deal if we can't

I was using border-top to avoid overlapping with the adjacent items

src/main/resources/css/common.css, line 174 at r9 (raw file):
Previously, natibekele wrote…
ok, if that's the case, do you want to try adding align-items: center to .navbar_item and leave it as display flex and see if that resolves the problem? if we could keep them the same that would be nice, but if not, it's not a big deal

yeah I found that now it works with display:flex normally....


Getting back url of opened view

Hi, having issues with oauth2: when you open a new window with an oauth link it will redirect you with GET params. How can we catch that 'get' params?
InAppBrowsers gets the reference of window and can controll it's redirects:
var ref = window.open(urlWithParams, '_blank', 'location=no,clearcache=yes,clearsessioncache=yes');
ref.addEventListener('loadstart', function(event) {
if (event.url.indexOf(CONFIG.redirectUri) === 0) {
...

This is an old issue now, but, what such a safe way of web browsing, isn't the standard way to pass values back to the application by using a URL using a custom scheme? Did you try that? It is by design that the SafariViewController is exposing little information.
https://developer.pingidentity.com/en/resources/napps-native-app-sso.html describes an end-to-end flow illustrating that. The redirect_uri of the OAuth flow is based on such a custom scheme.


Marker - Massive Collecting

Hi.
I know my question is too basic, but I can't pass the Marker - Massive Collecting tutorial stage. This is the code block that I create:

It works fine until the main robot finds a resource and places a marker. Right then all of the robots freeze and the Reset button stops working too. What am I doing wrong? I'm trying to understand the game so that I can teach it to some kids... Help please!

There was a bug in our code, my bad. I've fixed it so the online version should work now. Thanks for reporting it. You need to slightly change your blockly code for it to work though. The instructions should be clearer, we need to improve that.
The resource is only known inside of the 'when resource is discovered' block. Markers are completely independent of resources. There are just a general way for robots to communicate with each other. The markers are always placed at the current position of the robot and since the robot has a discovery range of 2 blocks the discovery event is triggered when the robot is a few blocks away from the resource. So the robot needs to move to the resource first and then place the marker.
Right now the only thing robots can do is collect resources but in the future we want to extend the gameplay so robots might be able to conquer the enemy base. In this case markers could be placed at the enemy base to gather enough robots to conquer it. That's also the reason why there are multiple marker colors so players could use different colors for different situations:
Here is a working version:

I'm happy to hear that you want to use robotopia for teaching kids about programming. If you have any more questions or need support with something let me know. I'd be also interested to get your feedback how it went and what the stumbling blocks were.

You are starting something huge in the way of programming! Thank you, good luck, and keep up the good work.
I don't mean to sound too rude, but here are a few things that I didn't like about Robotopia:

After playing a few games, the page becomes too heavy and the controls (adding/moving blocks) don't work as swiftly and softly as the beginning.
I tried to install the local version. I downloaded and installed Git, and I ran the commands that you've included in your instructions. But I get the "npm is not recognized as an internal or external command, operable program or batch file" error. I'm not a pro at using Git and I'm not sure if I've done it correctly. But as a beginner, I think the installation instructions are not clear enough.

I only pointed out these things because I love Robotopia, and I think it's really an amazing project. That's why I want it to improve.


Mrb string value cstr patch

All existing tests passing. Not sure how to write a test for the failure case (suggestions welcome), since the failure behavior is to crash. Also I only see tests in Ruby, and this function isn't exposed via any bindings. In fact...
I only see mrb_string_value_cstr used internally in

mrb_str_to_inum : with a flag that controls whether it should be converted to a string, which this function now does by default.
mrb_get_args : in case of the 'z' format specifier. I'm guessing we want this conversion. Otherwise we need a way to not crash, and alert the user of the type mismatch.

I went overboard with 9553e20d34c204826fde86620d2f433b3d59f1c1 (the call wasn't really redundant, it would still affect the else case that followed) and 264a059aef01b079d9788c8569182482edeab82a, so I reverted those changes. Even though the tests still passed, I'm not sure I understood the intent of the code at first. Going to look more at mrb_str_to_inum... something seems fishy. But the remaining one-liner fixes #2847 and keeps the tests happy.


tor-browser-bundle-bin: 7.5.6 -> 8.0.2 [18.03 backport]

Motivation for this change
For security-sensitive applications like this it is better to stick to supported versions, also this means we have to perform major version upgrades. cc @joachifm @andir
The less-preferred alternative would be to mark it as insecure in 18.03 since there have been security fixes in 8.0.2
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

Thank you


long tag names issue

when a tag is too long there is no way to know what the full name is. it could be useful to let the text "scroll" through or something. my tags are all hierarchical so I often can't tell which tags I am tapping.

I have the same issue with album names myself. Here's what I've considered so far:

use "marquee" labels. It is what you've suggested. The major flaw is that scrolling takes time, and users are always in a hurry.
change the maximum width of these filter chips. Not a fixed size like it is now, but something like half the screen width. It would feel more or less like the current layout, but when you switch to landscape you see twice more right away. It wouldn't help normal users that are not good with lateral thinking though.
add the full name of the chip as a label in the long press menu of that chip. Useful one by one, but not for comparing multiple chips at once.
add title filtering to album/country/tag page. Title filtering combined with list view would solve the issue on these pages, but not for search/info/stats.
remove the width limit in some context, e.g. when there's a single chip on the Collection page.
remove the width limit altogether, but it would break the layout in various places.

Maybe 1, 2 and 3 mixed together?
Another option might be to let the text wrap in the button and either reduce the font size or increase the height of the label/button whatever you want to call it.

Aves v1.6.11 is released. It includes the improvements 2) 3) and 5) described above. Please give it a try and let me know if it helps.


New moon time is wrong

Since the lib doesn't have a method to directly calculate new moon time, I approximated it checking lunarAgePercent:
2023-02-20T00:20:00.000Z -> 0.9999708226112602
2023-02-20T00:21:00.000Z -> 0.9999943387321082
2023-02-20T00:22:00.000Z -> 0.00001785483715366354
2023-02-20T00:23:00.000Z -> 0.00004137094219913706

So it says, that February new moon is Feb 20, 0:22UTC, but public data and pyephem library say that it will be 7:06UTC

There are primary and intermediary phases.
The idea of an event is difficult to encapsulate here - it would be a fractional moment in time, essentially never shown.
Original intent of this package was weather station graphics implementation, giving a user indication of the current phase.  Essentially, rounding to the nearest phase.
This is discussed in other tickets.

I mean not a new moon phase (3.54 days), I mean exact new moon moment.
So according to your library, in Feb 20, 2023, lunarAgePercentage from 0.999 becomes 0.001 around 0:22UTC, which means that new moon moment occurs at this time. Which is wrong.


feat(jellyfish-wallet-encrypted, jellyfish-wallet-mnemonic): add public key uncompressed

What this PR does / why we need it:

Need uncompressed public key for encrypted wallets to be able to getEvmAddress
Need to be able to get uncompressed public key without needing the privateKey (getDerivedNode) because it would require passphrase prompt just to fetch evm address

Which issue(s) does this PR fixes?:

Fixes #
Additional comments?:

arh.. one more.. you add should not derive pub key uncompressed
on https://github.com/BirthdayResearch/jellyfishsdk/blob/cf0fd8c0c9d82ff2f689c721a8abe0215e96aef8/packages/jellyfish-wallet-encrypted/tests/bip32.test.ts#L162
as well?? 🙏

ensure encrypted node is not allowed to provide compressed/uncompressed public key
overall looks good


customer stories: Add full name for PIDD

In the customer story overview page there was a mention of PIDD, where Paloma Irrigation and Drainage District was a bit more professional to mention. This change updates that.

@robmarcer Don't forget to click the merge button next time :)

I was waiting for the tests to finish. I looked for a way to test and merge (if the tests pass) but I don't think that's possible?


fix transcode job argument parsing

Makes parsing of the optional transcode job arguments more robust

True, it still needs to check the value of the boolean or whether the list is empty though


Translations in stores and objects does not change when locale is changed

When i change locale like this locale.set(newLocale), the translations change only in some places. If i have translations in some store, they do not change. I have layout store which has setHeader method and if i call it like this setHeader({ title: $t('settings.title') }); and then change locale, this tranlations does not change (until page is refreshed).
Same problem is happening when I create array of objects and key in this object is translation, when i render components from this object, the translations will not update after locale change.
Object example:
const navItems= [
    {
      label: $t('home.title'),
      target: '/home',
    },
    {
      label: $t('about.title'),
      target: '/about',
    },
]

Usage example:
{#each navItems as item}
    <NavButton
       {...item}
    />
 {/each}

In NavButton i am using the passed prop like this: <span>{label}</span>
I think that it realtime translates only things in svelte component it html section within $t() function, but if you have translation stored somewhere else and in component you only want to render it without $t() than it works only after page refresh, not on locale change

Not tested yet, but I’d try something like:
locale.subscribe(() => {
  setHeader({ title: $t('settings.title') });
})

Yes this will work, but wouldnt it be better to implement it like in svelte-i18n? So that every translation no matter where or how it was defined, will translate when locale changes?

I am trying this same exact thing, but can't figure out how to get an array from $t

Can confirm that
locale.subscribe(()

Works.
That being said,
+1 to this feature would be great to use like
const sample =  [
    {
      label: $t('some.thing', 1),
      value: 33,
    },
    {
      label: $t('some.thing', 3),
      value: 42,
    },
]

or maybe even:
const sample =  [
    {
      label: t.get('some.thing', 1),
      value: 33,
    },
    {
      label: t.get('some.thing', 3),
      value: 42,
    },
]

And have it update automatically. I can see how this would be quite complicated to implement but it would be useful when feeding dynamic data that has params and needs to be translated to a dropdown for example.

I think you should just use:
$: navItems = [
    {
      label: $t('home.title'),
      target: '/home',
    },
    {
      label: $t('about.title'),
      target: '/about',
    },
];

in your Svelte file..


firebase deploy --only functions An unexpected error has occurred.

What I'm trying to achieve
Firebase CLI function deployment from Mac
Steps to reproduce the problem

firebase deploy --only functions

like: https://github.com/mirumee/saleor/issues/1631
What I expected to happen
Same as my Linux machine, happily installs the Firebase functions (I set both up together, both with Node 8, both following the same instructions).
Screenshots
[debug] [2019-02-12T19:27:23.563Z] TypeError: "file" argument must be a non-empty string
at normalizeSpawnArguments (child_process.js:389:11)
at Object.exports.spawn (child_process.js:502:38)
at /usr/local/lib/node_modules/firebase-tools/lib/deploy/lifecycleHooks.js:21:27
at initializePromise (/usr/local/lib/node_modules/firebase-tools/node_modules/rsvp/dist/rsvp.js:567:5)
at new Promise (/usr/local/lib/node_modules/firebase-tools/node_modules/rsvp/dist/rsvp.js:1039:33)
at /usr/local/lib/node_modules/firebase-tools/lib/deploy/lifecycleHooks.js:20:12
at _chain (/usr/local/lib/node_modules/firebase-tools/lib/deploy/index.js:23:45)
at deploy (/usr/local/lib/node_modules/firebase-tools/lib/deploy/index.js:76:10)
at Command._action (/usr/local/lib/node_modules/firebase-tools/commands/deploy.js:47:12)
at /usr/local/lib/node_modules/firebase-tools/lib/command.js:176:29
[error]
[error] Error: An unexpected error has occurred.
System information
Operating system: Mac OS 10.14.3
Browser:NA, command line issue.

Please upgrade your Node version to 10.x.
http://docs.getsaleor.com/en/latest/gettingstarted/installation-macos.html#node-js


Restructure data with JS objects

Create and use JavaScript objects to organize data related to the player and data related to the enemies.

Create object methods to perform player actions.

Completed restructure of data.