NFT standard: expose minimal usable interface

Currently there are few functions that have full implementation but are dependent on env or assume some permissions and logic.
That is not the best way to implement these kind of standard contract implementations.
Instead there should be set of non assuming internal_ methods that actually do the logic and leave the permissioning and composition to the user.
For example https://github.com/near/near-sdk-rs/blob/master/near-contract-standards/src/non_fungible_token/core/core_impl.rs#L347 mint method should be internal_mint that only does actual minting and only it. Everything else like assert/require and other stuff should be happening in usage code.
Also internal_ are the methods that are not specified by standard but are the methods that everyone needs.
See FT standard implementation for example of internal_register, internal_deposit, internal_withdraw, which allow to create custom combinations easily.
Case in point from users of NFT standard: https://stackoverflow.com/questions/68800164/how-to-call-the-nft-mint-by-the-contract
There is also discussion around mint in #522, which given it should be internal method would not be useful - because it's not the method that directly gets exposed to the user.

Agreed. I would really appreciate more "building blocks" standards implementations.
For reference of the issues facing devs, consider this example of implementing an NFT that shares metadata across a number of serialized tokens.
I attempted to leverage as much of the standard as possible, but ultimately led to a lot of copy paste.
https://github.com/near-apps/nft-series/blob/main/contract/src/lib.rs

Agreed. I would really appreciate more "building blocks" standards implementations.

I look forward to this, too. As a note, currently the Dev Platform team is not dedicating this quarter to hands-on work on the standards, which is different than how it was earlier this year. It will be up to folks in the community and not on this team to write NEPs. I've updated the NEP README to go over the best way to contribute to the standards. I believe the FT and NFT standards that are published provide guidance in how to contribute to these building blocks. Please let me know if we can meet up about this to provide additional context.

Thanks, I think we should do a better job of documenting the functions that aren't in the standard (like minting) and live in the lib.rs file that uses the near-contract-standards crate. I should note that neither ERC-20 nor ERC-721 have mint in the standards, as this is something that contract developers will likely want to customize. (I believe this is also what you're stating.) I know @Daryl | NEAR has also wondered about this, and been concerned about the nft_ prefix being used for any old function.
I'm having a hard time wrapping my head around whether these technically-optional methods (mint and burn) belong in a standard. Indexers would sure appreciate it, but unlike the other methods in the standards, we cannot dictate the required usage as specifically.
For instance, "burn" might mean "burn and remove from total supply" in one case, or "burn as in move to the owner account" in another. Or a total supply is forever set at initialization and there is no mint function.

Thanks, I think we should do a better job of documenting the functions that aren't in the standard (like minting) and live in the lib.rs

That's not really the problem here. The problem is that this is a standard library not an example implementation.
Standard library should provide non assuming APIs that consumer code can combine in various ways.
There should be basic functions like internal_withdraw, internal_deposit, internal_mint that provide functionality that can be used to construct all the standards methods in one or two lines. So consumer code can customize that in various ways. Again, see FT implementation as an example and w-near contract as example of customization.

Wrote a governance post suggesting a solution. Please feel free to weigh in.

#572 moves towards this. I'll do a scan tomorrow to see if any other related changes can be done to make the nft standard more generally usable

@austinabell looks like #572 is merged. Can we close this issue?


Option to not save sent message in Sent folder

Please, offer an option not to save sent messages in the Sent folder.
Some people sent a lot of message and use BCC to themselves to save import sent message and keep the Send folder to the point and not clutter up with everything that was sent.
This was reported for version v5.006. See also https://code.google.com/p/k9mail/issues/detail?id=3890 and https://code.google.com/p/k9mail/issues/detail?id=4038 and https://code.google.com/p/k9mail/issues/detail?id=6144

This might be a setting that is account specific, see https://github.com/k9mail/k-9/pull/439

What exactly are you asking for? There already is a way to prevent K-9 Mail from uploading sent messages.
To quote my comment in the linked issue:

Set "Account settings" > "Folders" > "Sent folder" to "-NONE-" to disable saving sent messages.

Sorry for the inconvenience. It is indeed supported since the three issues from Google Code that I referenced. Could not find it in the current version but with your help I did. Thanks.


Clean Up Tests and CI

As of #29, there are some "unit" tests that should be marked as integration tests and CI doesn't currently run the e2e tests at all (since the MPC contract is not returning signatures). We should rework this -- maybe only run e2e tests on merge to main.

There are very few tests of this sort anymore (all unit tests are now only sometimes "reading" the mpc contract), but generally this is not expected to become an urgent concern any time soon. Closing now as "good enough"


large values in the competitor monitor aren’t formatted

to get standardised classification: I would consider such things as enhancements not bugs. What do you think?

could go either way, i consider it a bug since it doesn’t follow the rest of the UI / extension standard.


Upgrade Excalidraw to 14.1

Updated outdated NPM packages within the extension/ folder, and upgraded Excalidraw from 12.0 to 14.1.
Running the extension in both debug and production environments didn't reveal any significant issues, and compiling & installing the package went smoothly.

Thanks for your contribution! I won't merge this as I ended up updating it myself on main in the end.


Do no create Host Status stats for Origin servers.

Creating a host status stat for each origin server can blowup the stat system.

[approve ci fedora]

[approve ci fedora]

I'm guessing the build images are for 9 (which don't require tcl)

I'm guessing the build images are for 9 (which don't require tcl)

does that mean all 8.x builds are going to fail? @zwoop ?


[Serialization] Teach serialization to get a generic signature from opaque types

Description: Fixes incorrect serialization of opaque return types for @inlinable code, and teaches serialization how to deserialize a generic signature from an opaque result type.
Scope of the issue: This prevents returning opaque result types from some @inlinable declarations when in incremental mode
Risk: Low, the patch ensures we start a cross-reference correctly regardless if the return type of a function is an opaque return type
Reviewed-by: @jckarter
Radar: rdar://53958358

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - dd0db3b8976b1d334400ab13b6e219f4e7eadeee

Build failed
Swift Test OS X Platform
Git Sha - dd0db3b8976b1d334400ab13b6e219f4e7eadeee

@swift-ci please test

Build failed
Swift Test Linux Platform
Git Sha - dd0db3b8976b1d334400ab13b6e219f4e7eadeee

Build failed
Swift Test OS X Platform
Git Sha - dd0db3b8976b1d334400ab13b6e219f4e7eadeee

@swift-ci please nominate

@tkremenek Looks like we never got this in. Can you approve this PR as well? (We pulled PR #27141 into swift-5.1-branch-08-28-2019)

@tkremenek Ping


Feature: Front-End Design for Prescription Page (Admin & User)

Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
We need a Front-End Design for the Prescription Page.

Admin View

Can assign prescriptions and approve refills for patients
Can see all prescriptions assigned to patients

User View

Can see their own prescriptions
Can request refills for their own prescriptions
Can see pickup location/cost...

Describe alternatives you've considered
None.
Additional context
Upload figma image of design when it is done.

looks good


[Bug] Issue with tvmc run with repeat=0

Thanks for participating in the TVM community! We use https://discuss.tvm.ai for any general usage questions and discussions. The issue tracker is used for actionable items such as feature proposals discussion, roadmaps, and bug tracking.  You are always welcomed to post on the forum first :smile_cat:
Issues that are inactive for a period of time may get closed. We adopt this policy so that we won't lose track of actionable issues that may fall at the bottom of the pile. Feel free to reopen a new one if you feel there is an additional problem that needs attention when an old one gets closed.
Expected behavior
When we run tvmc run with repeats=0, I would expect that the inference runs for 1 time (no repeat). Also unrelated, I would expect that this is the default value,  but that is debatable.
Actual behavior
We receive an error
Environment
OS: Linux 4.15.0-188-generic #199-Ubuntu SMP Wed Jun 15 20:42:56 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
tvm 0.9
Steps to reproduce
Generate a model.tar from any model and run
tvmc run --inputs infer.npz --outputs predict.npz model.tar --print-time --repeat=0
/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py:3373: RuntimeWarning: Mean of empty slice.
out=out, **kwargs)
/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py:234: RuntimeWarning: Degrees of freedom <= 0 for slice
keepdims=keepdims)
/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py:195: RuntimeWarning: invalid value encountered in true_divide
arrmean, rcount, out=arrmean, casting='unsafe', subok=False)
/usr/local/lib/python3.7/dist-packages/numpy/core/_methods.py:226: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/driver/tvmc/main.py", line 24, in
tvmc.main.main()
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/driver/tvmc/main.py", line 115, in main
sys.exit(_main(sys.argv[1:]))
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/driver/tvmc/main.py", line 103, in _main
return args.func(args)
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/driver/tvmc/runner.py", line 280, in drive_run
options=options,
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/driver/tvmc/runner.py", line 684, in run_module
times = module.benchmark(dev, number=number, repeat=repeat, end_to_end=end_to_end)
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/contrib/graph_executor.py", line 450, in benchmark
repeats_to_cooldown=repeats_to_cooldown,
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/runtime/module.py", line 354, in evaluator
return BenchmarkResult(results)
File "/nfs/bnusers1/kbindumadhav/kbindumadhav/tvm3/tvm/python/tvm/runtime/module.py", line 73, in init
self.min = np.min(self.results)
File "<array_function internals>", line 6, in amin
File "/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py", line 2831, in amin
keepdims=keepdims, initial=initial, where=where)
File "/usr/local/lib/python3.7/dist-packages/numpy/core/fromnumeric.py", line 87, in _wrapreduction
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
ValueError: zero-size array to reduction operation minimum which has no identity

Hi @f2013519, I submitted #12713 which makes sure the module is only run once when the user is not worried about benchmarking so wanted to share some of my findings here. I also ran into a similar issue when benchmarking was being used (--print-time=True) and, as you correctly mention, the additional run is due to a warm-up use to prime caches and lazy optimizations. I found this a bit unintuitive at first so tried to document some of these quirks directly in the PR (#12713).
That said, it seems like a legitimate requirement to me to be able to benchmark just a single execution of the model, which currently is not possible. The additional run happens here: https://github.com/apache/tvm/blob/main/src/runtime/profiling.cc#L880 - we should make this additional run optional and expose the option to TVMC perhaps with a flag like --disable-benchmark-warmup.
cc @leandron @tkonolige @areusch would be interested to hear your thoughts

I'm fine with adding a flag to disable the warmup iteration, but warmup iterations should be on by default. On CUDA, the first run on the model is very slow due to lazy compilation/loading.

yeah could we maybe have like a num_warmups=1 default parameter?


Dandelion logging

Excessive dandelion logging. To reduce.

I believe this one is already done, right?

Yes this is done and will be pushed in 13.6.8 release


Update problematic sites for viridian data

We currently have sites that are being masked for all samples (going by the max_masked_samples_per_site values). Investigate, and update to include any sites that are always masked under the protocol.
There will likely be some sites that also need to be added because of #228

Based on the Viridian ARG inferred up to 2021-06-30 (same date as the Wide ARG from the preprint) we have the following data:

That is, there are 15 sites with more than 500 mutations at this time point, and these account for 40% of the total reversion mutations and 25% of the immediate reversions. I'm going to try running these ARG inference now with these sites excluded.

I'm digging a bit deeper into Bloom et al.'s analysis of mutational spectra. They excluded some sites that experience high mutation frequencies, some of which are not in our current list (commit: 28d4231de54ebeebd5520587166e71f03268f12f). Also, some of them are clade-specific.
They explained that these are probably enriched for sequencing or bioinformatics errors (e.g. imputed to the reference). None of these sites seem to be in the labelled ones above, so they were most likely cleaned up in the Viridian dataset.
Nothing to do with them now, but I'm just tagging the list here in case one of the sites crop up in our newer ARGs (see sites_to_exclude).
https://github.com/jbloomlab/SARS2-mut-spectrum/blob/main/config.yaml

Just to follow up on this. These sites are in the Bloom list but in the our current problematic site list or the list of additional sites above.
1149
5629
6851
7328
13947
28095
29362

Do they show up in our QC plots, as either highly mutated or masked?

From Slack, in case it gets lost.
Just noticed that four of the additional sites (the "mutation outliers") are where lineage defining mutations for Delta (B.1.617.2) in the Freya occur. Three of them are found in a bunch of other variants' lineage defining mutations. But one of them (27638) seems to occur mostly in Delta, Delta subvariants, and closely related variants (B.1.617, B.1.617.1, B.1.617.3).

Keen to reexamine all these sites again, but alongside the number of deleted sites per sample.

Including these two regions to the list of additional problematic sites.
Region: NTD domain
Coords: [21602-22472)
Multiple highly recurrent deleted regions in NTD domain in Spike
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7971772/
Region: ORF8
Coords: [27939-28257)
Interesting things happen, e.g. truncation mutations, out-of-frame deletions, and even loss of the entire gene. Also, an analysis of recurrently deleted sites in clipends-v2-mm_4-noexact-f500-clustloc-mrm_2-rw_10-mgs_10-2021-04-10.ts.tsz shows that site 28254 has 143 1-bp private deletion events.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7374062/
https://virological.org/t/repeated-loss-of-orf8-expression-in-circulating-sars-cov-2-lineages/931/1

For ORF8 the genetic map we have says it covers coords   [27894, 28260), but we have ORF8: [27939-28257) here.
Which should we use?

Let's go with [27894, 28260) to be consistent, since we are sticking with the current coordinates.
[27939-28257) is from Swiss-Prot, and it differs by a stop codon.


Add a list of currencies that are supported?

It would be nice if you show all the supported currencies in README.md. This way I don't have to send a request every time I want to get all the currencies that are supported.

Though infrequently, the ECB changes the currencies from time to time. The best is to look at the latest response set to see what's supported.

Okay


Should we document at what rate deprecated APIs are removed?

          Should we document at what rate deprecated APIs will be removed? 4 major releases does seem sufficient to me, but perhaps others downstream have a different view. 🤷

Originally posted by @etseidl in https://github.com/apache/arrow-rs/issues/6838#issuecomment-2521793599

Proposal here: https://github.com/apache/arrow-rs/pull/6852

I think we should!


Failed to connect to GCS within 60 seconds

my env:
vllm: 0.2.1-post
ray: 2.7.1
and everything is ok when I run with tensor_parallel_size=1
but something goes wrong when I set  tensor_parallel_size=2

gcs_rpc_client.h:552: Failed to connect to GCS within 60 seconds. GCS may have been killed. It's either GCS is terminated by ray stop or is killed unexpectedly.

And my hardware is a single machine with two A10 cards.
Can someone help me plz?

I meet the same issue before，finally i found it because of load model in child thread，maybe you can avoid this when load model in main thread

not the same way to run，maybe you can execute ps  to check whether gcs_server process runing

If for some reason you're loading your model from a thread other than the main one,
initialize ray beforehand in the main thread:
        ray.init(num_gpus=model_config.tensor_parallel_size)
worked for me


[BH] MVP dialogue

Also maybe improves the AI movement
Also fixes a small bug with audio

I can't push to bounty hunt branch myself :(

I can't push to bounty hunt branch myself :(

@GeckoEidechse this sounds like a perms thing, mods-reviewers should be able to push to non-main branches, no?

No, they aren't supposed to be able to, @F1F7Y. We could add an exception for the BH branch though.


Find in files (workbench.view.search) command opens terminal if Search: Location is set to panel

Issue Type: Bug
Happened in master during holidays, but I thought that it was my local problem.

Add "search.location": "panel" to settings.json
Use shortcut Ctrl+Shift+F or Edit > Find in Files from menu
Terminal panel is opened instead. Moreover Search panel title is not visible at all.

I don't see any errors in DevTools console
Workaround: use "search.location": "sidebar" instead
VS Code version: Code - Insiders 1.42.0-insider (9349e9a2fdbd1d92824ce99af4a50b6785351b11, 2020-01-06T10:40:10.218Z)
OS version: Windows_NT x64 10.0.18362

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz (12 x 3192)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: enabledrasterization: enabledskia_renderer: disabled_offsurface_control: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.72GB (19.46GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions: none

I can't repro it, but basically the search view doesn't show up anywhere for you?
If you right click in the panel title area, is the search view unchecked?

Can't see it in panel context menu

and not in Activity Bar context menu as well.

Bisected and looks like it's 57c30ddb82979a58a40441c02568a865da63285e
# first bad commit: [57c30ddb82979a58a40441c02568a865da63285e] Port view container logic from activitybarpart to panelpart (#87444)

/cc @sbatten

Reproduced on Ubuntu and MacOS as well. See #88165

Thanks! I actually can repro after all. I thought I had updated but wasn't on the new Insiders...

I have a workaround which I think is ok for now but, please review @sandy081 and @sbatten when you're back.
This is from both https://github.com/Microsoft/vscode/commit/2def84c1e2e84b2d85f5330e5864514500ecdabf and  https://github.com/microsoft/vscode/commit/57c30ddb82979a58a40441c02568a865da63285e
We register the sidebar view container with hideIfEmpty set: https://github.com/Microsoft/vscode/commit/2def84c1e2e84b2d85f5330e5864514500ecdabf#diff-6c358dac4832779e39f087c84137742eR336
But then we find that descriptor when looking for the panel's viewContainer: https://github.com/microsoft/vscode/commit/57c30ddb82979a58a40441c02568a865da63285e#diff-cd026e7ca90d9b77a81766f73c99e98cR186
Because they have the same IDs?
https://github.com/microsoft/vscode/blob/629a08ed6231d7af269ae61a5cc610490d1f7f5d/src/vs/workbench/services/search/common/search.ts#L20-L22
Maybe these things should have different IDs?

Actually I don't have a workaround - if I set hideIfEmpty to false, then the activitybar icon won't go away when the view is in the panel.
We could get rid of this but I don't know if it's safe: https://github.com/microsoft/vscode/blob/629a08ed6231d7af269ae61a5cc610490d1f7f5d/src/vs/workbench/browser/parts/panel/panelPart.ts#L297-L302
@sandy081 please take a look and see if you have any ideas.

Our changes to adopt panels to use views infrastructure has broken this. The right fix here is to use latest infra to move search views which is very easy now.
Working on fix.

Renaming the id has a side affect that the search view's state (position/visibility) is reset

Does that mean it's reset across upgrading vscode, so it will lose its configured position? I think that's not ideal

Yeah it does. The state that gets reset is only visibility and order. Re visibility, I do not think user hide search panel. So, I do not think its major impact.

Configured position in question is position in panel (reordered via drag'n'drop)?
Search correctly appeared as panel, but can't provide any info about changes in order, because search was first

Configured position in question is position in panel (reordered via drag'n'drop)?

Yes.

I still think people use these features and will be affected by it. Is the problem sort of that there is no longer a concept of the view descriptor being "for" the panel vs the viewlet? Or is there still any way we can keep the persisted data for the panel while it also has the same ID as the viewlet's descriptor?

We are moving everything into view containers and views. View containers are the containers that holds views (as the name says). In side bar/activity bar and panels section view containers viewlets and panels respectively. It is required that these containers have unique ids otherwise you will have issues like this.
To be clear, the only state that gets reset is the position of the search panel in the panel bar. How about adding this to the release notes, If you consider this as a major impact?

I don't think that having it in the release notes makes it any less annoying. Ideally users wouldn't have to notice this change under the hood, like maybe we could port the persisted data over from the old ID to the new one, but I have no idea how difficult that is.


MiniDrugBank with 3D coordinates

Addressing issue #223
I added 3D coordinates to the MiniDrugBank molecule set.

@davidlmobley - could you merge this?
I changed the method to get SMILES and both problems in issue #223 are fixed now. SMIRKY is running fine on MiniDrugBank

Thanks, @bannanc .


Add variant support

Specify a language variant for the UI elements (this is used for example in the Chinese Wikipedia, as the Chinese language has variants).

This doesn't appear to work, but I did find when playing around with this that setting the converttitles param to True would at least allow matching titles across variants. I have not been able to figure out how to retrieve content for a specific variant through the API though.


Doesn't see a svg from a shadowRoot

What is your Scenario?
My application displays a diagram as a svg and I need to test clicks on the elements of this diagram.  SVG of diagram wrapped in shadow DOM.
Whenever I try to click on any or expect any svg, I get the following:
An error occurred in Selector code:
      TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

What is the Current behavior?
I find svg in shadow root using Selector but when I try to click it throws the error.
What is the Expected behavior?
I can click SVG elements in the shadow DOM
What is your public website URL? (or attach your complete example)
For example we can create simple component with shadow DOM:
shadowDom-svg.zip
What is your TestCafe test code?
fixture('Shadow dom svg test').page('./svg-component.html')

test("Shadow root find svg", async testController => {
    const rectElement = await Selector("my-chart").shadowRoot().find("rect");
    await testController.click(rectElement);
});

Your complete configuration file
No response
Your complete test report
An error occurred in Selector code:

      TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

      Browser: Chrome <IP_ADDRESS> / Windows 10

         2 |
         3 |fixture('Shadow dom svg test').page('./svg-component.html')
         4 |
         5 |test("Shadow root find svg", async testController => {
         6 |    const rectElement = await Selector("my-chart").shadowRoot().find("rect");
       > 7 |    await testController.click(rectElement);
         8 |});
         9 |

Screenshots

Steps to Reproduce

Download the zip attached.
run npm install
run npm run start
Notice the problem.

TestCafe version
1.20.1
Node.js version
16.6.0
Command-line arguments
npm run start
Browser name(s) and version(s)
Edge latest, Chrome latest
Platform(s) and version(s)
Windows 10
Other
No response

Hi @AuthorSkN,
Thank you for the example. I managed to reproduce the issue. We will update this thread once we have any news.


bug: Engine support

Engines, and likely nested addon, the following throws since this.app is undefined: https://github.com/bgentry/ember-apollo-client/blob/master/index.js#L20
What I think should happen is it should walk up the parent hierarchy until it finds a parent that implements the apollo config that it's looking for.  In the case of an engine, it would likely mean the engine's index.js would have the config hanging off it.  Otherwise, it would continue up to the host app which might implement the config.
A quick fix would be to read the config off the host app (which is currently implied by today's implementation by replacing this.app with something like this._findHost().  That's currently what I'm doing on my fork: https://github.com/jasonmit/ember-apollo-client/blob/master/index.js#L21-L22
Thoughts?  I can implement either fix but would like to gather consensus first.

_findHost is a private function, so we shouldn't rely on it. How other addons handle this issue?
About ember-auto-import: related to #145.

It is.  add-ons, like mirage, do the while loop that you see with _findHost().

If feasible, I'd lean toward using ember-auto-import over adding more logic to the Webpack resolution. Things get hairy when you start to consider what happens when both the host and an engine depend on ember-apollo-client, or two engines do — it would be great to lean on the solutions for those scenarios already implemented in auto-import.

Things get hairy when you start to consider what happens when both the host and an engine depend on ember-apollo-client, or two engines do — it would be great to lean on the solutions for those scenarios already implemented in auto-import.

Totally agree @dfreeman.  Currently ember-auto-import doesn't have a solve for this.   So that will need to happen before ember-apollo-client works properly with engines.

Absolutely on board with switching to ember-auto-import, I just haven't had the time to do it myself yet.

Resolved in 2.0.0-beta.1, thanks!


Mark Denomination as non_exhaustive

It is possible that we will add new variants to Denomination in the future so making it non_exhaustive is better for forward compatibility.

Looks good. I'll sneak this in before the release.

No changelog mention, none required IMO.


Proposal: Argument support for can-click

Proposal
can-click handlers should support inline argument passing, right in the template.
Justification and Notes
This would obviate the need to entire categories of javascript-side viewmodel methods and allow us to add a ton of simple functionality right in the template. A common pattern in component-heavy application is writing relatively trivial methods that end up being thin wrappers over, say, .attr().
I've also seen a common case where we have a loop, and then we do something like
, and then end up writing some JS that has to manually yank tab-name out of the element, and just do that dance a lot. We can do better just by allowing argument-passing.
Example
Assuming #1360 is in place, the following would be a simple tabs component (collecting tabs array is left as an exercise to the reader, and might be potentially served by #500):

  {{#each tabs}}

      {{name}}

  {{/each}}

{{#each tabs}}
  {{#equal self.tabIndex @index}}
    {{{content}}} {{! or <content select="nth(@index)"></content> }}
  {{/each}}
{{/each}}

This is a duplicate of #1219.  Can't agree more. But closing as that issue was first and includes ideas on how to pass the element and events objects.


Support node 21 / 22

Currently it only supports >=18.17 <21 which produces warnings running npm install / npm ci
https://github.com/homer0/prettier-plugin-jsdoc/blob/e29e3be8166c8d91f907077ee4b73c6e53a22e86/package.json#L38-L41
npm warn EBADENGINE Unsupported engine {
npm warn EBADENGINE   package: '<EMAIL_ADDRESS>npm warn EBADENGINE   required: { node: '>=18.17 <21' },
npm warn EBADENGINE   current: { node: 'v22.9.0', npm: '10.[8](https://github.com/campersau/ungit/actions/runs/11157444629/job/31011736263#step:15:9).3' }
npm warn EBADENGINE }

@campersau sorry, I just saw this and totally missed the promotion of node 22; hopefully we can get #17 merged soon.


investigate broken mqtt-streaming tests

see https://github.com/apache/incubator-pekko-connectors/pull/41/checks

less flaky now


DNN-8201: fixing racing condition that creates an error in folder/fil…

…e permission checks during installation/upgrading.

Changes looks good and merged.


New pypi release needed -- is this still maintained?

This repo badly needs a new release to pypl to fix the requests dependencies issue. Is anyone still maintaining it or should I find another approach?

Same question here 🙂 I can help with updates and fixes, but it looks like the package is not maintained anymore.

Seconding this, if shippo doesn't plan on maintaining their official clients then they need to at least make that clear considering it's a paid service.

Any update on this?

I needed features added, so I created a fork that I will be maintaining: https://github.com/9cb14c1ec0/shippo-python-client.  It is the shippo3 project on pypi

This client is not actively maintained and the project will soon be archived.
A new codebase has been created https://github.com/goshippo/shippo-python-sdk which is generated from and will be kept up to date with the public OpenAPI Specification https://docs.goshippo.com/spec/shippoapi/public-api.yaml.
The new SDK has been published to PyPI at version 3.0.0 and updates will be published as the spec evolves.


Add a "pressed" style to PopupMenu

This makes PopupMenus (and derivatives such as OptionButtons) feel more responsive to user input, as they can display a different stylebox and font color when an option is pressed.
Preview
Note: This pressed style only applies to mouse input, not keyboard input (as keyboard inputs are accepted as soon as you press the key, not when you release it). In the videos, I use keyboard input near the end to show the difference.
Editor - Dark theme
https://user-images.githubusercontent.com/180032/232256581-5e224e96-ba26-4676-bb4e-3236e1e19cb2.mp4
Editor - Light theme
https://user-images.githubusercontent.com/180032/232256582-2b4c18ab-7e0b-432d-ab93-26c9c24ea866.mp4
Default project theme
https://user-images.githubusercontent.com/180032/232256580-a7cee8e7-4b75-451a-afc6-1e3eb7f64bbf.mp4

July 2020 patch
From d2cf3e17a83ca8d75965c54582f14acaa1ace578 Mon Sep 17 00:00:00 2001
From: Hugo Locurcio<EMAIL_ADDRESS>Date: Wed, 29 May 2019 05:14:37 +0200
Subject: [PATCH] Add a "pressed" style to PopupMenu

This makes PopupMenus (and derivatives such as OptionButtons) feel
more responsive to user input, as they can display a different
stylebox and font color when an option is pressed.
---
 editor/editor_themes.cpp                      |  9 ++++--
 scene/gui/popup_menu.cpp                      | 29 +++++++++++++++----
 scene/gui/popup_menu.h                        |  1 +
 .../resources/default_theme/default_theme.cpp |  7 +++++
 4 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp
index a93763810b5e..f44de9b1b802 100644
--- a/editor/editor_themes.cpp
+++ b/editor/editor_themes.cpp
@@ -556,7 +556,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {

 	Ref<StyleBoxFlat> style_menu_hover_bg = style_widget->duplicate();
 	style_menu_hover_bg->set_border_width_all(0);
-	style_menu_hover_bg->set_bg_color(dark_color_1);
+	style_menu_hover_bg->set_bg_color(dark_color_1.lightened(dark_theme ? 0.01 : 0.0));
+
+	Ref<StyleBoxFlat> style_menu_pressed_bg = style_widget->duplicate();
+	style_menu_pressed_bg->set_border_width_all(0);
+	style_menu_pressed_bg->set_bg_color(dark_color_2.darkened(0.06));

 	theme->set_stylebox("normal", "MenuButton", style_menu);
 	theme->set_stylebox("hover", "MenuButton", style_menu);
@@ -566,7 +570,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {

 	theme->set_stylebox("normal", "PopupMenu", style_menu);
 	theme->set_stylebox("hover", "PopupMenu", style_menu_hover_bg);
-	theme->set_stylebox("pressed", "PopupMenu", style_menu);
+	theme->set_stylebox("pressed", "PopupMenu", style_menu_pressed_bg);
 	theme->set_stylebox("focus", "PopupMenu", style_menu);
 	theme->set_stylebox("disabled", "PopupMenu", style_menu);

@@ -662,6 +666,7 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) {

 	theme->set_color("font_color", "PopupMenu", font_color);
 	theme->set_color("font_color_hover", "PopupMenu", font_color_hl);
+	theme->set_color("font_color_pressed", "PopupMenu", font_color_hl);
 	theme->set_color("font_color_accel", "PopupMenu", font_color_disabled);
 	theme->set_color("font_color_disabled", "PopupMenu", font_color_disabled);
 	theme->set_icon("checked", "PopupMenu", theme->get_icon("GuiChecked", "EditorIcons"));
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index 6e19b820e0c8..8145702fbc9f 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -285,11 +285,20 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
 	Ref<InputEventMouseButton> b = p_event;

 	if (b.is_valid()) {
+		const int button_idx = b->get_button_index();
+
 		if (b->is_pressed()) {
+			if (button_idx == BUTTON_LEFT) {
+				is_mouse_down = true;
+				// Update to display the "pressed" stylebox
+				control->update();
+			}
+
 			return;
+		} else {
+			is_mouse_down = false;
 		}

-		int button_idx = b->get_button_index();
 		switch (button_idx) {
 			case BUTTON_WHEEL_DOWN: {
 				_scroll(-b->get_factor(), b->get_position());
@@ -329,8 +338,6 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
 				}
 			}
 		}
-
-		//control->update();
 	}

 	Ref<InputEventMouseMotion> m = p_event;
@@ -421,6 +428,7 @@ void PopupMenu::_draw() {

 	Ref<StyleBox> style = get_theme_stylebox("panel");
 	Ref<StyleBox> hover = get_theme_stylebox("hover");
+	Ref<StyleBox> pressed = get_theme_stylebox("pressed");
 	Ref<Font> font = get_theme_font("font");
 	// In Item::checkable_type enum order (less the non-checkable member)
 	Ref<Texture2D> check[] = { get_theme_icon("checked"), get_theme_icon("radio_checked") };
@@ -438,6 +446,7 @@ void PopupMenu::_draw() {
 	Color font_color_disabled = get_theme_color("font_color_disabled");
 	Color font_color_accel = get_theme_color("font_color_accel");
 	Color font_color_hover = get_theme_color("font_color_hover");
+	Color font_color_pressed = get_theme_color("font_color_pressed");
 	float font_h = font->get_height();

 	// Add the check and the wider icon to the offset of all items.
@@ -477,7 +486,8 @@ void PopupMenu::_draw() {
 		}

 		if (i == mouse_over) {
-			hover->draw(ci, Rect2(item_ofs + Point2(-hseparation, -vseparation / 2), Size2(get_size().width - style->get_minimum_size().width + hseparation * 2, h + vseparation)));
+			Ref<StyleBox> hover_pressed = is_mouse_down ? pressed : hover;
+			hover_pressed->draw(ci, Rect2(item_ofs + Point2(-hseparation, -vseparation / 2), Size2(get_size().width - style->get_minimum_size().width + hseparation * 2, h + vseparation)));
 		}

 		String text = items[i].xl_text;
@@ -524,7 +534,16 @@ void PopupMenu::_draw() {
 			}
 		} else {
 			item_ofs.x += icon_ofs + check_ofs;
-			font->draw(ci, item_ofs + Point2(0, Math::floor((h - font_h) / 2.0)), text, items[i].disabled ? font_color_disabled : (i == mouse_over ? font_color_hover : font_color));
+
+			Color item_font_color;
+			if (is_mouse_down && i == mouse_over) {
+				item_font_color = font_color_pressed;
+			} else if (i == mouse_over) {
+				item_font_color = font_color_hover;
+			} else {
+				item_font_color = font_color;
+			}
+			font->draw(ci, item_ofs + Point2(0, Math::floor((h - font_h) / 2.0)), text, items[i].disabled ? font_color_disabled : item_font_color);
 		}

 		if (items[i].accel || (items[i].shortcut.is_valid() && items[i].shortcut->is_valid())) {
diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h
index d03a14d6e4e3..ad6ae8d4e52b 100644
--- a/scene/gui/popup_menu.h
+++ b/scene/gui/popup_menu.h
@@ -82,6 +82,7 @@ class PopupMenu : public Popup {
 	Vector<Item> items;
 	int initial_button_mask;
 	bool during_grabbed_click;
+	bool is_mouse_down = false;
 	int mouse_over;
 	int submenu_over;
 	Rect2 parent_rect;
diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp
index 83d4db7bae69..6fdad3833892 100644
--- a/scene/resources/default_theme/default_theme.cpp
+++ b/scene/resources/default_theme/default_theme.cpp
@@ -509,6 +509,11 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
 		selected->set_expand_margin_size(Margin(i), 2 * scale);
 	}

+	Ref<StyleBoxTexture> pressed = make_stylebox(button_pressed_png, 6, 6, 6, 6);
+	for (int i = 0; i < 4; i++) {
+		pressed->set_expand_margin_size(Margin(i), 2 * scale);
+	}
+
 	theme->set_stylebox("panel", "PopupPanel", style_pp);

 	// PopupDialog
@@ -521,6 +526,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
 	theme->set_stylebox("panel", "PopupMenu", style_pd);
 	theme->set_stylebox("panel_disabled", "PopupMenu", make_stylebox(popup_bg_disabled_png, 4, 4, 4, 4));
 	theme->set_stylebox("hover", "PopupMenu", selected);
+	theme->set_stylebox("pressed", "PopupMenu", pressed);
 	theme->set_stylebox("separator", "PopupMenu", make_stylebox(vseparator_png, 3, 3, 3, 3));
 	theme->set_stylebox("labeled_separator_left", "PopupMenu", make_stylebox(vseparator_png, 0, 0, 0, 0));
 	theme->set_stylebox("labeled_separator_right", "PopupMenu", make_stylebox(vseparator_png, 0, 0, 0, 0));
@@ -537,6 +543,7 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const
 	theme->set_color("font_color_accel", "PopupMenu", Color(0.7, 0.7, 0.7, 0.8));
 	theme->set_color("font_color_disabled", "PopupMenu", Color(0.4, 0.4, 0.4, 0.8));
 	theme->set_color("font_color_hover", "PopupMenu", control_font_color);
+	theme->set_color("font_color_pressed", "PopupMenu", control_font_color);

 	theme->set_constant("hseparation", "PopupMenu", 4 * scale);
 	theme->set_constant("vseparation", "PopupMenu", 4 * scale);

Never seem menus do that in other pieces of software, but sure, why not.

I'm not against the feature and the implementation is fine, but I assume that this is a breaking change for existing games using PopupMenu, no? If they used custom styles for the "panel" and "hover" styleboxes, will this automatically show the default "pressed" stylebox, thus breaking their UI?

@akien-mga It will, therefore, it's a breaking change (that has only visual consequences, but still).

i've seen in some popup menus, but rarely.  if it could get added as a non breaking change, it'd be cool i guess. could add to the responsiveness and user experience. just my 2 cents

I think this should likely be optional so that it's not a breaking change. While it can be convenient, it's still a relatively uncommon feature in UIs, so I wouldn't want to force all users to duplicate their stylebox from "normal" to "pressed" when themeing their UI.

@akien-mga That makes sense, but I'm not sure how this could be handled in a backwards-compatible manner. (I'm not sure if we've already done something like this before, as we don't add new styles to Theme often.)

That makes sense, but I'm not sure how this could be handled in a backwards-compatible manner. (I'm not sure if we've already done something like this before, as we don't add new styles to Theme often.)

I would say it could be a boolean option, off by default (for compat) but enabled in the editor theme.
If it's enabled, the pressed style property shows up in the Inspector and will be used in the theme, otherwise it uses normal.

Wouldn't if(pressed.is_valid()) {// do pressed and hover} else { // do hover } work?

@mrcdk That would work too. As long as it's properly documented, that's nicer than a boolean option.

I managed to add a backwards compatibility check using pressed.is_valid(), but I'm not sure how to do the same for the pressed text color. (When the color doesn't exist in the theme, black is automatically used, which is unreadable.)

@Calinou Is this still desired? If so, it needs to be rebased on the latest master branch.

Rebased. We probably don't need to bother about adding a fallback since we can merge this in the master branch without cherry-picking it.

Marking as Draft because we should likely merge #51159 first and rebase this PR on top of that.

We can move this out of draft and resolve this PR since #51159 is merged.

We can move this out of draft and resolve this PR since #51159 is merged.

Sounds good. I'll probably need to redo this PR from scratch as PopupMenu was refactored in 4.0, so it may take some time.

Redone for 4.0, with more robust handling when you leave the mouse while pressing the mouse and going back into a PopupMenu and OptionButton (see the default project theme video).

Tested this and seems like it doesn't work?

Do you have single-window mode enabled? I've only tested this PR in the editor with single-window mode disabled, or within (test_popupmenu_pressed.zip (which has Embed Subwindows enabled).

No, it's non-embedded mode. Not sure why would it matter tho.

This probably sounded good when it was first made. For me personally, almost 5 years later, I don't personally see much of a benefit for this, unless it's an exceedingly requested feature.
Out of curiosity I've opened similar menus, "right-clicked" inside a bunch of applications and none of them have a special style for when any of their options is pressed.
Side note, the Godot Editor itself lacks a lot of "feedback" from doing simple tasks such as selecting these options. Perhaps that's the bigger issue here.

Thanks for your work. Let's close and revisit if the mood of the proposal changes.
@jordo, I remember you had some opinions about this; we talked in conversation.

Thanks for your work. Let's close and revisit if the mood of the proposal changes.
@jordo, I remember you had some opinions about this; we talked in conversation.

Perhaps yes, but honestly at this time I don't recall having a strong opinion one way or the other.


Add files via upload

m-files for lab 1 templates

Gonna merge this so you can edit them and the lab file in another PR.


example: add remix-auth-supabase oauth github demo

Add remix-auth-supabase sign in with github example

Changes done 😇 Thanks for review


markerClick boundaries are incorrect?

Current behaviour:
The area that is "clickable" using the (markerClick) output is some small area in the top left of the overlay in the demo example. A small overlay will be enveloped by the clickable area, so it might be a constant size?
Open the demo example and hover over the overlay blue boxes, the top left area turns the cursor into the "clickable pointy finger" instead of the "open hand".
It does work as expected when in "mobile" mode (F12 --> Toggle device toolbar)
Info windows do work and are not affected by this.
Expected behaviour:
The size of the child defines what is clickable.

just put (click) on your overlay element

I have noted the code: https://github.com/AckerApple/agm-overlays/blob/master/src/AgmOverlay.component.ts#L31

Thank you for the swift response. I remember trying (click) and getting similar results but that may have been a fluke. Will try again soon!

I'll be here if you need more help.
Special request: Please consider updating to a legit icon of yourself

If anyone else has this issue (mapClick still runs on click) and stumbles across this, this is how I solved it.
Using (click), pass along the event. Then call stopPropagation() on the event to event it from bubbling up the DOM.
In HTML:
(click)="clickedOverlay($event)"
In Typescript:
clickedOverlay($event){     $event.stopPropagation(); }
Still curious if we can either hide the cursor changing to the pointy hand in the top-left corner to make it consistent with the rest of the overlay, or to make it show for the entirety of the clickable part.

@EvoSteven I managed to make the cursor a pointer just by adding an inline style: cursor: pointer;  It will only add when hovering over it. That said, I am still having issues with the clickable area. Did you solve that?

Thank you, that is very helpful and something I didn't know!
As for my "solution", I currently employ both (markerClick) on the overlay and a regular (click) on the image residing in the marker. The issue being that there is still a 24x24 in the top-left corner of the overlay. I don't know how to fix this. Ideally, it shouldn't be there at all, or not be clickable (and thus blocking other click events). @lehne


Code cleanup for upload hooks

The original goal for this was to consolidate upload hooks, but that was already taken care of in PR #344. So this is a branch off of that PR with some (hopefully) improved naming. I also made a separate hook for useNumUploadedObservations since we really don't need to be passing that around as props, and since the return value can be a number instead of the whole array of unuploaded observations.

I think this is ready to go with the one requested change / unresolved convo. Let me know if there's anything else that should be fixed before we merge.


Set the desired upgrade version dynamically

This commit enables to get the desired version dynamically during
the upgrade run and compares it with the initial version before
the cluster upgrade has been triggered. This way, we don't need to
pass the version option.

Results for SNAFU CI Test

Test
Result
Runtime

snafu/upgrade_openshift_wrapper
PASS
00:00:00

/rerun all

Results for SNAFU CI Test

Test
Result
Runtime

snafu/upgrade_openshift_wrapper
PASS
00:00:00


[Backport] Use compiler API data for incremental compilation after failure

Backport of #23226
Fixes #23922

@bot-gradle test this

@bot-gradle clean test this

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test QFL

@bot-gradle test QFL

I've triggered the following builds for you:

QuickFeedbackLinux build

@bot-gradle test this

I've triggered the following builds for you:

PullRequestFeedback build

@bot-gradle test and merge

WARN: The milestone of this PR is 7.x backport, but the base branch version is 7.6.2

I've triggered a build for you.


Example works fine but no output to terminal when I run "python3 hx711.py"

Marcel,
Much appreciate you sharing the code. I have a my HX711 hooked-up to Rpi3. I am using a Dietpi image.
I am not a python programmer, but understand the basics.
When I run the "sudo python3 example.py" all works as planned. Just needed to mod my dout & sck pins.
Alas when I run "sudo python3 hx711.py" from the Terminal (ssh into headless setup) I get no output.
I checked the code and do see a number of print statements but no output.
How to I setup my 'dout_pin' and 'pd_sck_pin' In the hx711.py script.  I using pin 9 and 11.
Do I need to take the information that I gathered after running the example.py script and insert that into the hxx711.py script.
Thanks in advance for sharing your work. Much appreciated.

Hi, I am glad that it is working. Unfortunately, you do not have good understanding of Object-oriented programming concepts. You cannot directly run hx711.py. It is a class which represents real object in the world and contains methods you can call on it. I would advice you to go through this tutorial: https://www.tutorialspoint.com/python/python_classes_objects.htm
I remember it helpe me a lot at the beginning.
I wish you good luck.


sample_weight for BKMeans?

hey,
is there a chance to get parameter "sample_weight" working the BKMeans?
I couldnt make it with
        kmeans = BKMeans(n_clusters=nr_clusters).fit_predict(X=X.reshape(-1, 1), sample_weight=weight)
TypeError: fit() got an unexpected keyword argument 'sample_weight'
thanks and cheers
björn

found a solution, but may it doesnt work like it should.
        BKMeans= BKMeans(n_clusters=nr_clusters).fit(X=X.reshape(-1, 1))
        BKMeans= BKMeans.predict(X=X.reshape(-1, 1), sample_weight=weight)

What do you think Bernd?

Thx for your question. I am pretty sure that sample_weight would have to be used already in the fit() function and that one would have to forward it to the underlying KMeans.fit(). Using it only in predict() is "too late" since the cluster centers have already been determined at this point without the information in sample_weight and are thus not locally optimal wrt. Xand sample_weight.
I may not have the time to do this soon, but I would consider accepting a pull request if you like to try it yourself (and show off your skills doing it :-) )

Done :)
https://github.com/gittar/bkmeans/pull/3


Multiple postServe actions

Hello,
How can I request multiple webhooks per mapping ?
--
Thanks,
Andrei

I'm also interested to know.
Can we define more than one single callback / webhook ?
As the JSON type of "postServeActions" is an object ({...}) and not an array ([...]), I'm afraid not :-(
{
  "request" : {
  ...
  },
  "response" : {
   ...
  },
  "postServeActions" : {
  }
}

But on the other hand, its name is "postServeActions"

Huum, there seems to be a way to have multiple post-serve actions...but only one per extension:

I'm not sure why I implemented it that way. I'll have a look at whether it's feasible to change this to accept a list.

I'll have a look at whether it's feasible to change this to accept a list.

Oh yes, that would be very handy !
I'm also very interested into #8  so that we can use for requests exactly the same mechanism (eg bodyFileName, transformerParameters) as for responses, eg
"postServeActions" : {
	    "webhook" : {
	      "method" : "POST",
	      "url" : "http://...",
	      "bodyFileName" : "templates/dynamic-response.xml",
	        "transformerParameters" : {
	            "my-template-param" : "foo"
	        }
	}
}

I'd really like to work on #8 but it's not all that trivial. I've got a big backlog of stuff to do with WireMock core, so I'm going to struggle to get to it in the near future unfortunately.

I'd really like to work on #8 but it's not all that trivial. I've got a big backlog of stuff to do with WireMock core, so I'm going to struggle to get to it in the near future unfortunately.

How's the work on #8 going? I would like to implement that feature

I'm not sure why I implemented it that way. I'll have a look at whether it's feasible to change this to accept a list.

Also considering backwards compatibility, how about defining a new extension with name "webhooks" (currently it's singular in the getName() and allow that to have aa list of WebhookDefinition. This way there are no changes needed in core with how extensions are loaded.
I appreciate your backlog so I'll propose this change in a pr, but lemme know if I'm totally off!


Autocorrect skipped for FactoryBot/AttributeDefinedStatically in some cases

When an attribute is passed in the do/end block and used to define the value, autocorrection of the FactoryBot/AttributeDefinedStatically cop does not work.
Given this factory,
factory :user do |f|
  f.first_name 'John' # not being autocorrected
  last_name 'Doe'     # autocorrected properly
end

it doesn't take into consideration the first_name attribute because of the f. before:
# After running autocorrection

factory :user do |f|
  f.first_name 'John'
  last_name { 'Doe' }
end

Useful informations:

Rubocop: 0.59.1 (using Parser <IP_ADDRESS>, running on ruby 2.3.3 x86_64-darwin17)
Rubocop RSpec: 1.29.1
FactoryBot: 4.11.1

In the case
factory :user do |f|
  f.first_name 'John' # not being autocorrected
  last_name 'Doe'     # autocorrected properly
end

which method is called on the User instance? #first_name or #first_name=?

The method call on the User instance is #first_name=.


Update on Azure Cosmos DB Provider Limitations

Hi Team,
We are eager to integrate our application with Cosmos EF core provider but I am a little worried about the limitations of it.
My application is using CosmosClient and we are planning to integrate EF core.
There are some basic requirements mentioned below.

CRUD operations
LINQ queries with few methods like Where, FirstOrDefault, OrderBy, etc.
Data consistency

How would you recommend using the provider for production applications?
Thanks
Balu

@balukantu What do you expect to gain from using EF instead of CosmosClient?

Hi,
Please find the below mentioned features/ functionality between CosmosClient and FCCore.
CosmosClient
- User has to pass partition key for CRUD operations
- User can pass a query string to filter records, this query is executed across partitions
- It provides different isolation levels
EF Core
- How can we partition the key for CRUD operations?
- Do we have any isolation levels?
- How the filtering will be executed? across partitions or a single partition

How can we pass partition the key for CRUD operations?

It's derived from the entities, see docs

Do we have any isolation levels?

Not yet, https://github.com/dotnet/efcore/issues/17309

How the filtering will be executed? across partitions or a single partition

You'd perform the filtering in the LINQ query. To specify a partition key explicitly see https://github.com/dotnet/efcore/issues/17320

Thanks @AndriySvyryd
I have gone through the documentation and identified the point Entity types with partition keys don't work correctly in some scenarios.
So Can't we work efficiently with partition keys in EFCore? or As it is mentioned, can you list out the scenarios where it will not work?

You'd perform the filtering in the LINQ query. To specify a partition key explicitly see dotnet/efcore#17320

I installed 3.0 and 3.1.2 tried executing WithPartitionKey but looks like there is no method which accepts partition key.
Can you please let us know in which version it is available?

@balukantu dotnet/efcore#17320 is still open, meaning it hasn't been implemented. It's in the Backlog milestone meaning that we don't plan working on it any time soon.
Usually you'd only need it when using a Resource Key for a particular partition key instead of a Master Key. If that's not the case you should be able to add a filter to the query, e.g. .Where(e => e.PartitionKey == "10")

Hi
I'm using the EF Core Azure CosmosDB provider to communicate with the Cosmos Database.
As per my observations, in Microsoft.EntityFrameworkCore.Cosmos nuget package there is no method (ex: Add(), Update(),Remove()) which takes partitionkey as a parameter.
I have a class like:
public class Employees
{
public string EmpId {get;set;}      // Act as a PrimaryKey
public string EmpName {get;set;}
public string DeptName {get;set;} // Act as a partitionkey
}

While Create/Update an item in the cosmos Container we do like:
dbContext.Employees.Add(employeeObject); and dbContext.Employees.Update(employeeObject);

As per my observation:
However while creating/updating the employees, we are passing the partitionKey(DeptName) value in the employeeObject. so it will create/update the given item(employeeObject) in the respective partition of the Cosmos Container.
But how about to acheive Get and Delete operations:
In EFCore, to fetch a record by Id, we have a pre-defined method called Find().
ex: dbContext.Employees.Find("EmpId") -> as we are not passing any partitionKey to the Find(), it will loop through all the partitions and fetch the record or else???
How it behaves actually?

Making that work is tracked by https://github.com/dotnet/efcore/issues/17310

How can we pass partition the key for CRUD operations?

It's derived from the entities, see docs

@AndriySvyryd , The Find() method on EFCore accepts the only primary to fetch the record from CosmosDB and we are not passing the partition key value. So how the execution of Find() method? Will it check all partitions and returns the record? or how the Find() method works?
Note: Except Find() method remaining methods accept the model as an input so the partition key can read from the model and the query is executed in the respective partition and returns the result.
Please correct if my understanding is not correct.

@AndriySvyryd , Here, The model has a partition on other property which is not a primary key.
Example:
Class
{
Property int CityId,  ---- >PrimaryKey
Property string CityName -------> PartitionKey
}
Below is the query to find the city by Id.
context.Cities.Find(cityId)
The above LINQ query takes Id as a parameter and which is not a partition key. So, the question is, the query executed against all partitions? or how the execution will be?

@balukantu The query will be executed against all partitions.

Hi @AndriySvyryd
We are currently using Cosmos Client and planning on using EF Core provider for CosmosDB in our application. We had the below few questions regarding this. Hope you can shed some light on these.

Will EF Core provider would provide all the functionality which is provided by the Cosmos Client ?
If yes, would there be any performance improvement by switching to EF Core provider?
As our application is going to be in production soon, will there be regular updates and performance improvements?
As lot of the work is ongoing as per the thread above, would you recommend us to use EF Core provider in place of Cosmos Client?

Thanks

@Anu666

Will EF Core provider would provide all the functionality which is provided by the Cosmos Client ?

No. Currently there are many features that aren't implemented yet and it's unlikely that we'll ever expose all of CosmosClient functionality

If yes, would there be any performance improvement by switching to EF Core provider?

Unlikely, it's built on top of CosmosClient. So by definition you won't be able to achieve better performance with EF Core than with CosmosClient.

As our application is going to be in production soon, will there be regular updates and performance improvements?

Yes, if there's enough demand for them.

As lot of the work is ongoing as per the thread above, would you recommend us to use EF Core provider in place of Cosmos Client?

I would say that the biggest benefit of using the EF Core provider is to be able to write a new app much faster if you are already familiar with EF. If you have a working app that uses CosmosClient there would be little benefit from switching.


[release-1.15] Promoted istioctl x uninstall to istioctl uninstall

This is an automated cherry-pick of #40362

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio_release-1.15
9f0693e4179ba57e240193239db4b510e5f45ba7
link
true
/test unit-tests-arm64_istio_release-1.15

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


new feature: Add 'overwrite' Attribute to OpCopy and OpWrite

Feature Description
This feature would allow users to toggle the default behavior of overwriting existing files. By enabling this attribute, the system would throw an error if the file already exists, rather than overwriting it by default.
Problem and Solution
Currently, there is no way to prevent the default behavior of overwriting target files during write (creation) or copy operations. This feature would solve this issue by providing an option to control whether an existing file should be overwritten.
Additional Context
No response
Are you willing to contribute to the development of this feature?

[ ] Yes, I am willing to contribute to the development of this feature.

Thank you for bringing this up. Producing an error when the file exists is a significant feature. However, it would be better to implement it in a compatible way. Perhaps we can follow the if-match pattern and add an if-absent or if-not-exist option.
User can use this feature like:
let _ = op.write_with(path).if_absent(true).await?;

Hi, we have added if_not_exsits for write. Maybe we can implement this copy too.


Is it possible to add timestamp with microseconds to tusd log?

Question
Is it possible to add timestamp with microseconds to tusd log?
I want change following line, like this.
https://github.com/tus/tusd/blob/69c567b4faa6ecb3518d123bd0725ef610e0231b/pkg/handler/config.go#L62
↓
config.Logger = log.New(os.Stdout, "[tusd] ", log.Ldate|log.Lmicroseconds)

Setup details
Please provide following details, if applicable to your situation:

Operating System: Linux
Used tusd version: v1.9.1
Used tusd data storage: AWS S3
Used tusd configuration: [-base-path, -hooks-dir, -port, -behind-proxy, -timeout, -s3-bucket]
Used tus client library: tus-js-client

Can I send you a pull request?

Closing because it is implemented in #794.


Create custom button

Is your feature request related to a problem? Please describe.
Create a custom "Browse" button for better UI look.

@ashishnagpal2498 , I would like to take this issue
Also, pls provide me dummy credentials for login
Thanks

@ShubhamSj07
Go Ahead!
Use this Link.
https://athavani-sanjay-frontend.netlify.app/

@sanjay270899 , how to set-up server locally, I am not able to set-up back end .
To make changes , I need to sign in
Plz help me out!

Hello @sanjay270899  @ashishnagpal2498 ,
Actually this issue is been solved under issue #123
I have made the PR #134 for it.
Issue was for the UI and VALIDATION of CreatePost. I had mentioned too that I would be resolving the UI for choose a file button.
While going through issues, I came to know that this issue is already done in my PR.
Here's the screenshot for the button to upload the photos.

@ShubhamSj07 Did you able to set-up the repo or you need help?


Design basic front-end

Desing a basic front end having a search bar and a result section in basic html css bootstrap

is there any demo for the required front end design ?


Filesync WIP

Current dependencies on/for this PR:

main

PR #940   👈

This comment was auto-generated by Graphite.


⚠ SceneTime has degraded performance

In a11b344, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1226 ms

Resolved: SceneTime performance has improved in 1cfc9cf after 9 minutes.


Support hipchat server

https://github.com/tbruyelle/hipchat-go/blob/35aebc99209aa41498ab4823a83e254037f062fd/hipchat/hipchat.go#L174

[ ] custom base URL
[ ] Optional CA cert.

This needs to be added to the go-notify library https://github.com/appscode/go-notify/blob/master/hipchat/chat.go


Replacing nio.Files with GLFSService. This allows it to work with web ap...

...plication class loaders

Please merge Cracker.


Fix applying zsh theme in dev container in VS Code

After working on allowing pulling the Zsh terminal configuration from the host and having a fallback

https://github.com/Elixir-journey/elixir-kickoff/pull/53

I was testing the container through the docker in the terminal through:
docker build --no-cache -t elixir-update -f .devcontainer/Dockerfile .
docker run -it --rm elixir-update

Testing that way was working as expected, but I didn't during that time ensure that when I'd push the updated container image resulting from the PR (https://github.com/Elixir-journey/elixir-kickoff/pkgs/container/elixir-kickoff/323023919?tag=latest)
After configuring the theme for the container manually (bug listed here) we get this kind of feedback from the container's terminal:

But when opening the development container (without using the cache to ensure there no unexpected behaviour), this is the UX in the terminal.

I've been working in the main branch without realizing it, but things are working as intended now.
00589b5e62ab2e34756d7ed2a1414d5de5a6b4dc...0ed24cc1f8f7f3e962576aaea4e33f13a8fc08f4
To validate the behavior other than visually, here's what we can do

Ignoring the problems of spelling observed by the editor, things are working well:

We can confirm that the theme is being applied
We have highlighted commands
We can see that the terminal is suggesting a command based on a prior command that I ran

In this instance, all that's missing is that the dev container is building the image on the fly, which can take up to a minute to set up on a machine.
The update can come in a later stage with the updated pre-built image: https://github.com/Elixir-journey/elixir-kickoff/pkgs/container/elixir-kickoff/323043388?tag=latest


Server immediately shuts down in Kubernetes

I'm trying to run the server with Kubernetes, Helm and Minikube, but it immediately receives a signalterminated. I don't know where that signal is coming from. When I start the same image in Docker, this doesn't happen.
Here is the pods log:
time="2023-02-13T10:40:12Z" level=info msg="Server CORE start" func=main module=main
time="2023-02-13T10:40:12Z" level=info msg="Server RTSP start" call=Start func=RTSPServer module=rtsp_server
time="2023-02-13T10:40:12Z" level=info msg="Server HTTP start" call=Start func=RTSPServer module=http_server
time="2023-02-13T10:40:12Z" level=info msg="Server start success a wait signals" func=main module=main
time="2023-02-13T10:40:39Z" level=info msg="Server receive signalterminated" func=main module=main
time="2023-02-13T10:40:41Z" level=info msg="Server stop working by signal" func=main module=main

And here is my values.yaml (I build the image myself since the default image contains the default config which doesn't work):
replicaCount: 1

image:
  repository: myregistry/videostream
  pullPolicy: Always
  tag: "rtsptoweb"

imagePullSecrets:
  - name: mysecret
nameOverride: ""
fullnameOverride: ""

serviceAccount:
  create: true
  annotations: {}
  name: "videostreamuser"

podAnnotations: {}

podSecurityContext: {}

securityContext: {}

service:
  type: NodePort
  port: 80

ingress:
  enabled: false
  className: ""
  annotations: {}
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []

resources: {}

autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80

nodeSelector: {}

tolerations: []

affinity: {}

I managed to solve this by removing the readiness and liveness probes in deployment.yaml


Fix typo in exercise 02 notebook

There was a typo in the json of the 02 lesson notebook. I added the escape character to the quotation marks, so that now it renders correctly.

Thank you!


feat: profile themes, accessibility and fixes

This PR themes some new stuff, coloring fixes and more. I haven't fixed/themed other smaller things; pretty sure the big improvement is with v4 👍🏻. But the details that people notice the most are the profile themes.
Changes made:

Profile themes support. (#43)
Themed App Directory.
Reworked home and forums.
Use full white on text.
Use HSL for accessibility.
Fixed members list. (#44)
Fixed image modal carousels. (#44)
Fixed classes on the connections settings page.

Fixes #43.

appreciate your help as always ❤


GEODE-4339: fix build

.net SSL example didn't parameterize things correctly in its CMakeLists.txt

Codecov Report

Merging #459 into develop will increase coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #459      +/-   ##
===========================================
+ Coverage    72.15%   72.21%   +0.06%
===========================================
  Files          654      654
  Lines        52351    52351
===========================================
+ Hits         37772    37805      +33
+ Misses       14579    14546      -33

Impacted Files
Coverage Δ

cppcache/src/TcrPoolEndPoint.cpp
79.72% <0%> (-1.36%)
:arrow_down:

cppcache/src/ThinClientRedundancyManager.cpp
72.34% <0%> (+0.31%)
:arrow_up:

cppcache/src/ThinClientRegion.cpp
55.75% <0%> (+0.45%)
:arrow_up:

cppcache/src/TcrEndpoint.cpp
51.11% <0%> (+0.55%)
:arrow_up:

cppcache/src/ClientMetadata.cpp
62.96% <0%> (+0.61%)
:arrow_up:

cppcache/src/ThinClientPoolDM.cpp
68.18% <0%> (+0.89%)
:arrow_up:

cppcache/src/ServerLocation.hpp
90.69% <0%> (+4.65%)
:arrow_up:

cppcache/src/ReadWriteLock.cpp
100% <0%> (+18.75%)
:arrow_up:

Continue to review full report at Codecov.

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


Expose image to use in CRD

  ----    ------          ----   ----               -------
  Normal  Scheduled       2m35s  default-scheduler  Successfully assigned kube-system/nfs-provisioner-6d447d46b-j5lhw to alt-ksw-g-c01oco02
  Normal  AddedInterface  2m34s  multus             Add eth0 [<IP_ADDRESS>/23] from openshift-sdn
  Normal  Pulled          2m34s  kubelet            Container image "quay.io/kubernetes_incubator/nfs-provisioner:latest" already present on machine

relying on latest is a bit yolo :). It would be nice if one could configure the image to use in the CR. Then you can lock the tag and pull via internal proxies etc.

@Jooho WDYT? I can provide a PR if you like the idea?


fix: notifications indicate that they are from this plugin

Before, the notifications just said stuff like "server downloading", with no indication that they were coming from this plugin. Since it wasn't clear what sent this notifications, I was regularly confused until I realized that they were coming from this plugin.

Thanks for the contribution!


Update, Fix diagrams

Codecov Report

Merging #206 (48d641c) into master (1d551af) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #206   +/-   ##
=========================================
  Coverage     63.65%   63.65%
  Complexity      705      705
=========================================
  Files           123      123
  Lines          2768     2768
  Branches        266      266
=========================================
  Hits           1762     1762
  Misses          904      904
  Partials        102      102

Continue to review full report at Codecov.

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


Cant click on buttons when loading.

Cant click on mopidy, vnc or kodi when it's warming up the projector. Just disable the 3 projector buttons instead of the overlay.

projektor service issue. Projector state change is waiting for /projektor/status response. Who the f* speaks python, could rewrite projektor code to drop VGA/HDMI switch and skip projectors status during startup. We only have 2 states now (HDMI and OFF). 40-ish seconds wait time isn't the point anymore.

põmst projektor võiks kohe vastata kui "ON" command antud :D
tehke ära. Ei viitsi Engrishi purssida :)

Done


Water sensors UGB MO (1724908)

Two of the nodes at this farm got water inside of them and will need to get replaced. i will ship replacements for them by the end of the week.
18000430 cover rep 2
18000451 cover rep 1
Additionally, Charles visited this farm and downloaded all the data from the gateway and all the data seems to be present. will send the files to me and i will check again for anything i might have missed.

Charles replaced two of these nodes a little bit ago, all the nodes are working fine, but it is not reflected on the charts since hi has not submitted the form (I don't think).

Looks like he submitted a install form on June 29th and put "winter" instead of reinstall

UGB Rep 1 - Cover Middle depth sensor not operating correctly. replace

i sent a replacement to charles, he has replaced it now, aslo asked him to download data again.

sensor install form details the node changes. nothing more to do


Merged main dev 1.30

This PR syncs the dev-1.30 branch with main to keep the dev-1.30 branch up to date.
Note for new SIG Release Docs Shadows
This is called a branch sync, and we will be doing this twice a week throughout the release cycle as described in the hanbook here.
We will go over this in the orientation this Thursday! 😄
cc: @Princesso @Vyom-Yadav @chanieljdan @celestehorgan

/approve


Support Hashed Assets

Summary

These small tweaks hopefully simplify our checks as we're already gathering most of this info within svg_collector(), so we shouldn't need to check again. ✅

By saving the full file path in svg_collector() we can provide support for hashed assets eg. arrow-left.524a72.svg (we currently have this issue, nice to get a fix in for it!)  ✅

Output of  svg_collector()
[
    "arrow left" => [
        "name"      => "arrow left",
        "filename"  => "arrow-left.524a72",
        "icon"      => "arrow-left.524a72.svg",
        "url"       => "/dist/editor/images/icons/admin-picker/arrow-left.524a72.svg",
        "path"      => "<OS_PATH>/<theme-name>/public/dist/editor/images/icons/admin-picker/arrow-left.524a72.svg"
    ],

    ...
]

TODO/Further Suggestions

Also, might be better to save an ID (something like sanitize_key($name)) of the icon to the ACF field instead of the name? (not yet implemented, good to hear your thoughts on this @Levdbas — and while we're at it, do the title case transforms PHP side, either transform ucwords($name) or add an additional prop title => ucwords($name) + simplify js a bit more?  ✅

Output of  svg_collector() using key
[
    "arrow-left" => [
        "key"       => "arrow-left",
        "title"     => "Arrow Left",
        "url"       => "<site_url>/dist/editor/images/icons/admin-picker/arrow-left.524a72.svg",
        "path"      => "<os_path>/<theme_name>/public/dist/editor/images/icons/admin-picker/arrow-left.524a72.svg"

         // + maybe we can remove these now?
        "name"      => "arrow left",
        "filename"  => "arrow-left.524a72",
        "icon"      => "arrow-left.524a72.svg",
       ...

Later tweaks/fixes

[x] Fixed filters since the js svg array is now an object
[x] Removed name, filename and icon from the svgs array (point 3 above)
[x] ⚠ Breaking Change: Saving sanitized key as ACF field value instead of 'name'

Hi @mike-sheppard , looks good, but what happens after this change on existing websites with field values saved? Will icons still appear "selected" for example? Maybe we can create something on the JS/php field side that will automatically will update/sanitize the value when not done already?

hey @Levdbas should work as it always has, but there will be a breaking change for any previous values that were saved unsanitized.

yeah that's not a bad shout on the conversion, will look into it!

@Levdbas just pushed up a potential fix, could you try it on an existing project please 🙏

Tested out main-dev after setting icons in an older version and looks good to me.

Cool, added a test for the sanitised/unsanitised keys + tidied the acf field HTML markup out into a new view ✅


Wrong Signature for Events

Hi,
the signature of the procedures is in most cases incorrect. The var Parameter is missing (for example on the OnAfterValidateEvent and so on).
Thanks

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

ID: 256aabb4-8d5d-cc06-6c1f-5558c668491b
Version Independent ID: 51d1427c-130d-b5c0-3d04-89c01caa89f8
Content: Event Types - Business Central
Content Source: dev-itpro/developer/devenv-event-types.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

Hi, thanks for catching this, it will be fixed with the next doc refresh.


Enhances spo file list, Closes #4654

Closes #4654

Great work Nico, I'll review it asap!

Hi @martinlingstuyl , reworked the PR as discussed, could you take another look at it please?
The only thing I did a bit different is pulling out the recursive logic outside the getFiles function and use the getFiles function for the files in the current folder instead of creating a new function getFilesPaged, since the logic is the same for a subfolder and the current folder.
The reason I pulled out the recursive logic is because otherwise the recursive logic is called every time for every subfolder, which it shouldn't. If however you would like to see the recursive functionallity inside the getPages function, we could create another parameter for that function where we give the args.options.recursive parameter with that function from the commandAction function and everytime we call the getPages function from inside the getPages function, we could give false to this parameter.
Let me know if you would like to see things different.
Also thank you for your kind words 😍

Hi @nicodecleyre,
I just gave it a quick look, but as far as I see this will not get all files.
So the following files will be included:
/Subfolder a/file 1
/Subfolder a/file 2
/Subfolder b/file 1
/Subfolder b/file 2
/file 1
/file 2

But what you will be missing now is the following:
/Subfolder b/Subsubfolder c/file 1
/Subfolder b/Subsubfolder c/subfolder d/file 1

That's why I suggested moving the part with requesting subfolders to the getFiles method.

Don't know why it doesn't work for you but i'm getting all files from every subfolder back

Anyway, did it like you want it, but still with a small change where you call getFilesPaged instead of getFiles for every subfolder, otherwise you face an infinite loop when using the recursive option. So like this:
public async commandAction(...) {

  const files = this.getFiles(...);

}

private async getFiles(...) {
  if (args.options.recursive) {
    const subFolders = await this.getSubfoldersPaged(...); //call the /Folders endpoint as many times as is necessary

     //for each subfolder call the getFilesPaged function
    foreach(var folder in subfolders) {
      const files = await this.getFilesPaged(...)
    }
  }

  // Now get all the files in the current folder and call as many times as necessary
  const files = await this.getFilesPaged(...)
}

Can you take another look?

Hi @nicodecleyre, ah well, I didn't try it out yet, just did a quick glance. I apparently misinterpreted. But now I've seen it I think your setup was better indeed! Nice separation of concerns between the functions that way. First get all the folders recursively, and then execute getFiles on all of them. Let's do that instead.  Do you mind returning it to how it was? 😅

Hi @nicodecleyre, ah well, I didn't try it out yet, just did a quick glance. I apparently misinterpreted. But now I've seen it I think your setup was better indeed! Nice separation of concerns between the functions that way. First get all the folders recursively, and then execute getFiles on all of them. Let's do that instead. Do you mind returning it to how it was? 😅

No problem! Should be back good now

Ok thanks, I'll review it again 🤙

The tests are failing because you rebased on the main that had an issue temporarily. Could you rebase again?

Merged manually, thank you! 👏

Merged manually, thank you! 👏

Thank you too! Took a look into the commit, it's indeed some cosmetic changes 😁


I can't copy part of the answer, I can only copy all.

I can't copy part of the answer, I can only copy all.
This operation replication is successful.

But it doesn't work to select only part of the copy.

I have also encountered this issue and cannot select copy anymore

我也是，command+c无法复制文本

之前都可以复制，是昨天才出现的这个问题

这俩天突然不能复制了，我还因为这个点错了现在打不开

bing网页上也不能单独复制一句话了，应该是微软设置的


Fixed : [Microsoft Graph v1.0]: teams message get #2678

Fixed : [Microsoft Graph v1.0]: teams message get #2678
I've made teams message get command use the v1.0/teams endpoint in its implementation, instead of beta/teams endpoint. #2678

Linked Issue

Closes #2678

Thank you @siddhart1o1 👏
There are a few changes we need to make before merging this PR, lets also remove the attention remark in the corresponding documentation page (https://github.com/pnp/cli-microsoft365/blob/main/docs/docs/cmd/teams/message/message-get.md) and update the requests in the corresponding tests (https://github.com/pnp/cli-microsoft365/blob/main/src/m365/teams/commands/message/message-get.spec.ts) to reflect the change from using the beta endpoint to the v1.0 endpoint.
I've moved the PR to draft status to signify that this PR is currently a work in progress, once you have made the above changes and you are ready for us to review again, mark the PR as Ready for Review. See: https://github.com/pnp/cli-microsoft365/discussions/1666 for more detail.

@garrytrinder could you help me  how to update my changes in the 'message-get.spec.ts' .

@garrytrinder could you please have a look

@garrytrinder could you help me how to update my changes in the 'message-get.spec.ts' .

No problem. I'm going to assume that from your screenshots you have already cloned your fork and you are working in your my-contribution branch locally, therefore the best way to proceed is to commit your changes locally and push them to your fork. This will automatically update this PR with the new commits you have made.

@SaNsK11, is there a reason why you added Jest types to the project? We're using mocha and sinon and they have everything that we need to build tests.

@waldekmastykarz can you please guide me a little....shall I remove the jest types....I'm a complete newcomer in this space

Yes, please remove jest types. I think they're causing the issue with the build at the moment.

Closing PR due to lack of response.


Nft with services

If you're interested in handling Services in namespaceSelector/podSelector. I really wanted to be granular on what services is allowed to use another.

I'll close this since I'm trying to rebase on master at the moment and will finish the ingress part for services.


tests for hiding underscored transitions from the API and logs stream

related to this pull request https://github.com/zettajs/zetta-device/pull/19 on zetta-device.

FYI I expected the CI to fail because of the NPM version dependency between zetta and zetta-device. This test assumes a yet to be published version of zetta-device which is the pull request over yonder. Plz let me know if there's a better way to handle this in the future.


Update Feature Of List, Delete, Find, Prioritise into UG

Codecov Report

Merging #52 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #52   +/-   ##
=========================================
  Coverage     67.18%   67.18%
  Complexity      426      426
=========================================
  Files            81       81
  Lines          1426     1426
  Branches        155      155
=========================================
  Hits            958      958
  Misses          428      428
  Partials         40       40

Continue to review full report at Codecov.

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


[Enhancement] - Multiple adaptions in the exam scores view

Checklist

[x] I tested all changes and all related features with different users (student, tutor, editor, instructor, admin) on the test server https://artemistest.ase.in.tum.de.
[x] Server: I followed the coding and design guidelines.
[x] Server: I implemented the changes with a good performance and prevented too many database calls
[x] Server: I documented the Java code using JavaDoc style.
[x] Client: I followed the coding and design guidelines.
[x] Client: I documented the TypeScript code using JSDoc style.
[x] Client: I added multiple screenshots/screencasts of my UI changes
[x] Client: I translated all newly inserted strings into English and German.
[x] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.

Motivation and Context

We want to have some little adaptions to the exam scores page, since some aspects are not ideally
Description

Removed some whitespaces from the exam information below the exam title (with number of points, exercise groups etc.)
Added percentage value of how many students passed (if grading key defined) and how many percentage actually submitted
Adapted the exercise average scores, made the bars smaller (less height), added a possibility to click on the bar to navigate into the scores page of the corresponding exercise
Added a new line in the exam information matrix which shows the standard grade deviation (only if grade scale defined and grades only consist of numeric values!)
Explicitly add points or grades to the matrix to distinguish between those

Steps for Testing

Log in to Artemis
Navigate into the scores page of an exam (preferably with second correction done and grade key defined, in order to check everything)
Check the improvements mentioned in the Description section and if values are also correct (no unexpected values at least, if you want to calculate the standard deviation of the grades use this)
Add a string to the grade scale names (instead of 5.0 for example) and make sure the standard grade deviation is not shown

Screenshots

Table:

Made graph bit thinner:

Now:

@lschlesinger Thanks for the feedback :) Simon has an exam in his course where I tested my changes, with test_user_13 I think

Concerning the failing TypeScript Client Test:
As I can see you have similar problems too ... (every test passes but still build failed)
Lorena mentioned that the issue might be with a test/line coverage that is not fulfilled.
(Even if you only added few lines of code)

@Olimbia23 Thanks for the feedback. I adapted the code like you suggested :)

@lschlesinger Thanks for the feedback. It seems most of the things you mentioned relate to the exam scores page itself, not to the changes I did on this page (e.g. this PR only adds the last line to the exam information table, not the whole table ;)). Nevertheless there are definitely some valid points you mentioned

Works in english, sounds a bit strange in german, I agree
You are right, the number of passed students in the first correction round would be interesting (submitted and total exams are left blank as it is the same as for the second correction, but I could maybe just add those number so nobody gets confused)
I can just guess that this was thought be the most uninteresting aspect without added value and therefore was left unmentioned
Agree, will be changed
I experienced this in other places as well. Problem is that the chart itself is more like a blackbox and is handled by the initialization of the chart. In combination with changeDetection: ChangeDetectionStrategy.OnPush which we use on that page, the language change is not detected and therefore not changed. I could look into this, but probably not in this PR.
That's true, not necessarily needed
I tried to make the difference as clear as possible. The title of each average score graph, together with the same title on the left side of the bar and the blue bar should indicate that the first (blue) bar shows the average score of the exercise group, while the grey bars below show the average scores of the specific exercises, with the title of the exercise on the left hand side. Any idea how I can make this even more obvious?
It's supposed to be called Aufgabengruppenstatistiken & Aufgabenstatistiken, that's why I called it Aufgabengruppen- & Aufgabenstatistiken.

Thanks for addressing the comments!

I tried to make the difference as clear as possible. The title of each average score graph, together with the same title on the left side of the bar and the blue bar should indicate that the first (blue) bar shows the average score of the exercise group, while the grey bars below show the average scores of the specific exercises, with the title of the exercise on the left hand side. Any idea how I can make this even more obvious?

Maybe:
e.g. right aligning the name of the exercise group / exercise, I think the short name was a bit lost when it was left aligned. Also what is the number before the exercise title? It was not displayed anywhere else, could be just drop it. It would indicate, that these are average points in comparison by changing the title and the the bar descriptions such as shown in the picture. I did not see the tooltip before, and without the tooltip, one would not now that it's about average scores.

Thanks for addressing the comments!

I tried to make the difference as clear as possible. The title of each average score graph, together with the same title on the left side of the bar and the blue bar should indicate that the first (blue) bar shows the average score of the exercise group, while the grey bars below show the average scores of the specific exercises, with the title of the exercise on the left hand side. Any idea how I can make this even more obvious?

Maybe:
e.g. right aligning the name of the exercise group / exercise, I think the short name was a bit lost when it was left aligned. Also what is the number before the exercise title? It was not displayed anywhere else, could be just drop it. It would indicate, that these are average points in comparison by changing the title and the the bar descriptions such as shown in the picture. I did not see the tooltip before, and without the tooltip, one would not now that it's about average scores.

The number before the exercise title is the id of the exercise, Stephan requested it since there could be the possibility to have identical exercise names. You are very right that there is actually no indicator that we look at average scores here. I would propose to call the title of the graph Average scores of exercise group TITLE in comparison, therefore we indicate what we actually show while also explaining what the exercise group title is called, which will help noticing that the exercise group average is also shown. Regarding the right alignment of the bar title I am not that persuaded, because I think it's important to have the IDs aligned below each other which makes it easier to compare them