Link to PDF not showing in performance record

Question: Is this a bug or is this something that will need its own ticket for a feature/enhancement to the application?
Example item with link to PDF that was added in DPUL and is not working in DPUL: https://dpul.princeton.edu/performances/catalog/a538af11-8d21-4be7-aaa0-40c1e9514d89
Use Case: Dan from Mendel would like to include links to PDFs of performance programs in each item for Performance Ensembles Collection (these links, when available, are also in the online catalog record for the audio performance).
I see two possibilities here:

Dan may add these manually in DPUL via the DPUL-created medatada field.
We map the MARC field containing the PDF link (in the 856...which poses its own obvious problems, I would think) to figgy, and then to DPUL.

Thoughts?

We already pull the 856s and put them in the metadata in Figgy. There must be some bug with the metadata sync for PUO. It used to work.

hmm. weird.ok. changing to bug.

I think this is just a bug in DPUL. I see the value in Figgy just fine.

I don't see the link in figgy @tpendragon. Here is the figgy record: https://figgy.princeton.edu/catalog/a538af11-8d21-4be7-aaa0-40c1e9514d89.
The click-throughs to the catalog are working but the link presented in the catalog gives a 404, which seems like another issue. Do we know where this program is?

@hackmastera I should have been clearer. The link is in the JSON-LD which gets synced to DPUL. See "electronic_locations": https://figgy.princeton.edu/catalog/a538af11-8d21-4be7-aaa0-40c1e9514d89.jsonld

@tpendragon thanks. So it's still giving a 404; have these been moved but not updated in voyager? @kelea99?

https://dpul.princeton.edu/performances/catalog/9407e8a3-b844-4d32-8da5-1d94c94c37b8 is another example.

The feature was added in https://github.com/pulibrary/dpul/pull/738

The problem is that the field key from figgy is "Electronic locations" but the custom field key in the exhibit was changed to "Program PDF" so it doesn't find the field in custom fields so it doesn't index it.

I'm not sure there's a straightforward code fix here. For other fields where curators didn't like the label that came from figgy it looks like we've edited them globally.
@kelea99 is it acceptable to keep the field called "Electronic locations"? Or, is there another field name that would be acceptable (generally for all 856es in all collations) that we could put in on the backend? The link text will still reference the fact that it's a program.

Suggestion: "Available Online" is what the online catalog uses for this category. That would cover anything in that field.

If stakeholders are agreeable, deploying https://github.com/pulibrary/dpul/pull/1365 and reindexing the collection will apply that change.

A note about what I discovered in the code.
metadata values are transformed into a label => value hash and the original jsonld key is discarded as part of preparing the data for indexing.
https://github.com/pulibrary/dpul/blob/8bcdcca21321e3a982e6b3a32b4450fe83aa21ad/app/values/manifest_metadata.rb#L39
The lookup on custom fields is later, and uses the custom field label as opposed to the slug:
https://github.com/pulibrary/dpul/blob/8bcdcca21321e3a982e6b3a32b4450fe83aa21ad/app/services/iiif_manifest.rb#L114
There may be background as to why it uses label. I think there was a problem with duplicate custom fields at one point.
I tried to use the custom field slug by passing it back with the metadata hash embedded in the value, but that messed up the code path that doesn't go through jsonld.
It may help to fully separate the jsonld case from the manifest case by using different objects.

this is deployed and the collection reindexed. links are showing up now under the heading "Available online"


Implements 9696346 and 9696349

Implements 9696346
Signed-off-by: Johnson Shi<EMAIL_ADDRESS>


Show Todays Bedtime Alarm

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.
[ ] This issue is a feature request to test other Nintendo Parental Controls mobile app configurations

Is your feature request related to a problem? Please describe.
I would like to know what the todays bedtime alarm is, to synchronise it with other non-nintendo devices
Describe the solution you'd like
A sensor similar to time.play_time_limit
e.G. time.bedtime
It shows the bedtime alarm of today (see #59)
And can be set for the day.
Describe alternatives you've considered

Additional context

planned for 2024.1.0

In beta 2024.1.0b0

In beta 2024.1.0b0

Can't find the sensor:

got carried away, it was there upstream, just no entity registered here.
Latest release should show this now.

Found this both logs which occurred when I was testing my scripts:
Logger: homeassistant.components.script.XYZ_spielzeit
Source: helpers/script.py:476
Integration: Skript (documentation, issues)
First occurred: 13:15:04 (4 occurrences)
Last logged: 13:15:59

    XYZ Spielzeit: Gute-Nacht-Alarm: Error executing script. Unexpected error for call_service at pos 1: ('HTTP Exception', 'HTTP Error', 400)
    XYZ Spielzeit: Error executing script. Unexpected error for if at pos 2: ('HTTP Exception', 'HTTP Error', 400)

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 713, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 675, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2149, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2186, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 272, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 882, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 952, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/time/__init__.py", line 41, in _async_set_value
    return await entity.async_set_value(service_call.data[ATTR_TIME])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nintendo_parental/time.py", line 104, in async_set_value
    await self._device.update_max_daily_playtime(minutes)
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/device.py", line 132, in update_max_daily_playtime
    await self._set_parental_control_setting()
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/device.py", line 109, in _set_parental_control_setting
    await self._api.send_request(
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/api.py", line 91, in send_request
    raise HttpException("HTTP Error", response.status)
pynintendoparental.exceptions.HttpException: ('HTTP Exception', 'HTTP Error', 400)

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:238
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 13:15:04 (2 occurrences)
Last logged: 13:15:59

[140271590477632] ('HTTP Exception', 'HTTP Error', 400)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 238, in handle_call_service
    response = await hass.services.async_call(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2149, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2186, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 605, in _service_handler
    response = await self._async_start_run(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 563, in _async_start_run
    script_result = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/script/__init__.py", line 594, in _async_run
    return await self.script.async_run(script_vars, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1587, in async_run
    return await asyncio.shield(run.async_run())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 426, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 479, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 502, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 966, in _async_if_step
    await self._async_run_script(if_data["if_else"])
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1078, in _async_run_script
    await self._async_run_long_action(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 675, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1587, in async_run
    return await asyncio.shield(run.async_run())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 426, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 479, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 502, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 713, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 675, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2149, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2186, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 272, in handle_service
    return await service.entity_service_call(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 882, in entity_service_call
    single_response = await _handle_entity_call(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 952, in _handle_entity_call
    result = await task
             ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/time/__init__.py", line 41, in _async_set_value
    return await entity.async_set_value(service_call.data[ATTR_TIME])
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/nintendo_parental/time.py", line 104, in async_set_value
    await self._device.update_max_daily_playtime(minutes)
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/device.py", line 132, in update_max_daily_playtime
    await self._set_parental_control_setting()
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/device.py", line 109, in _set_parental_control_setting
    await self._api.send_request(
  File "/usr/local/lib/python3.11/site-packages/pynintendoparental/api.py", line 91, in send_request
    raise HttpException("HTTP Error", response.status)
pynintendoparental.exceptions.HttpException: ('HTTP Exception', 'HTTP Error', 400)

Hmm, I haven't implemented any validation rules yet, but the time provided must be between 16:00 and 23:45. Its part of the experimental stuff now due to the implementation of #59
I'll take a look further anyway.

Hmm, is anything wrong with my script?
thought the first numbers are the hours?
alias: Gute-Nacht-Alarm
if:
  - condition: or
    conditions:
      - condition: time
        weekday:
          - sat
          - fri
then:
  - service: time.set_value
    metadata: {}
    data:
      time: "22:00:00"
    target:
      entity_id:
        - time.bedtime_alarm
else:
  - service: time.set_value
    metadata: {}
    data:
      time: "21:00:00"
    target:
      entity_id: time.play_time_limit

The time platform isn't used as time in its "traditional" sense for the play time limit entity. Instead it works as a duration.
So passing time: "21:00:00" would be passing a play time limit of a total of 21 hours, yet Nintendo themselves only supports a max of 6 hours, thats one thing that is validated on the API side of things, and where you'll get the 400 error.
We can see its updating this value rather than the bedtime alarm because this is seen in the stack trace of the exception:
  File "/config/custom_components/nintendo_parental/time.py", line 104, in async_set_value
    await self._device.update_max_daily_playtime(minutes)

Yeah there was an error in my script, but even when i try to change it manual, nothing changes in the app.

Can't reproduce it, at the moment its working again oO

Hmm, I haven't implemented any validation rules yet, but the time provided must be between 16:00 and 23:45. Its part of the experimental stuff now due to the implementation of #59
I'll take a look further anyway.

Wanted to test if remaining times takes the bedtime alarm into account and found a small bug (which isn't important for me):
When you choose times which are below 17:00, the bedtime alarm is put off

IMHO it would be better if it's treated another way.
e.G. doing nothing or throwing an error.
Deactivating the bedtime alarm isn't something a user would expect.

Another thing:
Would like to use the bedtime alarm to power off the tv.
But when i want to use the platform: time it doesn't show me the sensor, don't know if it is easy to solve.

Would like to use the bedtime alarm to power off the tv.
But when i want to use the platform: time it doesn't show me the sensor, don't know if it is easy to solve.
Looks like a Input Datetime is needed

Can't easily solve that one here unfortunately, core needs to support the time platform with the time trigger. A input_datetime is a integration rather than a platform.
I could create a sensor for it, but then we wouldn't meet the requirements anyway for a timestamp device class (which is required for the time trigger) as these values don't store dates purely just a time.

Yes, some changes need to be made here as the time platform isn't supported. But shouldn't be too difficult to add:
https://github.com/home-assistant/core/blob/bee53f6004a1cd061092714cefeec52b0ef9fa1b/homeassistant/components/homeassistant/triggers/time.py#L79

Thanks, if
platform: template
value_template: >-
  {{ states('time.bedtime_alarm') == now().timestamp() |
  timestamp_custom('%H:%M:%S') }}

will work, it would be enough for me^^

IMHO it would be better if it's treated another way. e.G. doing nothing or throwing an error. Deactivating the bedtime alarm isn't something a user would expect.

Ok, I've just released a new beta that adds in the much needed validation and errors.
The only difference though is that the integration still needed a way to disable the bedtime alarm, so providing 0:00 will disable it, but for any other time that is not between 16:00 and 23:45 (23:59 might be supported by Nintendo, it only validates the hour so we'll see) an error will be raised when making the call.

Thanks, if
platform: template
value_template: >-
  {{ states('time.bedtime_alarm') == now().timestamp() |
  timestamp_custom('%H:%M:%S') }}

will work, it would be enough for me^^

It should do as I believe template triggers are checked every minute. You can also shorten this down a little too ;)
{{ states('time.bedtime_alarm') == now().strftime('%H:%M:%S') }}

The new release works good.
Like the Error Message =)

@JokerGermany how are you finding the current release?

@JokerGermany how are you finding the current release?

In my opinion there is nothing which should stop your releasing it.
Personally I think it would be user friendly beeing able to use time.bedtime_alarm in the  platform: time (despite the template above works), but in my opinion thats not a showstopper.

@JokerGermany how are you finding the current release?

In my opinion there is nothing which should stop your releasing it. Personally I think it would be user friendly beeing able to use time.bedtime_alarm in the platform: time (despite the template above works), but in my opinion thats not a showstopper.

That would be handy, I agree, but it's just a limitation of home assistant rather than the integration itself.


Update ClassyOrg_CampaignProgressWidget.php

Fixing divide by zero error for fundraisers with a $0 target

Thanks for the fix!


Add crashlytics logs to find the cause of core data crash

Description
LEARNER-504

Codecov Report

Merging #994 into master will decrease coverage by <.01%.
The diff coverage is 20%.

@@            Coverage Diff             @@
##           master     #994      +/-   ##
==========================================
- Coverage   45.68%   45.68%   -0.01%
==========================================
  Files         407      407
  Lines       27026    27031       +5
==========================================
+ Hits        12347    12348       +1
- Misses      14679    14683       +4

Impacted Files
Coverage Δ

Source/OEXDBManager.m
1.35% <0%> (-0.02%)
:arrow_down:

Source/OEXDownloadManager.m
16.9% <100%> (+0.29%)
: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 2a2f2dc...7f0399c. Read the comment docs.

@saeedbashir i have added more logs. Thanks

@salman2013 Can you point out a crash where I can find newly added logs with the crash?

@salman2013 Can you point out a crash log where I can find newly added logs along with other details.

Can you create a story to remove these logs after finding the root cause of the crash?


Triggerable returns function with eventProperties parameter

Purpose
Some events can be triggered without any specified properties (e.g., mousedown), but others require properties like which (e.g., keydown). triggerable currently requires event properties to be defined at the time when triggerable is called in the page object, but it is sometimes more convenient to specify event properties at the time when the triggerable descriptor is used in tests. This PR modifies triggerable to accept either static event properties defined at the time when triggerable is called in the page object or dynamic event properties passed in when the descriptor is accessed.
Test Coverage

New tests verify that triggerable descriptor applies the event properties.
New tests verify that if event properties are specified both in the triggerable call and the triggerable descriptor call, the props passed into the descriptor are applied.

Open Questions

[ ] Is it appropriate for triggerable to have two different ways of receiving eventProperties? Would it be better to define a separate dynamicTriggerable helper?

Coverage increased (+0.006%) to 97.796% when pulling 8c37cb7cc9d0aad671e443a5249e0c4f67ff1600 on AltSchool:feature/dynamic-triggerable into ca91949fd857a5ecfaa9f6f379be87802370e230 on san650:master.


ESM support not working

Hi there 👋,
Thanks for maintaining such a wonderful package <3
We are transitioning to ESM over bundling.
While doing so, I noticed that this package wasn't set up correctly.
The package.json module key points to src/index.js.
https://github.com/richtr/NoSleep.js/blob/1d15cc88dd8c1b62fe5b5f910c6ff7396b280d68/package.json#L16
However, the index.js file is written in CommonJS at does a require call in the very first line.
https://github.com/richtr/NoSleep.js/blob/1d15cc88dd8c1b62fe5b5f910c6ff7396b280d68/src/index.js#L1
Furthermore, the module key, is deprecated in favor of defining exports. Finally, both, module and exports should usually point to the distribution code, not the package sources.
I am happy to provide a fix that transforms this package to be fully ESM compatible. Please let me know if you'd be interested in a contribution.
Cheers!
Joe

Ideally the library would just be rewritten into ESM and compiled down to UMD via rollup - easy enough. Then publish both versions in the npm package.
Considering that this library was last updated 4 years ago: the maintainer doesn't care obviously.
However, I care and please fork this repository and do what I just said. I will watch your fork and if you run into issues, you can ping me - I just happen to need this aswell.
If you don't now rollup good enough yet, you can take the build script of PlayCanvas as good/tested example.
While you are at it, you can also add proper JSDoc comments to document the code.

After a little research, why would anyone care, since WakeLock has been implemented?

Mainly as polyfill for testing e.g. Cardboard VR on old browsers.


The website cannot be translated

As shown in the image

Please Provide More Context Please?
Such as: What Content is not translating, Are you getting any error


‘imsplit’ missing

dear vitorsr ,when I ran this program on my computer,I got the following error:
main
未定义函数或变量 'imsplit'。
出错 zSpecularFreeImage (line 4)
[r,g,b] = imsplit(src.rgb);
出错 zRemoveHighlights (line 2)
[src,sfi] = zSpecularFreeImage(img);
出错 zHighlightRemoval (line 5)
[sfi,diff] = zRemoveHighlights(img);
出错 main (line 2)
[img,sfi,diff] = zHighlightRemoval(fname,[NaN 128]);
Is there a function or variable called ‘imsplit’ missing？
I‘m looking forward to your reply，Thank you very much！

Hello Internet friend, I'm sorry for the late reply (I didn't receive a notification)!
imsplit is a MATLAB function from the R2018b Image Processing Toolbox, you could be missing it in your MATLAB installation or have an earlier version.
Can you verify if you have it or not by running
>> ver
on your MATLAB console?
P.S. I made some changes to the code, main is now located in z, you can call it using
[src,sfi,diff] = z.main(fname,sz), fname is path to an image and sz is the size argument from imresize, can be a scale value or in [nRow,nCol] format.


[Bug report] UI: The error message box does not fade away automatically

Version
main branch
Describe what's wrong
It's confusing when users switch schemas or tables on UI

Error message and/or stacktrace
N/A
How to reproduce
N/A
Additional context
No response

@danhuawang Is setting it to 4 seconds reasonable?


Requesting a build for x86_64-unknown-linux-musl:

Command sh -c node ./npm-install/postinstall.js
npm ERR! https://github.com/railwayapp/cli/releases/download/v3.5.2/railway-v3.5.2-x86_64-unknown-linux-gnu.tar.gz
npm ERR! FetchError: request to https://github.com/railwayapp/cli/releases/download/v3.5.2/railway-v3.5.2-x86_64-unknown-linux-gnu.tar.gz failed, reason: getaddrinfo ENOTFOUND github.com
npm ERR!     at ClientRequest.<anonymous> (file:///home/guillain/.nvm/versions/node/v18.17.1/lib/node_modules/@railway/cli/node_modules/node-fetch/src/index.js:108:11)
npm ERR!     at ClientRequest.emit (node:events:514:28)
npm ERR!     at TLSSocket.socketErrorListener (node:_http_client:501:9)
npm ERR!     at TLSSocket.emit (node:events:514:28)
npm ERR!     at emitErrorNT (node:internal/streams/destroy:151:8)
npm ERR!     at emitErrorCloseNT (node:internal/streams/destroy:116:3)
npm ERR!     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
npm ERR!   type: 'system',
npm ERR!   errno: 'ENOTFOUND',
npm ERR!   code: 'ENOTFOUND',
npm ERR!   erroredSysCall: 'getaddrinfo'
npm ERR! }

Well that's weird as first railway cli has a build for alpine (x86_64-unknown-linux-musl), and second, the download link is valid


Unable to set "queue.buffering.max.kbytes"

Hello!
When trying to change "queue.buffering.max.kbytes" configuration setting there is InvalidOperationException: No such configuration property: "queue.buffering.max.kbytes"

This was added in librdkafka 0.9.2. Try the latest pre-release package.


This doesn't say why this is now an opt-in feature in .NET Core 3.0

Is it due to performance? What kind of performance gains can we expect? Other reasons?

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

ID: 8a83deb2-e035-bb66-be4f-68709bcad341
Version Independent ID: 16438f35-f35d-c097-0903-ec17e83e051e
Content: Razor file compilation in ASP.NET Core
Content Source: aspnetcore/mvc/views/view-compilation.md
Product: aspnet-core
Technology: aspnetcore-mvc
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@Rick-Anderson  @pranavkm what's the primary reasons for Razor file compilation now opt-in?

Primarily this - https://github.com/aspnet/Announcements/issues/325. But in general build time compilation is much faster compared to runtime compilation. In previous releases, JITing Roslyn's binaries took up a bulk of the time in cold start performance.

https://github.com/aspnet/Announcements/issues/343

This will be documented in this issue.


Increasing memory and CPU limits for core/critical components

Increasing memory and CPU limits for kube-proxy, ingress-controller, calico and etcd based on observations from performance tests. The default eviction thresholds are set very low. Increased them to 1GB (hard) and 1.5GB (soft).
What this PR does / why we need it:
For network heavy workloads, the limits assigned to kube-proxy, ingress controller weren't enough. Thus need to be increased.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
The "requests" values are kept the same, and might be changed as part of another PR.
Idea is to launch pods so that they consume/reserve less resources to begin with. The limits are increased so that those critical components can grow if necessary.
Release note:

/cc @swapnilgm

@ggaurav10 I thought you would also increase the kubelet eviction settings (that's, I guess, what @mvladev also refered to)? Otherwise the next test will again require manual tweaking. Or is that a separate PR?
@rfranzke Can you and the team make a patch release and get it to dev for testing, because most of you will be out of office next week?

Let's first evaluate whether these settings are fine/work at all. We can deploy this PR and wait for the test results before it gets merged.

@vlerenc: I will be raising a separate PR for eviction policy. However, below is a request from Yariv, who is running the performance tests:

We have some concerns with the eviction threshold that will not be part of the change
(Today we experienced a problem that may relate to kubelet and eviction threshold in our canary cluster)
Therefore I recommend that in the dev landscape test the eviction threshold will use the default value to examine the real behavior in canary and production.

Should we wait until we deploy eviction threshold related changes?
@rfranzke: These numbers are decided based on data collected when Yariv and the team ran performance tests. As discussed on call, i will raise the PR again on separate branch on gardener so that it can be deployed without merging.

Closed in favour of #592, please follow up discussions there.

#593 PR for change in eviction thresholds dynamically based on machine size


Bug fix 616997: [LibMan] missing defaultProvider deletes all files

Adding validation of the manifest before running restore OnSave.
Also added validation of manifest for Clean operation.
[Writing test cases for LibrariesValidator. Sharing the changes for early feedback]

    private void OnViewClosed(object sender, EventArgs e)

we need to unregister from view.Closed here too.

Refers to: src/LibraryManager.Vsix/Json/TextviewCreationListener.cs:141 in 0de3927. [](commit_id = 0de3927fcac146e5c2caa49721d4c0824eecb5d0, deletion_comment = False)


APIs for integrating into existing event loop

Description
The Rive Advanced API requires that one uses rive's requestAnimationFrame. However, that is not practical for an HTML5 game engine:

All games need the game loop, not all games require rive animations. Thus we need to either override requestAnimationFrame to rive's globally, or to always include rive in builds even when it is not in use.
We may not be using requestAnimationFrame: when the window is not focused, requestAnimationFrame does not trigger, but some games require to continuously run, so we may for example switch to setTimeout during that time to ensure the game logic keeps on running, and rive might break there.
Generally it requires integrating rive more deeply into the core of the engine than it needs to be (when it could just be an extension)

Proposed solution
I am assuming rive is only doing this as a hand-holding way to ensure some code is called before and after rendering. However, since that is supposed to be the "Low level" API, it is expected either way that the API might not be convenient or hand-holding but in exchange allows complete power and flexibility.
Therefore, I think it would be great to be able to do something like rive.startFrame()/rive.endFrame() as an alternative (or full replacement) to rive's requestAnimationFrame

Hi! You're right in that we're creating a simple wrapper around the requestAnimationFrame function, mainly as a way to coordinate rendering calls that are deferred. This helps coordinate certain scenarios such as Rive assets with mesh's, where there's an offscreen context we draw to first before other main canvas2d draw calls. The rive-wrapped rAF function calls a (not-exposed) function called flushCanvasRenderers that helps coordinate that sequence.
If we exposed this flushCanvasRenderers function, you could certainly use your own game's rAF loop and then before calling the next frame, call this new exposed function to draw Rive content. And in the case of you switching to setTimeout, you should still be able to advance the artboard and stateMachine / animation by passing some elapsed time, however you want to track that, as you normally would within the rAF loop. Would this help with your integration?
Example of what this might look like:
function draw(time) {
    if (!lastTime) {
      lastTime = time;
    }
    const elapsedMs = time - lastTime;
    const elapsedSeconds = elapsedMs / 1000;
    lastTime = time;

    renderer.clear();
    if (artboard) {
      if (stateMachine) {
        stateMachine.advance(elapsedSeconds);
      }
      artboard.advance(elapsedSeconds);
      renderer.save();
      renderer.align(
        rive.Fit.contain,
        rive.Alignment.center,
        {
          minX: 0,
          minY: 0,
          maxX: canvas.width,
          maxY: canvas.height,
        },
        artboard.bounds
      );
      artboard.draw(renderer);
      renderer.restore();
    }
    // Draw Rive contents
    rive.flushCanvasRenderers();
    requestAnimationFrame(draw);
  }
  requestAnimationFrame(draw);

Yes, that sounds perfect. Thank you for your response!

Hi sorry for the delay here.. but we just introduced a similarly-named API into v2.10.0.
You can use your own rAF loop, just make sure to call rive.resolveAnimationFrame() at the end of the loop, like in the snippet a few messages up. We're updating docs right now to reflect the new API, but you should be able to try it out now


Add GitHub CLI to the build containers

Changes introduced with this PR
Normal github build runners have the github cli installed by default. To use this the workflows running on the ovirt build containers, it needs to be installed.
Two cases where it is very useful to have the github cli available:

Checking out a PR from a on: issue_comment workflow.  The base checkout action will checkout the main/master branch in this case. The PR needs to be explicitly checkout out.  Example: https://github.com/oVirt/ovirt-engine-nodejs-modules/blob/b36e174c0ba7ae1beeec9b604a87af01ef5b3f66/.github/workflows/comment-to-build-pr.yaml#L33-L40

Posting a comment to a PR with a link to a workflow run's summary page.  Example: https://github.com/oVirt/ovirt-engine-nodejs-modules/blob/b36e174c0ba7ae1beeec9b604a87af01ef5b3f66/.github/workflows/comment-to-build-pr.yaml#L60-L71

Are you the owner of the code you are sending in, or do you have permission of the owner?
Yes

thanks you for linking the examples. nodejs-modules is a bit specific so I guess it makes sense...
lgtm

I am surprised that something like this is needed, but ok.


Implement Navigation Restrictions

The Navigation restrictions/flow should be as indicated on the Navigation tab of this Google Doc:
https://docs.google.com/spreadsheets/d/1VZNK7t3upy9NMRw5jQL1q7N676Za4_2pTNPKQw-kCXA/edit?usp=sharing


Sample notebook with charts

@all-contributors add @paddyroddy for userTesting

@all-contributors add @ArthurD1 for userTesting

Closing as it's a duplicate of #72


Update server-software-support.md

Learn Build status updates of commit f0cd4ff:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed]

Cannot sync git repo to specified commit because ref +refs/pull/837/merge has been deleted or has been force pushed.
 If this is pull request, please ensure it is mergeable (no merge conflict) and open (not closed).

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Learn Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Remove the setting the TCCL because it confuses ShrinkWrap if SW is in...

...itialized
after the container is started.

Core - Full Integration Build 900 is now running using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd

Windows Build 1308 is now running using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd

Linux Build 1744 is now running using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd

Windows Build 1308 outcome was SUCCESS using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd
Summary: Tests passed: 3100, ignored: 66 Build time: 0:20:22

Linux Build 1744 outcome was SUCCESS using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd
Summary: Tests passed: 3100, ignored: 66 Build time: 0:22:31

Core - Full Integration Build 900 outcome was SUCCESS using a merge of d10af1a2f926e0d7e8737e19ac45b3c41e7a97cd
Summary: Tests passed: 2856, ignored: 373, muted: 1 Build time: 0:48:33


refactor: create extendable eslint config

Resolves #40
To test already-implemented eslint config (This has already been published as a sub-package, @pdap-design-system/eslint-config)

Visit this PR to data-sources
 and observe successful linting workflow run.
To test locally, check out the PR, cd client and npm run lint.
To test IDE integration, ensure you're using VS Code or another editor that has eslint and prettier extensions configured. In any js or vue file, find a string with single quotes and change it to use double quotes. Save the file. Ensure the string is auto-formatted to use single quotes again.

@josh-chamberlain Yes, I can see how this is unclear, sorry about that. And really, following the instructions in that issue is probably overkill for testing this anyways. I'll update in the morning with simpler, clearer AC.

@josh-chamberlain @mbodeantor updated the testing steps. Given that I already published the sub-package to npm and integrated into my PR to data-sources  for linting and client stuff in CI, the results of this PR are observable in my PR there.


Gesture issues

There are several issues related with events listeners and collision of gestures in Ionic 2 that should be fixed in order to provide the best UX experience closest to a native app.
At first, I am going to enumerate them, and then propose several solutions to each one. I think we should always try to fix it using native JS/CSS apis whenever it's possible.
Preventing scrolling in ion-content
It is desired to block scrolling when the following gestures are recognised:

[ ] Swipe to show the menu
[ ] Swipe to go back
[ ] Sliding an item
[ ] Range

Gesture collision

[ ] Among Slides, Swipe to go back, Swipe to show menu, Sliding items and Range
[ ] Between Refresh and Swipe Menu ( https://github.com/driftyco/ionic/issues/7011 )
[ ] Between two menus ( https://github.com/driftyco/ionic/issues/6826 )

Performance
We should try to avoid fullscreen touchmove/mousemove listeners that can prevent optimus scrolling performance.

[ ] Swipe from edges
[ ] Sliding items

https://github.com/driftyco/ionic/issues/7049
Future

[ ] 300ms delay hacks are not longer needed (WKWebView)
[ ] Touch-Action (WKWebView)
[ ] Passive event listeners

Solutions
Scrolling
To prevent scrolling is required to call preventDefault() on touchstart, mousedown or first scroll event, this is not always possible since several touchmove/mousemove events are required before a panx can be recognised:

Newest CSS properties like touch-action can help in Range, blocking scrolling only when the user is in fact dragging the range.
Extend the approach used by ion-backdrop to block scrolling.

https://github.com/driftyco/ionic/blob/a1a582b7a10e641e6f2e1dd0f2937c85db82394d/src/components/backdrop/backdrop.ts#L21-L23
Gesture collision
Same problem, swipe gestures need several events in order to be detected.
https://github.com/driftyco/ionic/issues/6726

https://github.com/driftyco/ionic/issues/7120

Following!

https://github.com/driftyco/ionic/issues/7066

I closed #7066.  I am imagining an implementation like this:
As a developer, I would like to ability to freeze/prevent scrolling of a particular scroll view, or even the entire app.  The use case would be something like drag and drop, or even when swiping open an ion-item.
The ideal implementation allows a "ScrollDelegate" or something similar instance to be injected into component that lets the user call operations on it.
class ScrollDelegate{
   constructor(){
   }

   freezeAllScrolls(){
   }

   freezeScrollView(scrollViewIdentifier:string){
   }
}

I am imagining an API that looks like this.
Thanks,
Dan


RUM-2451: Run functional tests against different AGP versions

What does this PR do?
Because of the way GradleRunner#withPluginClasspath works we were actually running E2E tests always with the AGP version plugin was compiled against.
This PR fixes it, now we will run tests for AGP 7.0.4 and AGP 8.2.0.
Also few issues were discovered thanks to the proper test runs, and they are fixed with this PR as well.
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Codecov Report

Merging #214 (4004475) into develop (ee172eb) will increase coverage by 0.27%.
The diff coverage is 0.00%.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop     #214      +/-   ##
=============================================
+ Coverage      77.93%   78.20%   +0.27%
- Complexity       186      187       +1
=============================================
  Files             22       22
  Lines            666      665       -1
  Branches          85       85
=============================================
+ Hits             519      520       +1
+ Misses           117      116       -1
+ Partials          30       29       -1

Files
Coverage Δ

...com/datadog/gradle/plugin/DdAndroidGradlePlugin.kt
54.97% <0.00%> (+0.90%)
:arrow_up:


根本就安装不上呢

$ npm i @lugia/mega-scripts
npm WARN deprecated<EMAIL_ADDRESS>One of your dependencies needs to upgrade to fsevents v2: 1) Proper nodejs v10+ support 2) No more fetching binaries from AWS, smaller package size
npm WARN deprecated<EMAIL_ADDRESS><EMAIL_ADDRESS>is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated<EMAIL_ADDRESS>cross-spawn no longer requires a build toolchain, use it instead
npm ERR! code ETARGET
npm ERR! notarget No matching version found for<EMAIL_ADDRESS>npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of '@lugia/mega-webpack'
npm ERR! notarget

yarn add v1.7.0
[1/5] 🔍  Validating package.json...
[2/5] 🔍  Resolving packages...
Couldn't find any versions for "@lugia/lugiad-loader" that matches "^1.2.4"
? Please choose a version of "@lugia/lugiad-loader" from this list: (Use arrow k
eys)
❯ 1.2.4-alpha.0
1.2.3
1.2.3-alpha-0
1.2.2
1.2.2-alpha-1
1.2.2-alpha-0
1.2.1
1.2.1-alpha.0
1.2.0
1.2.0-alpha.1
1.2.0-alpha.0
1.1.0
1.0.15

请问您是在安装这个lugia项目依赖的时候装不上呢，还是单独安装@lugia/mega-scripts安装不上呢？如果是当前这个项目的话，建议您用yarn 安装试下。

这个问题修复好了，您可以安装了，如果还是失败的话，建议您将项目中yarn.lock或package.lock.json文件删除后安装。


⚠ API (search) has degraded performance

In 3dc4589, API (search) (https://api.dev.package-search.services.jetbrains.com/search-packages) experienced degraded performance:

HTTP code: 200
Response time: 3144 ms

Resolved: API (search) performance has improved in 8f81a75 after 7 minutes.


Confusing bundling options & extension files

Hello everyone,
loving the ease of use of langium and how it's going to simplify my idea-to-dsl projects. I started a new one recently and followed the tutorials and guides on your website. I admin I have basically no experience with developing language servers and vscode extensions but I find confusing the two different approaches to bundling one can read in the code bundling section and in the building an extension section. It appears to me two different ways of doing (almost) the same thing are described (speaking about the sole esbuild part).
Moreover, I'd like to ask how these two concepts depends on each other cause that's not clear to me after reading through the guides:

the main.ts file with the language server initialitation
the extension.ts file with the vscode extension code

Speaking about having a "mylanguage" project, I'd like to separate my core language code (grammar, validation, generation) from the extension code and from the cli code and I'm not sure how those files relate one another when such a division should occur.
Thanks in advance,
Kristian

Hey @kristiannotari, thanks for the question.
So basically, the building an extension tutorial assumes that one has already read the code bundling guide. The code bundling guide goes more in depth about why code bundling (i.e. the process of creating just a single standalone JavaScript file) in the context of Langium is useful or maybe even necessary, and how one can accomplish this using different setups. For example in a vscode extension where you need to bundle both the language server (main.ts) and the extension itself (extension.ts), or for webworkers, where you need special bundling options.
The building an extension tutorial is more about the surrounding infrastructure - i.e. how do I set an icon, create a .vsix file and install that in any vscode instance.

I'd like to separate my core language code (grammar, validation, generation) from the extension code and from the cli code and I'm not sure how those files relate one another when such a division should occur.

From an architectural point of view, extension and language code are recommended to be split into two separate processes. Language servers (such as one built using Langium) are designed to run in a separate process (or at least separate thread). This is the main reason why we recommend to build two separate bundles - so that your project has two entry points. One is the entry point for vscode to start your extension. The other is called by your extension to start the language server.
If you want to have a more sophisticated project setup, it might make even sense to split the language server and extension into separate packages. We've done so for the core langium repo (the grammar language itself is written using Langium). See in there the langium directory which contains the language and the langium-vscode directory which only contains the vscode extension. You need some sort of workspace management solution to link the packages together like npm workspaces.

Thanks for the answer! Yeah I've already done a monorepo setup with pnpm workspaces cause I'll need several packages and utilities out of the "core" language one and, since I was there, I wanted to split the cli and vscode extension too.
So from what I can understand reading your answer, the vscode extension needs both the extension entry point and the main entry point. One basically gives some context to the extension and start the client, which will connect to the language server being spawned in main? Is this a convention in naming files and exports of such files for vscode extensions or what? New to vscode extension, sorry for asking.
So for the bundling bit, if I just copy/paste the bundling solution provided in the "building an extension" page nothing would work (if I've understood you correctly) cause that way I would be bundling the extension file only, without the language server (as of the code generated by yeoman generator for the tutorial), right?

Note: Microsoft's documentation for creating VS Code extensions is very good!
https://code.visualstudio.com/api/working-with-extensions/bundling-extension


Discuss(streaming): allow downstream consuming upstream buffer with different progress？

We have fixed a part of the issue https://github.com/risingwavelabs/risingwave/issues/13678, But there are still some "alignments" as @BugenZhao  said

If there's a lot of downstream jobs and then a lot of actors, this might be a significant improvement. On the other side, the inputs are executed concurrently and permits (https://github.com/risingwavelabs/risingwave/pull/6170) are returned concurrently as well.
However, it's still worth noting that there's still an "alignment" where we have to wait for all dispatchers finishing the dispatching. The asynchronization is achieved by exchange buffers.

more specifically, our dispatcher sends stream messages to the downstream one by one. In that model, the sender must wait for all downstream receivers to accept the stream message to send the next message. Under this model, If one of the downstream actors is idle, It still needs to wait for other downstream actors to process this stream message.
This is especially harmful to performance, even for temporary skewness. For example, the metrics graph is one of the real-world cases. The green line at the top is the total throughput of the fragment, sum throughput of different parallelism. And the other lines are the other specific actor's throughput.
There are 8 parallelisms and We can see sometimes, there are only 3 or 2 parallelism working. And this case happens in one barrier so the "alignment" is not introduced by the barrier.

This case can happen easily in some workload.
CREATE TABLE fact(v int, k int);
CREATE TABLE d(k int PRIMARY KEY);

CREATE MATERIALIZED VIEW mv AS
SELECT sum(v)
FROM fact
JOIN d ON fact.k = d.k
group by d.k;

                                                  QUERY PLAN
---------------------------------------------------------------------------------------------------------------
 StreamMaterialize { columns: [sum, d.k(hidden)], stream_key: [d.k], pk_columns: [d.k], pk_conflict: NoCheck }
 └─StreamProject { exprs: [sum(fact.v), d.k] }
   └─StreamHashAgg { group_key: [d.k], aggs: [sum(fact.v), count] }
     └─StreamExchange { dist: HashShard(d.k) }
       └─StreamHashJoin { type: Inner, predicate: fact.k = d.k }
         ├─StreamExchange { dist: HashShard(fact.k) }
         │ └─StreamTableScan { table: fact, columns: [v, k, _row_id] }
         └─StreamExchange { dist: HashShard(d.k) }
           └─StreamTableScan { table: d, columns: [k] }
(9 rows)

Let's suppose the agg is the bottleneck and do the DMLs
insert into fact select generate_series(1, 10000), 1;
insert into fact select generate_series(1, 10000), 2;
insert into fact select generate_series(1, 10000), 3;

insert into d select values(1,2,3);

In that case, the join will amplify the (1,2,3) to 30000 records and send to the downstream. Then the StreamExchange { dist: HashShard(d.k) } can receive a serial of events with the same distribution key like
(1,1), (1,2) ... (1,10000), (2,1), (2,2) ... (2,10000), (3,1), (3,2) ... (3,10000)

This issue could also happen when multiple MV depending on the same MV.
So maybe we should allow downstream consuming upstream buffer with different progress.

Will it still be blocked by barrier?
Even if some chunk is finished ahead in one partition, all executors still need to wait for all barriers to be collected from each parallelism.

I suppose this is talking about data inside one epoch i.e. between 2 barriers.
If so, it seems that the only solution is to use a larger exchange buffer size? From my understanding, the multiple downstream actually is consuming with different progress, but the channel size is limited, in other words, the max lag between the fastest and slowest consumer is limited.

the multiple downstream actually is consuming with different progress, but the channel size is limited

Exactly. That's what I meant by

The asynchronization is achieved by exchange buffers.

I suppose this is talking about data inside one epoch i.e. between 2 barriers.
If so, it seems that the only solution is to use a larger exchange buffer size? From my understanding, the multiple downstream actually is consuming with different progress, but the channel size is limited, in other words, the max lag between the fastest and slowest consumer is limited.

Yes, but I am not sure if the "side backpressure" makes sense. The slow actor can backpressure the other parallelism. And the CN's network latency will not be the only influencing factor of the exchange buffer size.


AbortWithError is everywhere but doesn't stop handlers from continuing

This code is scheduled for replacement by the new RPC layer


Fix geneve options parsing

@gconnell Hi, I saw that you closed #527 using the SetTruncated function, I was wondering why ? any reason to not use it ? thanks

Totally my mistake, I meant to merge it and apparently hit the wrong button :(


Add JWTAuthenticator API and initial controller

This PR adds support for a new authenticator: JWTAuthenticator. A JWTAuthenticator can validate and extract user information from JSON Web Token's (JWT's). Another way to think about this CRD is that it lets users apply OIDC authentication to their cluster at runtime.
kind: JWTAuthenticator
apiVersion: authentication.concierge.pinniped.dev/v1alpha1
metadata:
  name: ja
  namespace: concierge
spec:
  issuer: https://dex.dex.svc.cluster.local/dex
  audience: pinniped-cli
  tls:
    certificateAuthorityData: LS0t...

Design goals:

Make for as seamless an integration as possible with the Pinniped Supervisor.
Follow OIDC authentication configuration knobs from Kubernetes to increase familiarity with what a JWTAuthenticator does.
Follow OIDC authentication functionality from Kubernetes to make it easy to switch from built-in Kubernetes OIDC authentication to Pinniped-provided OIDC authentication.
Get something working as fast as possible. :)
Leave footholds for adding the below anti-goals later in this feature's lifetime.

Anti-design goals (we will most likely do all of these later):

Allow user to chose their own username/groups claim.
Allow user to specify a verification key set outside of the normal OIDC discovery procedure.
Allow user to specify allowed signing algorithms.
Add a demo for this feature.

Notes:

This initial implementation has a horrible 10 second period before the JWTAuthenticator starts working. See https://github.com/vmware-tanzu/pinniped/issues/260 for more information.
This initial implementation also buries OIDC discovery and authentication failures in the logs. For example, if the user were to configure their JWTAuthenticator with the wrong issuer, they might see an error like this in their log:
E1208 14:29:13.076227       1 oidc.go:224] oidc authenticator: initializing plugin: 404 Not Found {"errorCode":"E0000007","errorSummary":"Not found: Resource not found: defaults (AuthorizationServer)","errorLink":...
since discovery happens on a separate goroutine, this log line may be far away from the actual authentication failure.
We do not have an integration test that tests the full Pinniped Supervisor/JWTAuthenticator end-to-end flow. See https://github.com/vmware-tanzu/pinniped/issues/263.

Release note:

Added new JWTAuthenticator API for validating and extraction user information from JSON Web Tokens.

Nice, excited to see this close already!
After some local building and configuring, I was able to try this out with my pinniped-proxy service and concierge successfully does the oidc id token exchange for the certs, great! The request is proxied through to the api server but gets a 401 there. The reason is that the resulting client certs are actually identifying the user as CiQwOGE4Njg0Yi1kYjg4LTRiNzMtOTBhOS0zY2QxNjYxZjU0NjYSBWxvY2Fs which is a b64 encoding of $08a8684b-db88-4b73-90a9-3cd1661f5466local% . AFAICT, the value should not be b64 encoded, and I expected it to be the email field from the id_token<EMAIL_ADDRESS>{
  "iss": "https://<IP_ADDRESS>:32000",
  "sub": "CiQwOGE4Njg0Yi1kYjg4LTRiNzMtOTBhOS0zY2QxNjYxZjU0NjYSBWxvY2Fs",
  "aud": [
    "second-cluster",
    "third-cluster",
    "default"
  ],
  "exp":<PHONE_NUMBER>,
  "iat":<PHONE_NUMBER>,
  "azp": "default",
  "at_hash": "AeIj4BgZnt38Z2oHHIxSMQ",
  "email"<EMAIL_ADDRESS>  "email_verified": true
}

I see in the description that you have the anti-goal for this PR of "Allow user to chose their own username/groups claim.", but wouldn't email be a sensible default for oidc id_tokens ?
I confirmed that if I explicitly update the binding that I'm using to test this with the (b64-encoded?) value, the requests succeed:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: CiQwOGE4Njg0Yi1kYjg4LTRiNzMtOTBhOS0zY2QxNjYxZjU0NjYSBWxvY2Fs

Thanks!

Thanks for the feedback @absoludity ! Really appreciate you weighing in.
Yes, as you stated, this initial implementation is very much a minimum viable implementation. I am confident that we will give the user the ability to chose which claim holds the username in the future.

@absoludity - in case you hadn't seen it, we did end up adding the ability to configure the username and groups claims in this JWTAuthenticator API: https://github.com/vmware-tanzu/pinniped/tree/main/generated/1.19#k8s-api-go-pinniped-dev-generated-1-19-apis-concierge-authentication-v1alpha1-jwttokenclaims. Wanted to let you know since I believe you were asking about it.

Excellent,  thanks!
On Fri, 18 Dec 2020, 4:19 am Andrew Keesler<EMAIL_ADDRESS>wrote:

@absoludity https://github.com/absoludity - in case you hadn't seen it,
we did end up adding the ability to configure the username and groups
claims in this JWTAuthenticator API:
https://github.com/vmware-tanzu/pinniped/tree/main/generated/1.19#k8s-api-go-pinniped-dev-generated-1-19-apis-concierge-authentication-v1alpha1-jwttokenclaims.
Wanted to let you know since I believe you were asking about it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vmware-tanzu/pinniped/pull/258#issuecomment-747579330,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADZO3QPHLPUE2BA2AH3UJLSVI4SPANCNFSM4UOBU5XA
.


Web -  Number of replies are not dynamically updating when user adds comments by editing description

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Make a money request from account A to account B
Open the IOU details page by clicking on the IOU preview component twice on account A
Go to account A and post something and observe the reply count on account B
Change the amount first then description (observe the reply count on account B)
Reload the page on account B and observe the reply count again

Expected Result:
Reply count should update dynamically without manual reloading
Actual Result:
Reply count does not update dynamically if account A updates the IOU description field
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.57-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/48f8c116-7756-489c-97a8-bce11140438c
https://github.com/Expensify/App/assets/115492554/0c2cfbc1-879b-45b1-bcbc-4e13f50bc10d
Expensify/Expensify Issue URL:
Issue reported by: @Nathan-Mulugeta
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692047239826689
View all open jobs on GitHub

Similar to https://github.com/Expensify/App/issues/25704#issuecomment-1696384768, seeing as this is low-priority and more of a "nice to have", I am reducing the payscale for this one to the following:

**Bug reporting bonus: $50
Contributor fix: $250
C+ proposal/PR review: $250**

Just noting this before I add the labels to accept proposals.

I agree that this is something we should fix, adding External label

Labels added, not overdue

Problem Overview:
Action Performed:

Make a money request from account A to account B over the internet.
Open the IOU details page by clicking on the IOU preview component twice on account A.
Go to account A and post something and observe the reply count on account B (it increases).
Change the amount first then description (observe the reply count on account B) (it doesn't change).
Reload the page on account B and observe the reply count again (it changes now).

Expected Result:
Reply count should update dynamically without manual reloading, as observed in step 3.
Actual Result:
Reply count does not update dynamically if account A updates the IOU description field.
Workaround:
Unknown.

Investigation Summary:

Initial Code Inspection:

We examined various files in the provided source code. Specifically, we looked at the logic in IOU.js related to setting the money request description and amount. Both functions (setMoneyRequestDescription and setMoneyRequestAmount) use Onyx.merge to update their respective properties in the Onyx store.

Diving Deeper:

We inspected the TransactionUtils.js file and identified the getDescription function. This function fetches the IOU description (or comment) from a transaction. A noteworthy comment in this function highlighted that the comment does not have a "modified" counterpart (modifiedComment).

Key Insight:

Many systems maintain both an original and a "modified" version of a property to track changes and activate actions like updates or notifications. The lack of a modifiedComment for the IOU description suggests that the system might not be recognizing or handling changes to this description in the same manner it does for other properties with both original and modified versions.

Potential Issue:

The absence of a modifiedComment counterpart could be a factor in the observed issue. If the system relies on discerning differences between original and modified versions to trigger real-time updates, not having such a mechanism for the IOU description might explain why the reply count doesn't dynamically update.

Next Steps:

Our plan was to delve into:

The tracking and handling of changes to other transaction properties (those with original and modified counterparts).
The mechanisms that instigate real-time updates or notifications for these properties.
The reasons the IOU description lacks a modifiedComment counterpart and how this absence might affect real-time update mechanisms.

Problem Statement:
Users are facing a real-time update issue. When they modify the IOU description, the reply count doesn't refresh automatically. They have to reload the page to see the updated count.
Root Cause:
Upon code inspection, it's evident that while there are mechanisms in place to dynamically update certain properties (like the money request amount), the IOU description lacks this functionality. Specifically, there's no modifiedComment counterpart for the IOU description, which suggests that description changes might not trigger real-time updates like other properties do.
Proposed Solution:

Introduce a modifiedComment counterpart for the IOU description. This should help in tracking changes and triggering real-time actions in the same way as other properties.
Ensure that components displaying the IOU description are subscribed correctly to the relevant Onyx key and are set up for dynamic updates.
Ensure that the backend/API is set up to send real-time updates to all clients when the IOU description is updated. This might involve a review of real-time communication protocols like websockets.

Alternative Solutions Explored:
We could consider a more global solution, where we have a universal change tracking system for all properties. This would involve a deeper integration and could potentially fix similar issues in other parts of the system. However, this would also be more complex and time-consuming to implement.

This has been open a while without many proposals, doubling the bounty on this one.

could you double-check the requirements? because now any changing action is not countable (replay count)
you can check the latest version as per the bug video now Even if you changed the amount it does not count as a replay count.

@izarutskaya @stephanieelliott is this still a valid bug?

I too have the same question. Is this still a valid bug?

I don't think this is happening anymore, I just retested and the reply count is now updating without having to reload the page 🎉
Tested on Chrome and Safari


Extra oxeia in U+03D7 GREEK KAI SYMBOL

The glyph for U+03D7 GREEK KAI SYMBOL should not include a diacritic above it.

Hi, thanks for the issue. But I don't think I'll fix this or work on autonoe much further.
Two reasons:

This was a very brief curiosity project and consisted solely of tweaking the style of the existing "misc fixed 7x14b" font. And by "style", I mean at most something like making a 1-pixel stroke 2-pixels. I don't use autonoe for anything and doubt many others would either.
This particular issue also exists in the original 7x14b font.

I'm not sure who exactly contributed this glyph, but the font file (and also the AUTHORS file) can be downloaded from https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html (under "Download" > ucs-fonts.tar.gz > 7x13B.bdf).

Closing as wont-fix. Please see/contact upstream project.


Game Mechanics

Description:
Game mechanics are not working properly after 2 or 3 waves of the game.
To much is happening on the screen.

Some item drops can not be picked up, even when the corresponding bar is low.
Some enemies take more than 1 shot to kill (this could be due to enemy stacking)

1: Enemy damage on collide: Player takes 0.5 damage on collision with enemies.
        for enemy in enemies:
            if self.rect.colliderect(enemy.rect):
                self.health -= 0.5

2: Enemy stacking:
Enemies overlapping each other is staying, as this adds to overall player damage reduction when colliding with a pack of enemies.
3: Over healing: Healing is capped at 100%
                elif drop["type"] == "health" and player.health < player.max_health:
                    if player.health + 10 > player.max_health:
                        player.health = player.max_health
                    else:
                        player.health += 10


Single day should be specified by input also when mode:range && allowInput:true

Thank you for your lovely product.
Issue
About mode:range && allowInput:true.
I think mode:range should also be selectable single day. (In fact, the picker UI allows this
)
So, id2 and id4 at following table are not good I think.

id
precedure
result
expected

1
input 2019/1/1 to 2019/1/1 or 2019/1/1  press Enter
input area 2019-01-01  selected value 2019-01-01
(same as result)

2
(after #1)focus out input area
input area none  selected value none
input area 2019-01-01  selected value 2019-01-01

3
pick 2019/1/1 and 2019/1/1
input area 2019-01-01  selected value 2019-01-01
(same as result)

4
(after #3)focus in input areapress Enterfocus out input area
input area none  selected value none
input area 2019-01-01  selected value 2019-01-01

Reproduction environment
https://codepen.io/anon/pen/gywora?editors=1010
Will fix
I think documentClick()'s following block is no need, isn't it?
        if (self.config.mode === "range" && self.selectedDates.length === 1) {
          self.clear(false);
          self.redraw();
        }

https://github.com/flatpickr/flatpickr/blob/master/src/index.ts#L1358
PR
I will create. -> created.
https://github.com/flatpickr/flatpickr/pull/1727
thankyou!

To maintainer:
Could you review it?

I thing this fix is necessary


[Build] Consider Swift on Clang Modules as build order dependency

Currently swiftpm fatalError() when some swift package is dependency
on a package containing c languages or mixed languages. This shouldn't
error out. Swift will not be importable to c modules but there could be
swift modules in that package which want to use some external deps.
Considering it as a build order dependency should be ok.

I am also fine with not considering it as build order dependency and just ignore it in general for clang modules but in any case erroring or rather fatalError() out seems wrong.

I agree with not fatalError-ing out, but I don't understand this comment:

Swift will not be importable to c modules but there could be swift modules in that package which want to use some external deps.

You mean the C target might want to use some of the external dependencies declared only on the Swift target?

Yes, consider this Package with two modules A(ClangModule) and B(SwiftModule)
├── Package.swift
└── Sources
    ├── A
    │   ├── clib.c
    │   └── include
    │       └── clib.h
    └── B
        └── main.swift

so this package fatalErrors if you declare a (swift) dependency in Package.swift

Oooooh, that seems horrible.

Yes, for now let us just fix it to consider a build order dependency.

Can we get a test case here?
Also, are you sure we don't need to do something special in Build to avoid making the C target link against the Swift target (which I'm not sure makes sense). It is unfortunate we don't explicitly model the build order vs link inclusion requirement internally.

Done. It won't try to link with the ClangModule because we filter the modules before making a product.
Yea all this is very fragile right now ☹

Can we not test this without fixtures?

(the problem with the fixtures test is it isn't obvious anywhere in the test code what is trying to be tested, would be very easy to drop that part when refactoring tests)

Added but it isn't a good one, this was best I could do right now...

Sounds like a great improvement.  Thanks @aciidb0mb3r

What's the next step here?  I'm fine with this since it is definite progress, even if not ideal.  @ddunbar ?

I agree. I think we should track improving our test infrastructure for this situation somewhere else, it seems useful to be able to test this on a pseudo-package layout.


Custom webpack configs: "Full control + remote" mode

Issue details
According to the documentation, it is possible to customize the webpack config used by Storybook like so: https://storybook.js.org/configurations/custom-webpack-config/#full-control-mode--default
Steps to reproduce

Create new storybook (React)
Create .storybook/webpack.config.js
Populate as per the documentation: https://storybook.js.org/configurations/custom-webpack-config/#full-control-mode--default e.g.:

const path = require('path');

module.exports = (baseConfig, env, defaultConfig) => {
  defaultConfig.module.rules.push({
    test: /\.png$/,
    include: path.resolve(__dirname, '../'),
    loader: require.resolve('ignore-loader')
  });

  return defaultConfig;
};

npm run storybook
Notice error message:

/Users/mholland/Documents/GitHub/pvc-core/webui/.storybook/webpack.config.js:4
  defaultConfig.module.rules.push({
               ^

TypeError: Cannot read property 'module' of undefined

Seems like the third parameter to the function is not supplied?
Please specify which version of Storybook and optionally any affected addons that you're running

@storybook/react 3.3.10

Affected platforms

Mac OS X High Sierra
Node 6.11.2
NPM 3.10.10

guys, it took me hours to figure out that the docs are not in sync with your current stable release. Just saying. Others will most likely have similar problems and won't be able to get started because the docs basically tell you something that is not true (yet). Maybe it's a good idea to fix the docs? Or at least provide a big fat warning that they are for the current alpha release?

I have to add a more mean comment than my predecessor. This is very unprofessional and completely unacceptable. It's everything that is wrong with the javascript ecosystem and community.
Storybook is quite a popular library and should lead the way and inspire good engineering practices. But I guess I should set the default bar fora javascript library at "hobby project" for my own sanity in the future.
I apologize if this is too harsh but it has cost me an entire afternoon.

@ndelangen @storybooks/team  how can we set up deploying https://storybooks.js.org from release branch instead of master?

@Hypnosphi I believe running npm run deploy:manual on the release branch will do it.
Not sure what the normal deploy process is for pages though

Looks like automated deploy was set up recently, so even if I deploy manually from release branch, it will get overwritten with automatic deploy from master

thanks for looking into it!

@thenickname @moljac024
I published docs manually from release branch. It should reflect current stable release state since now
https://storybook.js.org/configurations/custom-webpack-config/#full-control-mode--default
We're going to make https://storybook.js.org a mirror of https://storybooks.netlify.com/ which is deployed from release branch authomatically

@Hypnosphi thank you for doing this!

@Hypnosphi @igor-dv I am getting that error in Jest testing.
TypeError: Cannot read property 'module' of undefined.
However it works in npm run storybook.
I am in 3.4.3 and storybook/vue.
I use "jestWebpackResolver" module with option "webpackConfig": "./.storybook/webpack.config.js".
I tried above old implementation and it is giving me same error. Any idea?
Is that ./.storybook/webpack.config.js right one for import?

Your webpack config in the .storybook dir is probably partial. If you are using an extended mode, it doesn't even matche to what webpack wants. All these because storybook manipulates this cnfig before passing it to webpack. So you can't use it as is for other tools.


Add Cosmos signer: TurnkeyDirectWallet

Summary & Motivation
Experimental Turnkey Cosmos Signer for CosmJS.
TurnkeyDirectWallet is a drop-in replacement for DirectSecp256k1Wallet that conforms to the OfflineDirectSigner interface.
Rendered READMEs:

https://github.com/tkhq/sdk/tree/cosmos-experimental/examples/with-cosmjs
https://github.com/tkhq/sdk/tree/cosmos-experimental/packages/cosmjs
https://github.com/tkhq/sdk/tree/cosmos-experimental/

How I Tested These Changes
Ran the with-cosmjs example script:
Compressed public key:
	03be8c88bc5e77aaa9a65ba29f38e892e68d736778fce1bf462d27bfaa3beefc93

Wallet address:
	cosmos1kaefh2tuh7syp8x0zy9a3wspnhyn50rulsq5fy

Wallet on explorer:
	https://explorer.theta-testnet.polypore.xyz/accounts/cosmos1kaefh2tuh7syp8x0zy9a3wspnhyn50rulsq5fy

Account balance:
	[{"denom":"uatom","amount":"2794000"}]

Sent ATOM to cosmos1s2qeaefnchywaayfuxkdw7g8stcy47jkjayqxd:
	https://explorer.theta-testnet.polypore.xyz/transactions/F9283C363DD716C11B87EBACA2451682E78BAD8B018D02C0F47380C60B332EA6

🔥🔥🔥🔥


Adding music from SoundCloud not working anymore

Can't find a single link that works, all show the same error:
Unable to stream song
Sorry, we were unable to load that song from Soundcloud. Not all songs are currently streamable

I think SoundCloud made some changes to their api recently. Might have broken the demo site.

Sorry to hijack this issue, @captbaritone are you a friend of @jnberg16? He was developing this project fairly heavily until the beginning of the year, and then seemed to stop. I hope he is OK.

Yeah, he’s still around. Just focusing on other things. I’m sure he’ll be
back eventually when he has time again.
On Wed, Nov 24, 2021 at 9:11 AM evoyy @.***> wrote:

Sorry to hijack this issue, @captbaritone
https://github.com/captbaritone are you a friend of @jnberg16
https://github.com/jberg? He was developing this project fairly heavily
until the beginning of the year, and then seemed to stop. I hope he is OK.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jberg/butterchurn/issues/71#issuecomment-978070518,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABHXL3JOPBZEZQFUPOVGEDUNUMDFANCNFSM5IR2TVFQ
.

--
Jordan Eldredge
jordaneldredge.com
@captbaritone http://twitter.com/captbaritone

Sorry to hijack this issue, @captbaritone are you a friend of @jnberg16? He was developing this project fairly heavily until the beginning of the year, and then seemed to stop. I hope he is OK.

Hi @evoyy , yea sorry, things just been really busy lately. Hoping to get things going again soon, I would like to fix the Soundcloud and iOS issues.
Sorry again for the delay, and thanks for the concern

What is your email

@lexum0 I am sorry.


add /debug/pprof endpoint when running tool with --metrics flag

Checklist

[ ] tests added
[x] commits conform to the Commit message format
[ ] documentation updated

Squash commit message
Add /debug/pprof endpoint to tool when running a http listener (currrently done with the --metrics flag) for debugging purposes. Should not affect anything other then slightly bigger binary unless listener is running and endpoint accessed.
Info
Optional informative text (not to be included in commit message) relevant to reviewers.

It just terminates if there is no web server?

Has far as I could understand it should not do any profiling unless the endpoint is called, i.e. with no webserver shouldn't impact. The import has an init which registers some handlers to default https muxer. (unfortunatly no way to avoid having that init run). And to my understanding shouldn't be run. TBH couldn't conclusively  find this to be the case, hence the use of the word "should".

It just terminates if there is no web server?

Has far as I could understand it should not do any profiling unless the endpoint is called, i.e. with no webserver shouldn't impact. The import has an init which registers some handlers to default https muxer. (unfortunatly no way to avoid having that init run). And to my understanding shouldn't be run. TBH couldn't conclusively  find this to be the case, hence the use of the word "should".

calls are e.g.
http://localhost:[metricsport]/debug/pprof/profile?seconds=30 to do 30s CPU profile

calls are e.g.
http://localhost:[metricsport]/debug/pprof/profile?seconds=30 to do 30s CPU profile

That's the impression I got as well from a quick googling. Just wanted to make sure that it won't kick off any profiling when running normally.

That's the impression I got as well from a quick googling. Just wanted to make sure that it won't kick off any profiling when running normally.


Multi-canvas experiments

This is an experiment in napari multi-canvas with an attempt to minimize breaking API changes. Tests are almost green!
There are some hacks and inefficiencies here, but in general it's working. The idea is you get a list of canvases (_MultiCanvas objects) as part of the ViewerModel. These canvases take ownership of the dims and camera, allowing you to have multiple views of the same data.
ViewerModel maintains dims and camera properties that simply delegate to a primary/active (right now just the first) canvas.
Since slice/view data currently lives on the layer model, the data must be resliced whenever the canvas changes. I'm going to start looking at this next.
Here's a brief demo:
https://github.com/napari/napari/assets/1231828/85dd0a7c-a039-421d-943d-6167adb12425

Here's an updated screenshot of this WIP
import napari
import numpy as np

viewer = napari.Viewer()

viewer.open_sample('napari', 'cells3d')
viewer.add_canvas()
viewer.add_canvas()
viewer.add_canvas()

viewer.dims.ndisplay = 3
viewer._canvases[1].dims.order = (2, 1, 0)
viewer._canvases[3].dims.order = (2, 0, 1)

if __name__ == "__main__":
    napari.run()


Type slices identities needs to include their instances

Consider
module SameTypeDifferentInstance1 where

data SameTypeDifferentInstance = SameTypeDifferentInstance

instance Eq SameTypeDifferentInstance where
    (==) SameTypeDifferentInstance SameTypeDifferentInstance = True

and
module SameTypeDifferentInstance2 where

data SameTypeDifferentInstance = SameTypeDifferentInstance

instance Eq SameTypeDifferentInstance where
    (/=) SameTypeDifferentInstance SameTypeDifferentInstance = False

We get and ambiguous instance error because we identify both SameTypeDifferentInstance.

What we did with f12fee8ed9663f1077a5fdfd6d3f629afe44337a is to include the module name instead.

A better solution is to just remove one of the duplicate instances

By closing #74 we also closed this one!


Moves SWFM timecodes at the time of the first record.

There was a player startup delay -- we don't want that in the recorder movie.
r? @mbebenita

This makes a huge difference in .swfm perceived startup time.

Reviewed 1 of 1 files at r1.
Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

Comments from the review on Reviewable.io


HARP-4923: Add default controls buttons.

I am fine with this code as is, but I am not an expert on it. Perhaps you want to get a second opinion


Better Sass/Less support for css files

So, right now when we initiate a project, we are generating less by default.
Suggestion:
Generate css with .css extension and then when initiating a new project using --less or --sass, rename the files so that the user will not get confused when he opens the respective stylesheets
Any suggestions @developit @rkostrzewski

Move all css to plain .css files and then when initiating a new project using --less or --sass, we should rename the files so that the user will not get confused when he opens the css files.

+1 for better editor support

We can use renamer for moving the files to respective format as specified in the arguments.

@lukeed is working on a new release with support for template. We should wait until than.

the head/body template?
can you refer the PR here?

We should keep in mind that if the files are with the same contents, they may not be compiled by the specified preprocessor less/sass/styus etc, which can lead to some confusions at the beginning.
One solution is to keep them simple, and do not use features from different css preprocessor.

@prateekbh There is no PR yet. Since we don't want to introduce thounsands flags to the CLI.
IIRC, the result will be like preact new my_project --template=less
This is install all necessary dependencies and create a project with less styling in it. By copying a folder from the main repo.

@thangngoc89 Luke's templating will be a part of 2.0.0 (major release), but until then it is better to handle this issue as I suggested. Since there are quiet a few issues where users got confused because of the default .less format.

Hi I managed to do that without adding new deps. Just used copy & rimraf which are already there, and they do the work. Hope it's okay, until we have better options mention above.

@yavorski can you make a PR?

#230 overwrite #228 ... and switching .less files to .css in exaples/full template...

This is good to go. Closing.


CIF App Privacy Impact Assessment

Describe the task
Draft Privacy Impact Assessment for the CIF application.
Acceptance Criteria

[x] draft
[ ] review with PO and program area
[ ] submit to NRM privacy group

Notes

Required before launching Version 1 (MVP)

@pbastia @matthieu-foucault Tagging for the "CIF Flow Diagram" for STRA.

https://bcgov.sharepoint.com/:w:/t/00608-ScrumTeam/ERTew6jGjxZIioOOwEk4UXIBPJLEpuBOku3-d9rc2S9KOA?e=pkT8gF
https://bcgov.sharepoint.com/:w:/t/00608-ScrumTeam/EQzd6K3RjMVBjer30tSAtAoBJSHIOVElHp5Cvq5PiIrAcg?e=cheemZ


Additional / (slash) character in HTTP requests

I've noticed whilst attempting to connect a sender to a receiver (Immediate Activation) that there are additional "/" characters in the HTTP Requests. To be clear, I'm not referring to trailing slashes (as previously raised in other tickets) but duplicate "/" in the middle of a URL.
When pressing "Activate", a GET request is sent to the sender and a little later the receiver - however a pcap reveals that there is an additional "/" after the API version number - resulting in HTTP 404 error message. For example:
GET /x-nmos/connection/v1.0//single/receivers/70b3d504-2d09-1000-8000-000000000099

Manually performing this request (without the extra slash) is successful:
GET /x-nmos/connection/v1.0/single/receivers/70b3d504-2d09-1000-8000-000000000099
Apologies if I'm missing something obvious here, but so far as I can tell this is a bug?

Thanks for the report! I'll get that fixed.


Add claims field to TokenRequestOptions

Add claims field as part of CAE addition to azidentity.

@chlowell please review this ask and update the cost for the work.

Hi from the Microsoft Graph SDKs team 👋
We're working on the implementation of CA/CAE in the latest generation of our SDKs, so far the experience with azure identity has been great.
However, we need this dependency to fully close the loop on our end.
Do you have any timeline to ship CAE support in azure identity? Could we at least add the field in the next minor/patch so we can pass the information from our client and things will kick in when the implementation work is done? (happy to submit a PR to add the field).
Thanks for the insights!
CC @RickWinter @catalinaperalta @chlowell


Not able to highlight DC into the map.

Can you please add the feature to fill the DC into the map.

Plus one

Same here


View related Topic Guide(s) link(s) with Topical Guide section header if available

I WANT to be able to see available topical guides
SO that I can access that specific form of content
GIVEN I am on the learn page
WHEN I scroll down to Topical Guides section
IF there are topical guides available
THEN I can see the Topical Guides header and the specific topical guides

Design : https://zpl.io/VKGvkNR

We've redesigned the website completely and this issue does not apply anymore.


[enhancement]: Controlnet - Depth Hand Refiner

Is there an existing issue for this?

[X] I have searched the existing issues

Contact Details
No response
What should this feature add?
Depth HandRefiner controlnet is just amazing for fixing hands on SD. Is it possible to use it on Invoke? I hope "yes"
Related links:
https://github.com/wenquanlu/HandRefiner
https://huggingface.co/hr16/ControlNet-HandRefiner-pruned
Alternatives
No response
Additional Content
No response

This has been added as a community node. Until an openly licensed hand model (i.e., not MANO) is available, we won't be incorporating this into the core.


Hide DE icon while going to Live Preview

[Issue] https://github.com/Samsung/TAU-Design-Editor/issues/187
[Problem] Empty content after steeps:
1. Go to DE mode (icon on right)
2. Switch to Live Preview (icon on left)
3.  Go to DE mode (icon on right)
[Solution] Hide DE icon while going to Live Preview.
[TEST]
0. Open any local sample.
1. Go to DE mode (icon on right)
2. Switch to Live Preview (icon on left)
3. DE icon (on right) should not be visible.
4. Switch to DE mode (icon on left).
5. DE icon should be visible.
1. Visit http://localhost:3000/demos?path=1.0%2Fexamples%2Fwearable%2FUIComponents%2Fcontents%2Fcontrols%2Fnumberpicker%2Findex.html
2. DE icon (on right) should be visible.

Signed-off-by: Grzegorz Czajkowski<EMAIL_ADDRESS>

Fixed coding style.


Webhook

Hello! Sorry for disturbing you, but I don't understand how to use the Webhook in my project. Can you explain me how to use it? Can you give an example?

Example is available in example folder


chore: Update workflows for forks.

Update workflows for forks.
Add a simple release tag action.

This was intended for my fork, not the upstream repo here.


Update DefaultAPISidebar macro for new event organisation

This is a work item for #685, and was originally discussed in https://github.com/mdn/sprints/issues/906.
The DefaultAPISidebar macro currently refers to GroupData to list events. We need to change this as part of the event refactoring wok, and instead treat events more like other subpages of the API (e.g. properties and methods).
Like APIRef, DefaultAPISidebar is complex. Although it's not as widely used as APIRef we should still add tests before making this update. So a prerequisite for changing it is adding tests.
In this user story we will:

add tests for DefaultAPISidebar, using an adapted version of the APIRef test plan here: https://github.com/mdn/kumascript/pull/1080#issuecomment-466114220 as a guide (they are pretty similar macros)
update DefaultAPISidebar to look for events in subpages instead of GroupData

AC are that both those changes are committed to KumaScript, deployed, and verified.

Here's how I think DefaultAPISidebar works, what it's supposed to be for, and what we'll need to change.

How it works
Inputs
This macro gets passed a string. This is intended to identify a "group" in the GroupData macro, like "Ambient Light Events" or "Channel Messaging API". I'm not sure what determines whether group names get the " API" suffix, that seems random.
We load GroupData and find the group, and use it to initialize some arrays:

interfaces: the contents of group.interfaces
methods: the contents of group.methods
properties: the contents of group.properties
events: the contents of group.events

We also initialize:

guides: this is the concatenation of:

all the subpages under group.overview
group.guides

Outputs
We then write out:

a link to group.overview, if that exists. This will be an overview page like https://developer.mozilla.org/en-US/docs/Web/API/Channel_Messaging_API.

in separate subsections: the guides, interfaces, properties, methods, and events

What's it for?
As I understand it this sidebar is supposed to be for pages that document what we call "APIs" as opposed to "interfaces". The difference is that an "interface" is a single concrete object that a web developer might encounter, while an API is a more abstract collection of features, that may include multiple interfaces and also individual methods belonging to other interfaces. Generally it seems that APIs align with specifications.
For example. There's an API we call the Fetch API, that contains all the stuff under the abstract concept of Fetch. This includes specific objects (interfaces) like Request and Response, but also includes the fetch() method of the WindowOrWorkerGlobalScope interface.
To document this abstract thing called "Fetch", we have an overview page whose name is usually (but not always) of the form "APIName_API". This page gives an overall description of the API. It may also have subpages, which are guides to aspects of the API.
For example: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API, which has child pages like https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Cross-global_fetch_usage.
So, the idea is that we use DefaultAPISidebar for pages like this. Then:

group.interfaces is obvious: it lists the interfaces that comprise the API.
"guides" includes the subpages, and the concatenated group.guides also lets you point to other guides that are not under the overview page, and it will list them too. Actually I think we should remove group.guides but that's another conversation.
group.methods and group.properties, importantly, are specifically for methods and properties not included under interfaces. For example, under "Fetch API" we list WindowOrWorkerGlobalScope.fetch() but not Request.json(). I wonder how clear this distinction is to users...

So what about events?
So this brings us to group.events. Honestly, the way these are done at the moment appears to be a bit random, but to follow methods and properties it seems we should say: events whose target is an interface already included under group.interfaces should not be included, but events whose target is a different interface should.
For example, under the "File API" we currently have:
"File API": {
    "interfaces": [ "File",
                    "FileList",
                    "FileReader",
                    "FileReaderSync",
                    "Blob" ],
    "methods":    [],
    "properties": [],
    "events":     [ "loadstart",
                    "progress",
                    "abort",
                    "error",
                    "load",
                    "loadend" ]
}

There events all target the FileReader interface which is where they are now documented. So we should remove these events.
However, under the "Clipboard API" we have:
"Clipboard API": {
    "interfaces": [ "Clipboard",
                    "ClipboardEvent"],
    "dictionaries": [ "ClipboardPermissionDescriptor" ],
    "methods":    [],
    "properties": [ "Navigator.clipboard" ],
    "events":     [ "beforecopy",
                    "beforecut",
                    "beforepaste",
                    "clipboardchange",
                    "copy",
                    "cut",
                    "paste" ]
}

In this case these events - cut, copy and so on - target Element, so we should keep them, but list them as "Element.cut" and so on.
Then we also need to update DefaultAPISidebar so it treats events in the same way as methods and properties - currently the macro assumes that events live under Web/Events. And before that of course we have to write tests for this macro.

What should we use as a separator for group.events located under Web/API/<interface_name>?
I feel like a . isn't the greatest choice given that events aren’t methods or properties.

What should we use as a separator for group.events located under Web/API/<interface_name>?
I feel like a . isn't the greatest choice given that events aren’t methods or properties.

Yes, this is a good point, thanks! Perhaps we should use "Interfacename: eventname", like the page titles? We'd then I suppose have to transform that into "Web/API/Interfacename/eventname_event" for the link target.

@chrisdavidmills , @Elchi3 , please let me know if you think the above sounds like a good approach.

GroupData updates
I've made a first pass through the events in GroupData, summarised in this sheet: https://docs.google.com/spreadsheets/d/1-G5q6sqiT6iSz-O3tJMhdDjBWazXUvXeVoyP6eWH4X0/edit#gid=0.
It has one row for each group that has a non-empty events property. I've then taken a quick look, and:

if the group is archived, badly obsolete, or undocumented, recommend we delete the events it lists.

if the events are documented under interfaces that appear under the group's interfaces property (as in the "File API" example above), recommend we delete the events it lists. I've indicated this with "Under own interface".

if the events are documented under a different interface (as in the "Clipboard API" example above) recommend we keep them and prefix them with the event's associated interface (e.g. "Document: cut"). I've indicated this with "Under other interface".

@wbamberg this seems reasonsable to me.

Sounds good to me, too.

GroupData and DefaultAPISidebar updates are now merged and deployed (https://github.com/mdn/kumascript/pull/1136), and pages like https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events and https://developer.mozilla.org/en-US/docs/Web/API/Touch_events are showing what we would expect:


Include-build dependency substitution breaks nested bom's (platform)

An included project defines dependencies to a platform-bom plus a transitively managed dependency:

platform('com.google.cloud:libraries-bom') contains 'com.google.cloud:google-cloud-bom, which then contains com.google.cloud:google-cloud-storage'
com.google.cloud:libraries-bom is the only version-managed dependency
the approach works fine in a "standalone" build, com.google.cloud:google-cloud-storage' is properly resolved

It does not work, via an included build.
(Gradle 7.4.2)

Similar to #21019

Thank you for your interest in Gradle!
Your issue appears to be a question about how to use Gradle. Your question might be better answered on our forums or StackOverflow. We have several resources on help.gradle.org that you should check out first.
If you think you have come across a Gradle bug, please file a new issue describing the problem and how to reproduce it.
If you think Gradle is missing a feature, please file a new issue describing your use case for the feature.

@h0tk3y I'm sorry, but this is IMO clearly a bug in Gradle when resolving the dependencies in an included build, which references groupId:artifactId via a bom in another bom.

Reproducer in this repository: https://github.com/snazy/gradle-reproducers


Add a Q/A to important attributes FAQ

Issue in ./help/main/c-reports/c-personalization-insights-reports/important-attributes-report.md
It might be nice to include a Question about what to do if I see an attribute showing up that I don't want the model to consider? Then we could link them to the new API to remove attributes from the model.
https://developer.adobe.com/target/administer/models-api/

Thanks, Ryan.
I updated the topic: https://experienceleague.adobe.com/docs/target/using/reports/insights/important-attributes-report.html#models-api
I see one or more attributes that I don’t want the model to use for training. Can I remove those attributes from the training model?
The Models API, also called the Blocklist API, lets users view and manage the list of attributes (also called features) used in machine learning models for Automated Personalization (AP) and Auto-Target (AT) activities. If you want to exclude one or more attributes from being used by the models for AP or AT activities, you can use the Models API to add those attributes to the “blocklist.”
For detailed information, see Models API overview in the Adobe Target Developer Guide. To use the API to block attributes, see Models API.


please add variable for input fields sperately so that we can add style (width) seperately

I need to make the payement form same like wepay

Hello @qayyumgb -
The goal with our web components is to make it very quick and easy for our customers to integrate and accomplish common use cases. When using the PaymentForm our customers don't need to worry about validing payment method info, tokenizing it into a payment method, and it also can keep your application out of PCI scope. It provides huge time savings.
The trade-off, however, is that it is not fully customizable. If you need a payment form with a custom layout, you may consider pairing your own custom front-end to our APIs instead of using the component.


Removed deprecated set-output in scheduled tests

Description
Replaced deprecated set-output command with github env variables. https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Related to: (ClickUp/JIRA task name)

❔ This change

[ ] adds a new feature
[X] fixes breaking code
[ ] is cosmetic (refactoring/reformatting)

✔ Pre-merge checklist
Mark which items have been completed:

[ ] Refactored code (sourcery)
[ ] Tested code locally
[X] Added code to GitHub tests (notebooks, scripts)
[ ] Updated GitHub README

🪝 Run the following to both pre-commit hooks and JupyterLab (turn on format on save)

[ ] Stripped outputs from notebooks - (nbstripout)
[ ] Sorted imports - (isort)
[ ] Formatted code - (back)

📄 Update documentation
Coordinate with @normandy7

[ ] Updated content in the docs
[ ] Added to all relevant docs index pages (e.g., Examples, Integrations intro, Model training index)
[ ] Added to examples README

🧪 Test Configuration

OS:
Python version:
Neptune version:
Affected libraries with version:

✔ Post-merge checklist
These tasks should be done after the code is merged to main. Create a subtask under the main ClickUp task to have these on your radar and share the subtask here.
Post-merge subtask: (ClickUp/JIRA task name)

[ ] Update relevant blogs with impacted code/functionality (Contact @Patrycja-J for the list of blogs)
[ ] Add functionality under the Neptune column of the competitor comparison sheet (Coordinate with @SiddhantSadangi)
[ ] Update integration README (Contact @Patrycja-J)

Run instance using this workflow file: https://github.com/neptune-ai/examples/actions/runs/3247244958