Bugfix: Improve Ready and Health Checks

Description

Fixed the issue where ready and health checks were not functioning correctly.
Enhanced the checks to verify the readiness and health of individual services by evaluating their specific requirements.

Service Probes
Checklist moved to #10281
Questions

how to handle services that do not have a http endpoint

Related Issue

Fixes https://github.com/owncloud/ocis/issues/8783

Motivation and Context
health and ready checks are essential to find out if a service is ready to serve requests. In the past, the checks were not functioning correctly. This release fixes the issue and enhances the checks to verify the readiness and health of individual services by evaluating their specific requirements.
How Has This Been Tested?

unit tests
local instance

Types of changes

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[X] Technical debt
[ ] Tests only (no source changes)

Checklist:

[X] Code changes
[X] Unit tests added
[ ] Acceptance tests added
[ ] Documentation ticket raised:

related: https://github.com/owncloud/ocis/issues/6774

We decided to split the issue into several PRs, this PR only contains 3 service healthchecks and basic skeletons & refactoring, the others will be implemented in follow-up PRs. (List see #10281 )


Verbatim blocks should not span page boundaries when possible

Ideally verbatim environments would not have page breaks in them.
According to this answer on TeX StackExchange, the following has the desired effect:
\begin{Verbatim}[samepage=true]
Some looooong text...
\end{Verbatim}

casual testing shows this to be workable.
At present Pandoc is emitting \begin{verbatim} around fenced code blocks, so we would need to intercept these and instead insert \begin{Verbatim}[samepage=true].
Far better would be if this was simply a package level setting we could recommend and put in the default preamble.

Ah. Pandoc already expected (and in its default template included, which we then ported to the beginning function in LatexPreamble, which is then emitted as 99_Beginning.latex file in the temporary directory) a \DefineVerbatimEnvironment{Highlighting}{Verbatim}. We can use that to change the initial (aka default) option values for the custom verbatim environment.

So the line needs to have the samepage=true option added. But now I'm doubting the wisdom of this. This is typesetting; if someone wants a pagebreak in a different place they can use \clearpage. Hm.


Render Transaction from content-store

Trello

👍  when tests are green

Added 'do not merge' tag so that this doesn't get merged prematurely (before the transaction related schemas and publisher PRs have been merged/deployed)


False boolean values in update are ignored

When running conn.sobject('Custom_Object__c').find({ Id: { $in: ['objectid'] } }).update({ Flag__c: false }), Flag__c isn't getting updated when boolean value is false. When it's true, or a string it does get updated. It looks like a similar issue was fixed in #627 but looks like it didn't fix all cases

I can second that I'm seeing this behavior as well. If you use false.toString() it works fine but just false has not effect.

triaging old issues...
this works on jsforce v3:
const contact = conn.sobject('Contact');

const currentCon = await contact.find({
  Name: 'John Doe'
}, ['Name', 'bool__c'])
console.log(currentCon)

const res = await contact.find({
  Name: 'John Doe'
}).update({
  bool__c: false
})
console.log(res)

const updatedCon = await contact.find({
  Name: 'John Doe'
}, ['Name', 'bool__c'])
console.log(updatedCon)

🔽
[
  {
    attributes: {
      type: 'Contact',
      url: '/services/data/v60.0/sobjects/Contact/0038N00000JmwqsQAB'
    },
    Name: 'John Doe',
    bool__c: 'true'
  }
]
[ { id: '0038N00000JmwqsQAB', success: true, errors: [] } ]
[
  {
    attributes: {
      type: 'Contact',
      url: '/services/data/v60.0/sobjects/Contact/0038N00000JmwqsQAB'
    },
    Name: 'John Doe',
    bool__c: 'false'
  }
]

This should be fixed in v3, see: https://github.com/jsforce/jsforce/discussions/1529


Add another option into active hours for the quickest campaigns

FEATURE OVERVIEW
User Story
As an admin, I want to differentiate campaigns that can be completed instantly.
Additional Information (optional)
Ideally the text for the checkbox says 'instant' but if there needs to be a number, lets use 0 or 0.05, whatever our sorting logic will accept for the onboarding experience.
Why This Matters
This will allow us to further curate the campaigns that appear in onboarding and get users into more campaigns that they have a greater chance of reporting back on.

@jessleenyc we already have a field to differentiate short campaigns, did you want to add an option in here for less time?

@angaither we're looking to add an option that represents a campaign you can complete instantly. This way, we can better curate the campaigns pulled into onboarding.

@jessleenyc so add in an option for lower than 0.5 hours?

@angaither yep. '0.1'?

@jessleenyc @deadlybutter  I added the new option to campaigns, but I'm not sure how this will work with the campaign finder/onboarding. I think there might be some additional work here.

@angaither We can test on staging but it should work fine for onboarding since its just a number

hmm yeah I was just playing around with the finder and instant options don't show up on the finder when you click 1 hour or less.

@angaither should i create a separate phoenix ticket to address?

@jessleenyc depends, what do we want the interaction to be here?
should they show up in that less than 1 hour group? should it be it's own group?
Does it actually work in onboarding?
Should I roll back this field option until we figure these questions out?

Have we re-index Solr?

yarrr

just did some Finder debugging, its passing the correct query parameter when you press the 1 hour or less

feels like this is solr related

oy, the option didn't deploy to thor properly either curse you #6735!

I ssh'ed into thor and re-ran drush fra -y and it added the option. why wouldn't this work in the deploy here
EVEN THOUGH IT SAID IT DID THAT EXACT THING

I love drupal

I think it does show up correctly in the finder on thor
after I

manually reverted the feature
updated a campaign (the sports drive one on the homepage from 2 hours to instant)
reindexed
cleared cache
reindexed
cleared cache

boom an insant campaign updated instantly

reindexed

cleared cache
reindexed
cleared cache

I'm seeing the 'instant' campaign in both onboarding and the finder as well. I'll let @mikefantini chime in on whether or not we should create a new time category for instant campaigns or have it be grouped in with '1 hour or less' on the finder.

Since it's appearing in both onboarding and the finder can we actually close this ticket and open a new one if we want to update the finder? @angaither

yaaa, and I think it's working ok in the finder. I would like to leave this open till the field is working in prod, since I had to do a few manual things after the deploy -_-

I don't have a super strong opinion on changing the finder filter to be 1 hour or less or adding an instant filter.
@jessleenyc let's maybe poll the room in tech-campaigns sync when we in person confirm with them that it's been added?

@angaither do you need to do some of these manual things on prod before i test it out?
@mikefantini sounds good.

looks like it rolled into prod SWIMMINGLY. closing this meowt


remove docfx check

docfx is failing on relative links to folders. We require these types of links for our service docs.
Per the SIG meeting on 9/26, we determined that the docfx checks were providing no value-add and should be removed.  This PR comments out the check (we can remove it completely on a subsequent PR)

@puckpuck we might need to remove something in the repo because the docfx check is blocking this pr for not running

@puckpuck we might need to remove something in the repo because the docfx check is blocking this pr for not running

Maintainers need to remove this from the branch policy:

@austinlparker youll need to remove the rule. I don’t have permissions to make repo changes like that

I don't have access to branch protection rules; Let me open an issue to have maintainers get admin access.

I don't have access to branch protection rules; Let me open an issue to have maintainers get admin access.

All maintainers on this project should have access now.

I removed the branch protection rule that @cartersocha posted a screenshot about, so will merge this now


Update deps

Coverage decreased (-1.3%) to 98.718% when pulling 4c6a48dbcfe480eefc3e57abbac265ab34864bd2 on update-deps into 158686ae05e1952ece49014e454b8014e7ef9d8d on master.

Coverage decreased (-1.3%) to 98.718% when pulling 4c6a48dbcfe480eefc3e57abbac265ab34864bd2 on update-deps into 158686ae05e1952ece49014e454b8014e7ef9d8d on master.


Remove values-local-with-cloud-build.yaml

Motivation
The only difference from this and values-local.yaml is the lineraImage, which can be parametrized to fulfill the same purpose
Proposal
Delete the file
Test Plan
CI

Current dependencies on/for this PR:

main

PR #1426   👈

This stack of pull requests is managed by Graphite.


'containerapps' 'cpu' expects 'int | null'

Bicep version
0.4.1272
Describe the bug
Putting in 0.25 triggers warning:
yourfile.bicep(73,20) : Warning BCP036: The property "cpu" expected a value of type "int | null" but the provided value is of type "'.25'".
To Reproduce
In your 'template/containers/resources' of a container app, set 'cpu' to something other than an int, like '0.25', which is completely valid, and you will get a warning.

Bicep does not support float values. You will need to wrap the value inside of the json function:
  cpu: json('0.25')

Closing this one and we can track with #1386

@alex-frankel  then how come it works fine it just warns?

Your property value is '0.25', a string, not 0.25 which would be a float, but you will get an error for that. You get the warning because string is not a valid type for this value. For all resource bodies, we don't throw errors if the type is wrong because it could be a result of an incorrect swagger even if the service supports it.

OK, so you think this is just the optimal approach? Users should get warnings for putting in valid values? Is this closed as a "Can't Fix", "Won't Fix", or a "We like that users are seeing warnings for valid templates"?

Ahh, sorry I missed the reference prior to 1386


Font looks weird

My font (on the left) looks super weird compared to others I see. How can I make it more anti-aliasing? I've searched in the entire web but the solutions are not clear or don't work.

@afonsomatos Is the problem solved now?

@abose Yes, I reinstalled Brackets and It solved the problem. It must had been a file that was replaced or edited.

:cool:


Browser sessions shows the proxy IP instead of the client's

Since requests are routed through CloudFlare, the IP shown in the browser session screen shows localhost. We can fix this by setting the internal request IP to the one sent with the CloudFlare header, though we may not want to log IPs in that way.
A compromise could be to store the session IP in a masked format. Since it is a vendor who handles this feature I'll have to look into the source to see how it is implemented.

Since the IP information is not valuable to most users, I move to remove them. Showing information like in attached screenshot is helpful enough.

Closing as the project is being archived. https://github.com/caendesilva/mutual-aid-app/issues/48


ACU for NVv4

Hi, we are missing the ACU for NVv4 (https://azure.microsoft.com/en-us/blog/introducing-nvv4-azure-virtual-machines-for-gpu-visualization-workloads/), can this be added please?

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

ID: 568a0854-5b9e-0d79-642f-2775271d0521
Version Independent ID: 876df17a-3a80-8e2d-bb70-c6810df7fd18
Content: Overview of the Azure Compute Unit - Azure Virtual Machines
Content Source: articles/virtual-machines/acu.md
Service: virtual-machines
Sub-service: sizes
GitHub Login: @mimckitt
Microsoft Alias: mimckitt

Thanks for the feedback! We are currently investigating and will update you shortly.

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

#reassign: @vikancha-MSFT
@vikancha-MSFT  please take a look and if possible, include the ACU numbers for the N-Series.

I have updated the docs page to include the ACU numbers. Changes should be live later today.

#please-close


Video feed flickers and is mostly green

The feed is mostly green, but periodically flickers in color.  The image is distorted.  Anything I can do to fix this?

Hi @nickgitnick, it might be possible to resolve the issue by changing the codec.
check YuvFormat.NV21 on link

Fixed https://github.com/am3n/RTSP-Client-Android/releases/tag/5.0.0


Water Render issues.

When using this modpack I'm having issues with water rendering. The issues are shown in these pictures:

My cpu is Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz, 2208 Mhz, 6 Core(s), 12 Logical Processor(s)
I have 16 gb of sodimm ram at 2400 mhz
And my GPU is NVIDIA GTX 1060 mobile (using latest drivers)
I am using the curseforge version of the mod if that helps

???


Allow the cookie to be set if action is not remove

This removes the service requirement for setting the cookie.  If it did run after remove it won’t set the cookie, though.
Closes https://github.com/feathersjs/feathers-authentication-oauth2/issues/12

:shipit:


complete "How to use ?" section of wiki

As decided we remove the usage section from readme to keep it clean. Henceforth all documentation will be maintained in wiki "How to use ?" section
A basic wiki has been added  but the contents are yet to filled in many section.

[X] help
[ ] login
[ ] view-files
[ ] clone
[ ] add_remote
[ ] cat
[ ] rm
[ ] ls
[ ] status
[ ] pull
[ ] push
[ ] share

Note: Each section will be up for grab separately and so will be score for filling the allotted section, so claim a particular section only.

i'd like to work on the view-files section for gssoc. How should i proceed?

I want to work on the add remote section. How to proceed with it?

@excalibur-kvrv @cherryWood55
Once you're done with your local setup:

You can try running the command
Add an good explanation for it. Refer help section
Update on this thread one you're done ;)

i want to work on clone section  for ggsoc.How to get started?

i want to work in clone section for gssoc .How to get started?

@excalibur-kvrv @cherryWood55
Once you're done with your local setup:

You can try running the command
Add an good explanation for it. Refer help section
Update on this thread one you're done ;)

@aakankshadhurandhar the same applies to you😊

@udit-001 Sure. go ahead ;)

@udit-001 @cherryWood55 @excalibur-kvrv any updates ?

@nurdtechie98 add share in this list

I would like to work on "pull" section

@rudri182 Sure, Go ahead.

In which file I should modify the content for a wiki file to contribute? Because I am not getting the related file. I am confused.

Update this thread, once you make changes over here.

I have made changes for the section drive pull from Github GUI wiki pages. Because for me, cloning wiki was not supported.

@rudri182 I have enabled wiki editing for all people just now, so now you can also edit the wiki. I see you have added pull wiki in your fork. Just copy the same to this repository's wiki and I'll add you points.

Complete drive pull command in the wiki page.

@shivam1708 @NightWing1998 Would appreciate if you guys can review the work done in this section :)
Thanks.

Sure @inishchith

I would like to take cat command

@inishchith I have made the 'cat' file in the local repo for gssoc. How should I proceed?

@inishchith I have made the 'cat' file in the local repo for gssoc. How should I proceed?

You have to make a pull request to drive-cli from your forked repo online. Refer here for more info : <a href="https://help.github.com/en/articles/creating-a-pull-request-from-a-fork >
Your Pull Request(PR) will be reviewed by us mentors and accordingly your changes will be merged

Sure @sauravjaiswalsj , go ahead and update this thread once you've made changes to the Wiki Section
Thanks :)

@inishchith I have updated the how to use Cat command. Please Check.

@sauravjaiswalsj the cat command of drive-cli can't create or update file it can be used to view the contents of a file without having to download it locally. Do take a look and make the necessary changes.
Let us know once done we'll update the scores 😄

@inishchith Updated the cat command. Sorry about that mistake

good job @sauravjaiswalsj, will update the scores

I would like to work over rm command.

I would like to work over rm command.

Sure go ahead

I just want to say that the tools works wonderfully, even though I had to install specific version of "requests" (pip install -I requests==2.21.0). All went well.
Congratulations on this new amazing project.


Add button to open web interface

If the Kodi server has its web interface enabled, it'd be nice to have a button in the popup that lets users open this web interface in a new tab. This can e.g. be useful to queue videos/music that is stored on the Kodi server and not streamed from a website.

The button (a globe at the bottom of the popup) has been added in version 5.7.0 of Cast Kodi (requires Firefox 84). The button is displayed if the web interface is enabled with port 8080.

Nice, thank you :)


Add device automation triggers for Icasa wall-mount remotes

This pull request supersedes #1039
Quirk for icasa wall mounted zigbee remotes ICZB-KPD12, ICZB-KPD14S and ICZB-KPD18S. Remotes are mentioned here https://github.com/zigpy/zha-device-handlers/issues/503
ICZB-KPD12: This remote has ON and OFF buttons (hold for dimming up/down)
ICZB-KPD14S: This remote has ON and OFF buttons (hold for dimming up/down) and 2 SCENE buttons (hold for storing, push to recall).
ICZB-KPD18S: This remote has ON and OFF buttons (hold for dimming up/down) and 6 SCENE buttons (hold for storing, push to recall).
Checklist

[ ] The changes are tested and work correctly
[ ] pre-commit checks pass / the code has been formatted using Black
[ ] Tests have been added to verify that the new code works

If somebody cares to test this, that would be great. I've cleaned up this quirk a little while back, but couldn't be bothered to test it. Just did some updates, had to restart HA and the custom quirk came alive. Appears to work as intended.

And if I understand the CI logs correctly a little refactoring is required, will try to do that soon.

Thanks for the PR!
Since there's no "real code" (just defining device triggers), we don't really need new tests for this device.
However, CI complains about some issues where triggers aren't unique and that ARGS need to be migrated to PARAMS.

@TheJulianJES Yeah, that was fixed already but my commits are a bit messy on this one, so I accidentally reverted that fix when reverting something else.
My apologies to anyone who was waiting for this quirk, but better late than never.

@TheJulianJES Sure, np.

I'm not really sure but if there's no changes in the replacement part I believe that you don't need to include it.
Can you test your quirk only with the signature and the device_triggers part?

@TheJulianJES To be brutally honest, I haven't tested the last 2 commits and I only own the ICZB-KPD18S.
@javicalle I suspect you're right, the replacement part is there because of an experiment with a custom cluster, but I never got any feedback on whether I should do that (#1041), so I ripped that out for this pull request.
Do you happen to know if I should remove the replacement variable entirely or must it be defined with some empty value?

Do you happen to know if I should remove the replacement variable entirely or must it be defined with some empty value?

Try to remove completely all the replacement definition.

@javicalle
I get failed tests when I remove the replacement definition. It is required when inheriting from CustomDevice. I couldn't find a relevant example to see if I should inherit from something else.
The cleanest quirk I came across is https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/sonoff/button.py which has a replacement that's identical to the signature.
Feel free to merge.


Latest version does not play AAC formatted radio streams

What version of Music Assistant has the issue?
2.0.0b125
What version of the Home Assistant Integration have you got installed?
2024.3.4
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
AAC Formatted radio streams will not play.
.mp3 formatted streams will play.
How to reproduce
Try playing an AAC formatted radio stream.
Music Providers
Tune In radio
Player Providers
Snapcast
Full log output
2024-03-27 12:19:38.380 INFO (MainThread) [music_assistant] Starting Music Assistant Server (0c8904fdce4d47079414476b55c4db72) version 2.0.0b125 - HA add-on: True
2024-03-27 12:19:38.384 INFO (MainThread) [music_assistant.cache] Initializing cache controller...
2024-03-27 12:19:38.389 INFO (MainThread) [music_assistant.webserver] Starting server on  <IP_ADDRESS>:8095 - base url: http://<IP_ADDRESS>:8095
2024-03-27 12:19:38.422 INFO (MainThread) [music_assistant.music] Using a sync interval of 180 minutes.
2024-03-27 12:19:38.541 INFO (MainThread) [music_assistant.streams] Detected ffmpeg version 6.0.1 with libsoxr support
2024-03-27 12:19:38.541 INFO (MainThread) [music_assistant.streams] Starting server on  <IP_ADDRESS>:8097 - base url: http://<IP_ADDRESS>:8097
2024-03-27 12:19:38.711 INFO (MainThread) [music_assistant] Loaded music provider URL Player
2024-03-27 12:19:38.711 INFO (MainThread) [music_assistant] Loaded player provider Universal Group Player
2024-03-27 12:19:38.713 INFO (MainThread) [music_assistant] Loaded metadata provider MusicBrainz Metadata provider
2024-03-27 12:19:38.713 INFO (MainThread) [music_assistant] Loaded metadata provider fanart.tv Metadata provider
2024-03-27 12:19:38.713 INFO (MainThread) [music_assistant] Loaded metadata provider TheAudioDB Metadata provider
2024-03-27 12:19:38.713 WARNING (MainThread) [music_assistant.providers.tunein] Email address detected instead of username, it is advised to use the tunein username instead of email.
2024-03-27 12:19:38.713 INFO (MainThread) [music_assistant] Loaded music provider Tune-In Radio
2024-03-27 12:19:38.762 INFO (MainThread) [music_assistant.music] Sync task for URL Player completed
2024-03-27 12:19:38.763 INFO (MainThread) [music_assistant] Loaded player provider UPnP/DLNA Player provider
2024-03-27 12:19:38.763 INFO (MainThread) [music_assistant] Loaded music provider Filesystem (local disk)
2024-03-27 12:19:38.763 INFO (MainThread) [music_assistant] Loaded player provider Chromecast
2024-03-27 12:19:38.764 INFO (MainThread) [music_assistant.providers.snapcast.snapserver] Starting builtin Snapserver...
2024-03-27 12:19:38.768 INFO (MainThread) [music_assistant] Loaded player provider SONOS
2024-03-27 12:19:38.772 INFO (MainThread) [music_assistant] Loaded plugin provider Home Assistant
2024-03-27 12:19:39.119 INFO (MainThread) [music_assistant] Loaded player provider Airplay
2024-03-27 12:19:39.715 INFO (MainThread) [music_assistant.providers.spotify] Successfully logged in to Spotify as 31j352q5l2tf6mizq4q546i6vmqy
2024-03-27 12:19:39.715 INFO (MainThread) [music_assistant] Loaded music provider Spotify
2024-03-27 12:19:41.083 INFO (MainThread) [music_assistant.music] Sync task for Tune-In Radio completed
2024-03-27 12:19:41.084 WARNING (MainThread) [music_assistant.music] Sync task for Filesystem (local disk) completed with errors
2024-03-27 12:19:42.531 INFO (MainThread) [music_assistant.providers.snapcast] Started connection to Snapserver <IP_ADDRESS>:1705
2024-03-27 12:19:42.531 INFO (MainThread) [music_assistant] Loaded player provider Snapcast
2024-03-27 12:19:42.531 INFO (MainThread) [music_assistant.players] Player registered: 2c:cf:67:07:de:71/livingroomsatellite
2024-03-27 12:19:42.532 INFO (MainThread) [music_assistant.players] Player registered: 2c:cf:67:0b:8c:a3/mbsatellite
2024-03-27 12:19:42.532 INFO (MainThread) [music_assistant.players] Player registered: 2c:cf:67:0b:77:ba/garagesatellite
2024-03-27 12:19:42.532 INFO (MainThread) [music_assistant.players] Player registered: 2c:cf:67:07:e4:94/loftsatellite
2024-03-27 12:19:42.695 INFO (MainThread) [music_assistant.players] Player registered: ap0009b0f35d11/Pioneer SC-LX704 F35D11
2024-03-27 12:19:42.696 INFO (MainThread) [music_assistant.players] Player registered: uuid:b0f35d11-0011-5dBB-b000-0009b0f35d11/Surround System
2024-03-27 12:19:48.280 INFO (MainThread) [music_assistant.music] Sync task for Spotify completed
2024-03-27 12:19:51.297 INFO (MainThread) [music_assistant.players] Player registered: e35ab133-c5a8-85e7-5afb-2cbb9722e553/Surround System
2024-03-27 12:19:51.364 INFO (MainThread) [music_assistant.players] Player registered: 959d305f-15cc-e8d7-dd03-a49b69ba4d78/Family Room chromecast
2024-03-27 12:19:51.424 INFO (MainThread) [music_assistant.players] Player registered: 051eb5fc-3f4f-673a-b944-6419c7de2ca3/SHIELD
2024-03-27 12:19:57.079 INFO (MainThread) [music_assistant.streams] Start Queue Flow stream for Queue livingroomsatellite - crossfade: False
2024-03-27 12:20:18.113 ERROR (MainThread) [music_assistant] Error doing task: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 71, in add_item_to_library
await self.mass.metadata.get_artist_metadata(item)
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 119, in get_artist_metadata
artist.mbid = await self.get_artist_mbid(artist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 248, in get_artist_mbid
ref_tracks = await self.mass.music.artists.tracks(artist.item_id, artist.provider)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 185, in tracks
return await self.get_provider_artist_toptracks(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 261, in get_provider_artist_toptracks
artist = await self.get(item_id, provider_instance_id_or_domain, add_to_library=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/base.py", line 198, in get
raise MediaNotFoundError(msg)
music_assistant.common.models.errors.MediaNotFoundError: Item not found: None/None
2024-03-27 12:20:18.120 ERROR (MainThread) [music_assistant] Error doing task: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 71, in add_item_to_library
await self.mass.metadata.get_artist_metadata(item)
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 119, in get_artist_metadata
artist.mbid = await self.get_artist_mbid(artist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/metadata.py", line 248, in get_artist_mbid
ref_tracks = await self.mass.music.artists.tracks(artist.item_id, artist.provider)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 185, in tracks
return await self.get_provider_artist_toptracks(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/artists.py", line 261, in get_provider_artist_toptracks
artist = await self.get(item_id, provider_instance_id_or_domain, add_to_library=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/music_assistant/server/controllers/media/base.py", line 198, in get
raise MediaNotFoundError(msg)
music_assistant.common.models.errors.MediaNotFoundError: Item not found: None/None
2024-03-27 12:20:21.266 INFO (MainThread) [music_assistant.streams] Start Queue Flow stream for Queue livingroomsatellite - crossfade: False
Additional information
2.0.0b119 Works. Ive been hoping an update will fix it, but to no avail..
What version of Home Assistant Core are your running
2024.3.3
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Generic x86-64 (e.g. Intel NUC)

Did you try to clear the cache ?
MA settings --> Core tab --> Cache controller --> Press the clear cache button

My apologies. That did the trick. I thought I tried that, but evidently not..
Thanks for your time.


PyCall::LibPythonFunctionNotFound (Unable to find the required symbol in libpython: _Py_NoneStruct)

Hi!
I really would love to be able to use your library for a project, but I can't seem to make it work, not even with the simplest example... Any help on what I'm missing would be great.
Thanks in advance!
Luis.
xxxxx@xxxxx:~/projects/ruby$ irb
irb(main):001:0> require 'pycall/import'
=> true
irb(main):002:0> include PyCall::Import
=> Object
irb(main):003:0> pyimport :math
Traceback (most recent call last):
       10: from /usr/bin/irb:23:in '<main>'
        9: from /usr/bin/irb:23:in 'load'
        8: from /usr/lib/ruby/gems/2.7.0/gems/irb-1.2.1/exe/irb:11:in '<top (required)>'
        7: from (irb):3
        6: from /var/lib/gems/2.7.0/gems/pycall-1.4.1/lib/pycall/import.rb:18:in 'pyimport'
        5: from /var/lib/gems/2.7.0/gems/pycall-1.4.1/lib/pycall.rb:74:in 'import_module'
        4: from /var/lib/gems/2.7.0/gems/pycall-1.4.1/lib/pycall/init.rb:16:in 'const_missing'
        3: from /var/lib/gems/2.7.0/gems/pycall-1.4.1/lib/pycall/init.rb:39:in 'init'
        2: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in 'require'
        1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:72:in 'require'
PyCall::LibPythonFunctionNotFound (Unable to find the required symbol in libpython: _Py_NoneStruct)

ah I have same error when trying to deploy to heroku

sorry if its not answering the original question
but since its have save error message
I manage to fix my problem in heroku
by using heroku-18 stack
this buildpacks https://github.com/ReforgeHQ/heroku-buildpack-python
with python 3.8.1

@ljoglar  make sure your python have --enable-shared
to check it first run this on your bash/terminal
python3 -msysconfig | grep enable-shared
if there is no result that show --enable-shared on your python
you need to recompile ur python with --enable-shared

@buncis, could you detail how you managed to recompile your py interpreter with --enable-shared? I spent many hours trying to do so in my M1 mac but failed miserably.

@bcdavasconcelos I explain my solution on #151


_get_property_list-example code does not work

Godot version
v4.0.stable.official [92bee43ad]
System information
Linux Ubuntu
Issue description
The example for _get_property_list is not working.
-> The conditional property hammer_type is never shown
This might be a "docs"-issue but it seems more that there is an underlying bug. Because if I read the docs correctly, the code itself should work. This might be caused due to one of the following issues: #56614, #64227
Code:
@tool
extends Node2D

@export var holding_hammer = false:
    set(value):
        holding_hammer = value
        notify_property_list_changed()
var hammer_type = 0

func _get_property_list():
    # By default, `hammer_type` is not visible in the editor.
    var property_usage = PROPERTY_USAGE_NO_EDITOR

    if holding_hammer:
        property_usage = PROPERTY_USAGE_DEFAULT

    var properties = []
    properties.append({
        "name": "hammer_type",
        "type": TYPE_INT,
        "usage": property_usage, # See above assignment.
        "hint": PROPERTY_HINT_ENUM,
        "hint_string": "Wooden,Iron,Golden,Enchanted"
    })

    return properties

Result: hammer_type is not shown in editor

Steps to reproduce

Setup basic project
Copy code from here
Toggle holding_hammer
Nothing happens

Minimal reproduction project
PropertyListBug.zip

You need to add a _get function handling it as well, see the documentation for that

You need to reload the scene, then it works, at least for me

You need to reload the scene, then it works, at least for me

Indeed after restarting Godot, it works now for me too. Thanks a lot!
I tried for 2 hours but didn't think of that :sweat_smile:

At the moment @tool scripts generally need the editor to restart to work, not sure why

Still document page of _get_property_list is not documenting about this behavior nor easy to search that one have to reload project or close scene to make an effect.
It's only written in @tool's try it out section, which still says "reload the scene" if it doesn't work.
However this doesn't cover the case where script is resource - which requires project refresh instead as we can't close resources.
Either such warning should be documented in _get_property_list, or bug should be fixed I think, as this still happens (Godot 4.3 beta 1 public) and took 2 hours for me either. Consider how much more hours we could save in utilitarianism perspective!


Add exception for dev.mariinkys.Oboete

As stated on: https://github.com/flathub-infra/flatpak-builder-lint/pull/430
COSMIC applications require read-only access to the host in order to watch for changes in the system theme and sync with it.
Hopefully an exception can be added.

Can you please rebase on top of master and squash the commit?

Yeah, right now I'm not on my computer, I'll do it later today.

I rebased and squashed it.

Sorry and thank you.


Enable/Disable Run button based on compiling status

Run button should start disabled and be enabled after compiling. When the code inside textEdit_ gets changed, the button should be disabled again.
My suggestion:
- Do some referencing to the button in main window
- Make the button start disabled by default
- Create a variable to store the last compiled code plain text
- Make Compile action set the text content and enable run button
- Create an OnChange event for the textEdit_ with run button->setEnable(actualCode == lastCompiledCode)

Closing issue.


Right clicking while looking at entity disconnects you

When you right click to hit an entity in a single player world it disconnects you and puts you at the main screen

Probably fixed with https://github.com/Globox1997/DualWielding/pull/8
Reopen if still exist in newest version


web-beautify-format-buffer problem

From Peiwen Lu (email):
I just installed your css-comb.el package and I get an issues which I am not be able to solve, so I am wondering if you mind giving me some tips. Thanks.
The css-comb.el works great without web-beautify.el installed. But after I installed web-beautify.el and call css-comb, I get the following error:
css-comb-format-buffer-1: Wrong number of arguments: #[(program) "Áed#" [program web-beautify-format-region] 4 ("/Users/peiwen/.emacs.d/elpa/web-beautify-20160410.1005/web-beautify.elc" . 2362)], 2
When I firstly installed css-comb.el, I remember there is a warning message:
Warning (bytecomp): web-beautify-format-buffer called with 2 arguments, but accepts only 1
Calling web-beautify-css or other web-beautify commands work great. I don’t know if I need additional settings for css-comb.el.
I am currently using Emacs 25 nightly build. Would you mind giving me a little tips for that? It is really nice if I could run css-comb on Emacs.

This issue should've been fixed in https://github.com/channikhabra/css-comb.el/commit/6fa45e5af8a8bd3af6c1154cde3540e32c4206ee
Waiting for Peiwen's response to confirm the fix.

Work like a charm. Thanks!!


Stop the user from posting before the link card finishes loading

There have been a lot of attempts to share youtube videos where no metadata is extracted into the link card. The only way I was able to reproduce that was by not waiting for the link card to finish fetching.
This isn't an ideal way to solve that, but it does solve it: it stops the user from posting while it's loading.

Confirmed by discussing with users this is the cause.


Panic in stable version

Bug Description
When running preflight stable image the panic can be seen during a submit
https://github.com/jrsmroz/gateway-operator/runs/7689619774?check_suite_focus=true
$ docker run -v /var/run/docker.sock:/var/run/docker.sock -v /home/runner/.docker/:/docker quay.io/opdev/preflight:stable check container scan.connect.redhat.com/***/gateway-operator:0.0.0-test3-redhat --docker-config=/docker/config.json --submit --certification-project-id=*** --pyxis-api-token=
Unable to find image 'quay.io/opdev/preflight:stable' locally
stable: Pulling from opdev/preflight
9849471674a8: Pulling fs layer
21ca3853a314: Pulling fs layer
d3dd878ef08b: Pulling fs layer
21ca3853a314: Download complete
9849471674a8: Verifying Checksum
9849471674a8: Download complete
d3dd878ef08b: Verifying Checksum
d3dd878ef08b: Download complete
9849471674a8: Pull complete
21ca3853a314: Pull complete
d3dd878ef08b: Pull complete
Digest: sha256:6670809cbe8de9495325cbae12d565388b772c6773d6537fad74e7202c2b2403
Status: Downloaded newer image for quay.io/opdev/preflight:stable
time="2022-08-05T10:44:59Z" level=info msg="certification library version 1.3.3 <commit: 6c30f7caae731ecc2faeaebd78c6d3981c708fe6>"
time="2022-08-05T10:45:09Z" level=info msg="check completed: HasLicense" result=PASSED
time="2022-08-05T10:45:09Z" level=info msg="check completed: HasUniqueTag" result=PASSED
time="2022-08-05T10:45:09Z" level=info msg="check completed: LayerCountAcceptable" result=PASSED
time="2022-08-05T10:45:09Z" level=info msg="check completed: HasNoProhibitedPackages" result=PASSED
time="2022-08-05T10:45:09Z" level=info msg="check completed: HasRequiredLabel" result=PASSED
time="2022-08-05T10:45:09Z" level=info msg="USER 1000 specified that is non-root"
time="2022-08-05T10:45:09Z" level=info msg="check completed: RunAsNonRoot" result=PASSED
time="2022-08-05T10:45:14Z" level=info msg="check completed: HasModifiedFiles" result=PASSED
time="2022-08-05T10:45:14Z" level=info msg="check completed: BasedOnUbi" result=PASSED
{
    "image": "scan.connect.redhat.com/***/gateway-operator:0.0.0-test3-redhat",
    "passed": true,
    "test_library": {
        "name": "github.com/redhat-openshift-ecosystem/openshift-preflight",
        "version": "1.3.3",
        "commit": "6c30f7caae731ecc2faeaebd78c6d3981c708fe6"
    },
    "results": {
        "passed": [
            {
                "name": "HasLicense",
                "elapsed_time": 0,
                "description": "Checking if terms and conditions applicable to the software including open source licensing information are present. The license must be at /licenses"
            },
            {
                "name": "HasUniqueTag",
                "elapsed_time": 275,
                "description": "Checking if container has a tag other than 'latest', so that the image can be uniquely identified."
            },
            {
                "name": "LayerCountAcceptable",
                "elapsed_time": 0,
                "description": "Checking if container has less than 40 layers.  Too many layers within the container images can degrade container performance."
            },
            {
                "name": "HasNoProhibitedPackages",
                "elapsed_time": 83,
                "description": "Checks to ensure that the image in use does not include prohibited packages, such as Red Hat Enterprise Linux (RHEL) kernel packages."
            },
            {
                "name": "HasRequiredLabel",
                "elapsed_time": 0,
                "description": "Checking if the required labels (name, vendor, version, release, summary, description) are present in the container metadata."
            },
            {
                "name": "RunAsNonRoot",
                "elapsed_time": 0,
                "description": "Checking if container runs as the root user because a container that does not specify a non-root user will fail the automatic certification, and will be subject to a manual review before the container can be approved for publication"
            },
            {
                "name": "HasModifiedFiles",
                "elapsed_time": 4549,
                "description": "Checks that no files installed via RPM in the base Red Hat layer have been modified"
            },
            {
                "name": "BasedOnUbi",
                "elapsed_time": 567,
                "description": "Checking if the container's base image is based upon the Red Hat Universal Base Image (UBI)"
            }
        ],
        "failed": [],
        "errors": []
    }
}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x2c pc=0x533e7d]

goroutine 1 [running]:
github.com/sirupsen/logrus.(*Logger).Log(0x19046fb, 0x2a, {0xc000c097b8, 0x4ee66e, 0xc0001e7520})
	/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/logger.go:196 +0x1d
github.com/sirupsen/logrus.(*Logger).Info(...)
	/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/logger.go:220
github.com/redhat-openshift-ecosystem/openshift-preflight/cmd.(*noopSubmitter).Submit(0x1b0d0e0, {0xc00054c0c0, 0xc000c098e8})
	/go/src/preflight/cmd/types.go:187 +0x105
github.com/redhat-openshift-ecosystem/openshift-preflight/cmd.preflightCheck({0x1b37078, 0xc000044030}, 0xc000515440, {0x0, 0x0}, {0x1b1fed8, 0xc0000ae140}, {0x1b25010, 0xc0001aede0}, {0x1b25070, ...}, ...)
	/go/src/preflight/cmd/preflight_check.go:63 +0x448
github.com/redhat-openshift-ecosystem/openshift-preflight/cmd.checkContainerRunE(0x2774700, {0xc00010eaa0, 0x1, 0x5})
	/go/src/preflight/cmd/check_container.go:99 +0x32a
github.com/spf13/cobra.(*Command).execute(0x2774700, {0xc00010ea50, 0x5, 0x5})
	/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:856 +0x60e
github.com/spf13/cobra.(*Command).ExecuteC(0x2774e80)
	/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:974 +0x3bc
github.com/spf13/cobra.(*Command).Execute(...)
	/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:902
github.com/spf13/cobra.(*Command).ExecuteContext(...)
	/go/pkg/mod/github.com/spf13/cobra@v1.4.0/command.go:[89](https://github.com/jrsmroz/gateway-operator/runs/7689619774?check_suite_focus=true#step:17:91)5
github.com/redhat-openshift-ecosystem/openshift-preflight/cmd.Execute()
	/go/src/preflight/cmd/root.go:38 +0x58
main.main()
	/go/src/preflight/main.go:8 +0x17

Version and Command Invocation
Extracted from the logs:
time="2022-08-05T10:44:59Z" level=info msg="certification library version 1.3.3 <commit: 6c30f7caae731ecc2faeaebd78c6d3981c708fe6>"
Steps to Reproduce:
(How can we reproduce this?)

We've run the preflight against our operator in the github CI pipeline. Seems to be random, as most of the time the panic does not occur

Expected Result
I would expect the preflight not to panic.
Actual Result
Preflight have panicked
Additional Context
https://github.com/jrsmroz/gateway-operator/runs/7689619774?check_suite_focus=true

@bcrochet the stack trace seems to indicate that the noopSubmitter is being used even though the --submit flag was provided. I believe that's not expected.
github.com/redhat-openshift-ecosystem/openshift-preflight/cmd.(*noopSubmitter).Submit(0x1b0d0e0, {0xc00054c0c0, 0xc000c098e8})
	/go/src/preflight/cmd/types.go:187 +0x105

I noticed that.
@jrsmroz  Can you verify that you actually have a pyxis api token set up? It appears that's not being set. As in, I see no '***' after --pyxis-api-token. I'm assuming you'd have that stored in a secret. I will look to see if that would somehow trigger the noopSubmitter to be used.

I was able to reproduce this locally by leaving off the pyxis api key. So, the command line finishes with:
--certification-id=*** --pyxis-api-token
So, without the pyxis api token, it will end up with the noopSubmitter, and panic. I will look to why it is panicing, but I will also make a fix that exits early if the flag is given, but no value is supplied.

I used the correct pyxis token. Actually when I rerun the same pipeline it worked fine. So it's seems to be random.

I used the correct pyxis token. Actually when I rerun the same pipeline it worked fine. So it's seems to be random. It was a forked repo for my tests, so maybe the pyxis token was set up before the pipeline picked up? Frankly speaking, I don't remember that now.

It definitely looks like the token wasn't present when it ran. If this happens again, after this PR is merged, it should at least give us an error with better info, and no panic.

You're right the pyxis token was not set.


Stylised Surface Shader not reading in curve texture when opening Unity

Describe the bug
When using the stylised surface shader, with the curve option enabled, each time I open Unity, there's artifacts on the shader until I re-save the curve texture.
To Reproduce
Steps to reproduce the behavior:

Save a Curve ramp texture on a stylised surface shader.
Close Unity
Re-Open unity and see artifacts
Re-save curve textur to remove artifacts

Expected behavior
I expectd that I wouldn't have to re-save the curve texture each time I open Unity. I wouldn't be able to use the curve option on many objects as it stands.
Screenshots
Aritfact: https://drive.google.com/file/d/14sJo0VrlkGxs4X9QD1HSxgLt6coK26jg/view?usp=sharing
No Artifact: https://drive.google.com/file/d/1tsvHCVjT2Mn_-3niouzHEUmfw1760MRt/view?usp=sharing
Unity details:

Flat Kit version: 2.1.8
Unity version: 2020.3.4f1
Graphics Pipeline: URP
Development OS: Both Mac and PC

Build platform:

Platform: IOS
Test device: [e.g. iPhone6]

Hi,
Thank you for the detailed guide, I have just managed to replicate your issue.
We'll look into fixing it soon, meanwhile there is a possible temporary fix you can try.

Locate the saved texture in the Project panel and select it;
Look at the Inspector panel and find a Wrap mode parameter
Change the Wrap mode to Clamp. Here's a screenshot:

Please let me know if it didn't work as a temporary workaround for you.

Hello,
Yep, the workaround is working.
Thank you!


Add separate pre-commit job for spotless validation

We heard feedback that many CI test regressions were spotless failures. Primarily this is caused when contributors will make small changes to incorporate reviewer feedback, and then merge right away. This may seem safe if the change has no semantic differences, but it can still break source formatting. The goal is to get a faster signal for spotless.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---
---
---
---
---

Java

Python

---

---
---
---

Run Seed Job

Run Seed Job

Run Spotless PreCommit

Run Java PreCommit

Spotless job finished in 62 seconds, and Java pre-commit finished in 18 minutes, which seems to be about average for recent runs on beam14.
I believe this would be a useful signal to split out. @kennknowles PTAL

My concern is that the signal will be ignored. If it becomes regularly red, I'd like to put it back in the main precommit. Or since it is so cheap, perhaps leave it in both. So contributions get early feedback on spotless, but do not see a temptingly green test result.
LGTM either way to try out.

I hope that the separate pre-commit will get treated the same as other pre-commnits. If we find it is being ignored then we can certainly revert.

Run Seed Job

It occurs to me that since creating a commit is fairly rare, setting up a git precommit hook (https://git-scm.com/docs/githooks) to just run spotless might be reasonable. I'll try it and report to<EMAIL_ADDRESS>


Admin: Delete GitHub PR comment when the provisioned environment is deleted

Long active PR often have multiple builds that validate to latest pushed commit. This results in many comments stating the provisioned environment can be reviewed. When the environment is deleted (either by a timeout or manual approval) this leaves the comment to a link that is no longer valid.
Ideally, these comments will be deleted when the environment is deleted to avoid confusion and keep the PR conversation clean.

Initial thoughts:

Is there an Azure Pipeline task to delete GitHub Comments?
Does the current create comment step return an id that can be used to delete it?


SAA-2058: rework the attendance creation job to improve the performance of the createAttendances function

Gets possible attendance records to create from a view
Retrieve the required data for creating the records.
Remove any excluded allocations
Persist the attendance records

Codecov Report
Attention: Patch coverage is 88.23529% with 10 lines in your changes missing coverage. Please review.

Project coverage is 84.13%. Comparing base (3b45e26) to head (675bb05).

Files with missing lines
Patch %
Lines

...smanagementapi/service/ManageAttendancesService.kt
87.95%
3 Missing and 7 partials :warning:

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #1090      +/-   ##
============================================
+ Coverage     83.02%   84.13%   +1.11%
- Complexity     3698     3716      +18
============================================
  Files           385      383       -2
  Lines         12694    12584     -110
  Branches       1084     1080       -4
============================================
+ Hits          10539    10588      +49
+ Misses         1671     1503     -168
- Partials        484      493       +9

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


Make build class configurable

This will enable to replace binderhub.build.Build by a custom class.
One usecase would be to configure custom options for the repo2docker
command.
See: https://discourse.jupyter.org/t/make-target-repo-dir-configurable-in-binder/9617

This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there:
https://discourse.jupyter.org/t/make-target-repo-dir-configurable-in-binder/9617/6

I was just about to start doing similar things for https://github.com/jupyterhub/binderhub/issues/1318, this looks great.
I suggested a bit of documentation change :)


Alert on shutter

Describe you new feature you'd like
Hello,
I installed V2.3.1.
What is it this alert ?

resolved

Glad you got it resolved.


Make select_best_match support multiple languages.

Right now when requesting a font family with select_best_match it returns a handle to a single font. This limits the languages that can be supported when relying on font_kit::source::SystemSource.
If I'm not mistaken the appropriate solution is to have select_best_match return an array of all fonts, including every language and emoji, that conform the provided constraints.

font-kit currently provides this functionality through the get_fallbacks method. I think this is how it works: when you hit a char you can't render, you say: "hey font-kit, give me a text span and a font that I can use to render that span". Then its up to the user of the lib to render that text using that font, then loop back to trying to render using the main font again.
The select_best_match method is doing something slightly different. It is saying: "given this font stack, this font name, and these parameters, find me the 'best match'". 'best match' here means following the CSS font spec. It doesn't do anything like look at the actual text and see if there are (simplification) codepoints that aren't representable in the current font.
I find this very complicated. font-kit could provide a FontCollection object like directwrite does on windows (IDWriteFontCollection), but it would also need a way to get a "system" stack of fallback fonts, and I'm not sure its possible to get that on all platforms.

Windows really wants to do the itemization itself and hand you spans/fonts for you to render.


chore: swb dynamic authorization infrastructure

Issue #, if available:
Description of changes:

SWB Dynamic Authorization Infrastructure update

Checklist:

[ ] Have you successfully deployed to an AWS account with your changes?
[ ] Have you written new tests for your core changes, as applicable?

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

To prevent merge conflicts from happening with my branch, lets remove the swb-app code. We're not allowing any new references to external projects in swb-app so we can make sure we're not tightly coupling with anything that could change without our knowledge.

Sure, I can open a PR directly to you branch then !

The only other thing is I noticed there are no tests. Is there anything we can do to make sure the infrastructure doesn't change unexpectedly?

We can add fine grained assertions or a SNAPSHOT test. Fine grained assertion is going to take little time and I used SNAPSHOT tests for example package which everyone was annoyed about SNAPSHOTS not getting updated properly so I ended up removing it.

Once this is updated, I can pull this into my branch ASAP and we can get the service merged into develop 🎉🎉🎉
Sounds good !


Board Light Review: Purview Account + Purview Catalog Collection LLC

LLC light review.
Swagger Purview Account

https://github.com/Azure/azure-rest-api-specs/tree/master/specification/purview/data-plane/Azure.Analytics.Purview.Account
Protocol APIView : https://apiview.dev/Assemblies/Review/e7e2c01c655b49fb93fcb6fd814a7063

Swagger Purview Catalog Collections

https://github.com/Azure/azure-rest-api-specs/pull/15221
https://apiview.dev/Assemblies/Review/28d6dbe0a98e4e6d9c9b73700cdcf25f?diffRevisionId=6aaea762ff764a7e85975adbd8ae6ac2&doc=False&diffOnly=True#Azure.PurviewCatalogClientTypesGetTermTemplateDefByGuidoverview

scheduled for 8/9 3-4pm pst

Recording[MS INTERNAL ONLY]


Funds Not Appearing in Wallet

Hi,
I sent a whole bunch of funds to my wallet Via Shapeshift but it does not seem to have gone through. The below links are the hashes linked to my previous transactions. Only 1 of the 5 successful transactions can be found in my wallet. I used the tool located here
https://github.com/NebulousLabs/Sia-UI/issues/581#issuecomment-299747969
to update my wallet but it still looks like funds are missing. Can you please let me know what I can do to track the funds?
You made a deposit to this address: Lcyso86NnNesXdeGcjjDQ2jYCdBtzyuQFi that completed successfully as you can see here:  https://explore.sia.tech/hash.html?hash=309e62db84398fab451bd457e8318997d35356b5569340c851d3ebfd26f5d610
You made a deposit to this address: LQM8Mn9Fq96GE4H1nNeNjkvz8Tqxank91F that completed successfully as you can see here: https://explore.sia.tech/hash.html?hash=5e6db69ad18109e29080bbb51573595869423ec450c0f0060fdf6a938bb08c75
You made a deposit to this address: that completed successfully as you can see here: https://explore.sia.tech/hash.html?hash=23a240d2a32d1b4184edc654b8d91fdfad4ea4798613310e197c2320beef62b9 .
The transaction to this address: 0xdc410d5307af4c0ce062fe2f3dc65867cc1e37df failed because the deposit was over the limit. Upon failing we returned the funds as you can see here: https://etherscan.io/tx/0x986633ed6265e4cfe08736d5c5473f020202a0aa8da235b9335c9a63b67d8f79
The transaction to this address: 0x809b2690157d8e6613684035795cae58e1e59f4f completed successfully as you can see here: https://explore.sia.tech/hash.html?hash=e2b028684e0a8670619f45a964b4c95224ce5e9f816861b9ec4e9556528a124f
The transaction to this address: 0x38686f9b3355e6b3c0e2627ec1288db7ada579e2 completed successfully as you can see here: https://explore.sia.tech/hash.html?hash=115ff83bbc62c72ecc2eb31408f681a766d726993ecf130f71c3ce9fa9daa837 .

Bump? Can someone please assist?

Issue appears to be on Polo's end, which is where Shapeshift exchanges SC. I'd suggest contacting Shapeshift support if the coins have not bounced back to your client.
https://forum.sia.tech/topic/965/lost-transfer-of-siacoin-from-poloniex

Hi, I contacted shapeshift help, and they sent me the message below.
They are also copied on this email. Only the 1st link went through, which
you can see in my snap. Please let me know if theres anything else I can do
[image: Inline image 1]
You made a deposit to this address: Lcyso86NnNesXdeGcjjDQ2jYCdBtzyuQFi that
completed successfully as you can see here:  https://explore.sia.tech/hash
.html?hash=309e62db84398fab451bd457e8318997d35356b5569340c851d3ebfd26f5d610
You made a deposit to this address: LQM8Mn9Fq96GE4H1nNeNjkvz8Tqxank91F that
completed successfully as you can see here: https://explore.sia.
tech/hash.html?hash=5e6db69ad18109e29080bbb51573595869423ec4
50c0f0060fdf6a938bb08c75
You made a deposit to this address: that completed successfully as you can
see here: https://explore.sia.tech/hash.html?hash=23a240d2a3
2d1b4184edc654b8d91fdfad4ea4798613310e197c2320beef62b9 .
The transaction to this address: 0xdc410d5307af4c0ce062fe2f3dc65867cc1e37df
failed because the deposit was over the limit. Upon failing we returned the
funds as you can see here: https://etherscan.io/tx/
0x986633ed6265e4cfe08736d5c5473f020202a0aa8da235b9335c9a63b67d8f79
The transaction to this address:
0x809b2690157d8e6613684035795cae58e1e59f4f completed
successfully as you can see here: https://explore.sia.
tech/hash.html?hash=e2b028684e0a8670619f45a964b4c95224ce5e9f
816861b9ec4e9556528a124f
The transaction to this address: 0x38686f9b3355e6b3c0e2627ec1288db7ada579e2
completed successfully as you can see here: https://explore.sia.
tech/hash.html?hash=115ff83bbc62c72ecc2eb31408f681a766d72699
3ecf130f71c3ce9fa9daa837 .
If you could send us the specific transactions that are in question I'd be
happy to look at them.
Cheers,
Cameron
On Sun, May 28, 2017 at 9:30 PM, Jesse Buonanno<EMAIL_ADDRESS>wrote:

Issue appears to be on Polo's end, which is where Shapeshift exchanges SC.
I'd suggest contacting Shapeshift support if the coins have not bounced
back to your client.
https://forum.sia.tech/topic/965/lost-transfer-of-siacoin-from-poloniex
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NebulousLabs/Sia/issues/1807#issuecomment-304559840,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aa2b9AunsogyzwJOT0hKH2pGSYzgJUxYks5r-i2tgaJpZM4Nec6B
.

This looks like an issue with the exchange, and if it's an issue with Sia it's likely an isolated case.
Recommendation to devs: Close


Ability to detect if a class is an enum

This issue was originally filed by @seaneagan

Two ways to implement this:

add an Enum class to dart:core that all enums extend.
add isEnumerated to ClassMirror, or EnumMirror which extends ClassMirror.

My use case:
https://github.com/seaneagan/unscripted/issues/13

I see ClassMirror has isEnum, so I'm going to consider this done. We could also have enums extend some base class but I think Sean's original request is satisfied even without that.


Fix small mistakes with Immutable warn demo

Continuation of #3042. My copy pasta skills weren't adequate, and I wasn't able to verify the code live. Sorry! Also, imported the raw code file in the markdown file as well.

Thanks yet another time, @timhwang21! 🤕

Hmm, actually the build won't succeed.
The error seems to be related to npm 5: https://github.com/npm/npm/issues/16861.
However, Travis says we have no caches (although I'm not sure if we could rely on this...)

rm -rf node_modules package-lock.json
npm install

on master fixed the build on these PRs. <shrug/>


Optimize (Product) Category Dropdown

Discussed at the workshop on 10.01.2023: It is hard for users outside of elcom to understand the different product categories H and C. Even though the information is offered by clicking on the info Icon, it is still challenging to map that information to the dropdown.
A possible idea would be to introduce a hierachy with a tree in the dropwdown.
Another possibility would be to make the text for the individual elements in the dropdown more descriptive. However, we will need to consider the width of the dropdown menu element with this apprach. The wording / text needs to work/fit for all locales  (DE, FR, IT).
In a first step, we will prepare a design suggestion to present to the client.

Suggestion looks good, but also needs to also be applied to the "Detail pages" not only the landing page

LGTM!

@sosiology I put your last comment in a new issue, the rest is implemented and deployed.


Update connect-applications-service.md

If a node hangs, all pods on this node will be destroyed.
Cluster ip is available in kubernetes cluster only, it needs the support of kube-proxy. So cluster ip is invalid on nodes in this private network but not in this cluster.

@liticer this repo does not maintain CN any more, you could send PR in https://github.com/kubernetes/kubernetes-docs-cn
thanks. =)


Install status should check plist (OS X)

Old installs may have invalid plists which causes problems after (brew) upgrades.
This checks to make sure the plist matches the one we generate on install. If invalid, it triggers the service install.

:+1:


MediaQuery PlatformBrightness is not updated on iOS when toggling dark mode during the app is running

Steps to Reproduce

Run below example on iPhone iOS 13.7 or iPhone 14.6
While the app is up and running
Toggle between dark or light mode in iPhone setting or Control Center

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Platform Brightness',
      home: TestPage(),
    );
  }
}

class TestPage extends StatelessWidget {
  const TestPage({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    Brightness brightness = MediaQuery.of(context).platformBrightness;
    return Scaffold(
      body: Container(
        color: brightness == Brightness.dark ? Colors.black : Colors.white,
        alignment: Alignment.center,
        child: DefaultTextStyle(
          style: TextStyle(
            color: brightness == Brightness.dark ? Colors.white : Colors.black,
            fontSize: 20,
          ),
          child: brightness == Brightness.dark ? Text('DARK') : Text('LIGHT'),
        ),
      ),
    );
  }
}

Expected results:
When Dark or Light mode changed, Flutter should trigger rebuild. 'MediaQuery.of(context).platformBrightness' should get the correct value and UI should update accordingly.
Actual results:
MediaQuery.of(context).platformBrightness didn't update at all. No rebuild is being triggered and no UI update.

Logs

[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-x64, locale en-GB)
    • Flutter version 2.2.3 at /Users/jason/flutter
    • Framework revision f4abaa0735 (6 days ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/jason/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.5.1, Build version 12E507
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.24.0

[✓] Connected device (3 available)
    • Pixel 4 (mobile)         • 9B061FFAZ00CJQ            • android-arm64  • Android 11 (API 30)
    • iPhone 11 (mobile) • 00008030-000170402290802E • ios            • iOS 13.7
    • Chrome (web)             • chrome                    • web-javascript • Google Chrome 91.0.4472.114

• No issues found!

Hi @fongja
This is a known issue, closing as a duplicate of https://github.com/flutter/flutter/issues/43806


Ponzu + Buffalo

The Ponzu/Buffalo video did not cover its original agenda.
Can we expect that info soon ? I ask cos Buffalo does look very interesting.
Ponzu and Buffalo use different databases; do they play nicely together ?

Hi @fbaube -
A family emergency prevented the original presenter (@bketelsen) from teaching the course, so I stepped in to do a "light" version of the class. I have not used Buffalo, but Brian has and even wrote a neat generator for caching Ponzu data responses in a Go app: ponzigen. This is the stack for the GopherCon site.
I believe you can think of Buffalo as the "front end" - designating routes, managing page templates, etc. You can use it for storing data in a SQL database as well, but if you want to use Ponzu's CMS, treat Ponzu as the main content datastore, and fetch the data via the Content API into the MVC flow of Buffalo. Since recording the video you mentioned, there have been several updates to Ponzu which enable full server application development, not just fetching the data from the CMS - issue all CRUD commands from API clients via the new api.Creatable, api.Deleteable, and api.Updateable interfaces. All of which could be accessed via a client app, such as on created with Buffalo.
You  can treat Ponzu as a database and CMS for anything that speaks http though, so it could be the back end for you iOS apps, smart TV apps, JS web app, etc. Buffalo included!
I don't plan to do a video about Ponzu + Buffalo, but I'd like to see one! I do intend to release a few videos highlighting more of Ponzu-specific features in the future though, so who knows -- maybe there will be something related to Buffalo if I get around to trying it out.
Steve

I was hoping for a cookbok presentation that would take me from zero to Ponzu-Buffalo integration in 60 minutes or less .. but that might be too much to hope for, if there is an impedance mismatch.


[Registo de Feeds] Replace all hardcoded links for ENV variables

Almost done. Missing documentation site only.


Build failure: missing Properties/Resources.resx

So, when I try to build this in VS 2013 or 2015, I get an error along the lines of:

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(2584,5): error MSB3552: Resource file "Properties\Resources.resx" cannot be found.

There's also some sort of complaint about System.Xaml not being found (apparently it doesn't actually exist until .NET 4.0), but that seems to just be a warning.

Fixed


Why jsx-no-bind rule is still enabled by default?

I recently investigated using the inline function in the render phase. For example, inline function on event handler. Some think like this:
const handleClick = () => {
  console.log('clicked);
}

<button onClick={handleClick}>Submit</button>

Based on the jsx-no-bind rule, we must use useCallback in this situation, but as far as I know, useCallback has its own use case, and we shouldn't use it for every function, especially when it comes to hooks components. After reading Kent C. Dodds blog post related to useCallback and Ryan Florence's post about inline function and Benedikt Meurer post about the performance of function.prototype.bind, I can't understand the reason of existing this rule.
Could someone please explain it to me?

Nothing's enabled by default - you have to be using a config that enables it.
You should generally use useCallback for every callback imo - see https://attardi.org/why-we-memo-all-the-things/ - but if you don't want to, feel free to disable the rule.


Error: Magic RPC Error: [-32603] Internal error: JSON-RPC error. (Login with SMS)

✅ Prerequisites

[x] Did you perform a cursory search of open issues? Is this bug already reported elsewhere?
[x] Are you running the latest SDK version?
[x] Are you reporting to the correct repository (magic-sdk)?

🐛 Description
RPC error when trying to invoke sdk.auth.loginWithSMS({ phoneNumber }).
[Description of the bug.]
🧩 Steps to Reproduce

Create React Native app with expo init
Set up the proper Magic provider

using "magic-sdk" for web
@magic-sdk/react-native for mobile.

Invoke SMS handler written as follow:

 const handleSubmit = async () => {
    console.log({ phoneNumber });
    try {
      const didToken = await m.auth.loginWithSMS({ phoneNumber });
      // TODO(michael): Validate the didToken with server, then set user context
    } catch (e) {
      const error = e as Error;
      // TODO(michael): Log error to sentry
      console.error(error);
      setLoginError(error);
      return;
    }

    navigate("LoggedInScreen");
}

🤔 Expected behavior
Send SMS message to mobile device
😮 Actual behavior
Web:
Failed to load resource: the server responded with a status of 400 ()

Error: Magic RPC Error: [-32603] Internal error: JSON-RPC error.
  at index.js:5:1
console.<computed> @ index.js:1
Promise.then (async)
(anonymous) @ index.js:5
invoke @ regeneratorRuntime.js:129
(anonymous) @ regeneratorRuntime.js:148
callInvokeWithMethodAndArg @ regeneratorRuntime.js:147
AsyncIterator._invoke @ regeneratorRuntime.js:152
(anonymous) @ regeneratorRuntime.js:117
exports.async @ regeneratorRuntime.js:238
_callee @ PhoneScreen.tsx:21
onClick @ PressResponder.js:364
callCallback @ react-dom.development.js:3945
invokeGuardedCallbackDev @ react-dom.development.js:3994
invokeGuardedCallback @ react-dom.development.js:4056
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:4070
executeDispatch @ react-dom.development.js:8243
processDispatchQueueItemsInOrder @ react-dom.development.js:8275
processDispatchQueue @ react-dom.development.js:8288
dispatchEventsForPlugins @ react-dom.development.js:8299
(anonymous) @ react-dom.development.js:8508
batchedEventUpdates$1 @ react-dom.development.js:22396
batchedEventUpdates @ react-dom.development.js:3745
dispatchEventForPluginEventSystem @ react-dom.development.js:8507
attemptToDispatchEvent @ react-dom.development.js:6005
dispatchEvent @ react-dom.development.js:5924
unstable_runWithPriority @ scheduler.development.js:468
runWithPriority$1 @ react-dom.development.js:11276
discreteUpdates$1 @ react-dom.development.js:22413
discreteUpdates @ react-dom.development.js:3756
dispatchDiscreteEvent @ react-dom.development.js:5889

React Native:
Error: ENOENT: no such file or directory, open '/Users/michaelhly/Projects/my-app/http:/<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at getCodeFrame (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:949:18)
    at Server._symbolicate (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:1022:22)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Server._processRequest (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:429:7) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/Users/michaelhly/Projects/my-app/http:/<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false'
}
Error: ENOENT: no such file or directory, open '/Users/michaelhly/Projects/my-app/http:/<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at getCodeFrame (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:949:18)
    at Server._symbolicate (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:1022:22)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at Server._processRequest (/Users/michaelhly/Projects/my-app/node_modules/metro/src/Server.js:429:7) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/Users/michaelhly/Projects/my-app/http:/<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false'
}

Magic RPC Error: [-32603] Internal error: JSON-RPC error.
at http://<IP_ADDRESS>:19000/node_modules/expo/AppEntry.bundle?platform=ios&dev=true&hot=false&strict=false&minify=false:162276:293 in _createSuperInternal
at node_modules/@magic-sdk/provider/dist/cjs/index.js:1:20981 in <global>
at node_modules/@magic-sdk/provider/dist/cjs/index.js:5:3638 in overlay.on$argument_1

💻 Code Sample
See steps to reproduce
🌎 Environment

Software
Version(s)

magic-sdk
"@magic-sdk/react-native": "^8.2.1" and "magic-sdk": "^8.1.1"

Browser
Chrome Version 102.0.5005.61 (Official Build) (arm64)

yarn
1.22.18

Operating System
MacOS Monterey 12.2.1

Issue was b/c I had testmode turned toggled. What is test mode?

Hey @michaelhly thanks for updating with a resolution!  testMode allows you to streamline your integration testing by eliminating the need to navigate to your mail client and click an actual Magic Link.  More details in our docs here: https://magic.link/docs/introduction/test-mode
Let us know if you have any additional questions!


Add visualization plugin framework

This is pluggable framework for visualizations that currently just replaces the demographics charts. This gives us something to hook up the new queries and configuration to as we build it out.
Also fixes an issue that was causing empty cohorts to unnecessarily refresh the demographic charts. A new random id was being generated every time an empty cohort was fetched causing the UI to constantly think it had changed.
After experiments with other charting libraries didn't pan out, this largely leaves the existing demographic chart code intact but moved into a plugin that's instantiated for each chart.

Does this change the appearance and/or behavior (e.g. tooltips) of the existing charts at all?

Only some minor details. Updated the PR description to match the current behavior.


save api (+ provider) in context

I think this is not a good idea. Instead, each time the api is required the await getApi() function should be called. That function has reconnect logic built in and selects another endpoint should connection not be possible for a selected one.

Closing this as noone has brought up a counter argument until now. Feel free to reopen.


proposal: slices: add LastIndex and LastIndexFunc

I propose the addition of:
// LastIndex returns the index of the last occurrence of v in s, or -1 if not present.
func LastIndex[S ~[]E, E comparable](s S, v E) int

// LastIndexFunc returns the last index i satisfying f(s[i]), or -1 if none do.
func LastIndexFunc[S ~[]E, E any](s S, f func(E) bool) int

which parallels the existence of:

strings.IndexXXX
strings.LastIndexXXX
bytes.IndexXXX
bytes.LastIndexXXX

In my use-case, I'm processing Unicode runes as a []rune and wanted to find the last occurrence of a given rune.

This makes a lot of sense, but devil's advocate, should we just tell people to do iterutils.Index(slices.Backwards(s), v) in a world where iterutils exists? I think the tricky of it would be that even with slices.Backwards, you run into issues with matching just the value vs. the index. Probably it's worth it anyway.

index doesn't make sense with iterators like it does with slices.

I can see a reasonable argument that the slices package should have a version of all relevant functions in the bytes and strings packages.

This makes a lot of sense, but devil's advocate, should we just tell people to do iterutils.Index(slices.Backwards(s), v) in a world where iterutils exists? I think the tricky of it would be that even with slices.Backwards, you run into issues with matching just the value vs. the index. Probably it's worth it anyway.

slices.Backwards doesn't exist:
https://cs.opensource.google/search?q=backwards&ss=go/go:src/slices/
and according to the quoted comment, neither does iterutils. so I am not sure how much value would be in a suggestion thats not even actionable. also the implementation is dead simple:
https://github.com/golang/go/blob/go1.21.1/src/strings/strings.go#L229

I just ran into this. Comes up as a nice utility function when cloning the tail of a stack datastructure. I ended up rewriting it by hand.


chore: reverse gdelta/separation dependency

This reversal will allow for the following definition for a perfectly normal space (with $T_1$ this is T_6, the last "whole number" separation axiom missing from mathlib), proposed at #13517.
/-- A topological space `X` is a *perfectly normal space* provided it is normal and
closed sets are Gδ. -/
class PerfectlyNormalSpace (X : Type u) [TopologicalSpace X] extends NormalSpace X : Prop where
    closed_gdelta : ∀ ⦃h : Set X⦄, IsClosed h → IsGδ h

bors merge


Show user that created and last updated object in advanced tab

As ...
Dan - Data Owner
I want ...
I easily see at a glance the user that created and last updated an object in nautobot
So that ...
I can quickly audit this important detail without having to go to the changelog
I know this is done when...

The user name that created and last updated the object are shown in the advanced tab
If the user name for the object in either case is not know, simple show an em dash

Optional - Feature groups this request pertains to.

[ ] Automation
[ ] Circuits
[ ] DCIM
[ ] IPAM
[ ] Misc (including Data Sources)
[ ] Organization
[ ] Plugins (and other Extensibility)
[ ] Security (Secrets, etc)
[ ] Image Management
[ ] UI/UX
[ ] Documentation
[ ] Other (not directly a platform feature)

Database Changes
No response
External Dependencies
No response

The quickest way to address this would be to look up the first and most recent ObjectChange record but those may have been cleaned up, especially the first.
Should we add a created_by, changed_by (and do similar username caching we do for ObjectChange in the event of a deleted user) to `ChangeLoggedModel?
What is the "user" if we don't have historical information?
What is the "user" in the direct ORM change case?

Hey team! Please add your planning poker estimate with Zenhub @bryanculver @gsnider2195 @HanlinMiao @jathanism

The quickest way to address this would be to look up the first and most recent ObjectChange record but those may have been cleaned up, especially the first.
Should we add a created_by, changed_by (and do similar username caching we do for ObjectChange in the event of a deleted user) to ChangeLoggedModel? This should "Just Work :tm:" with ChangeLoggedModel` (app developers shoudln't be required to add migrations)

Either attempt performant indexing of the ObjectChange records or use Redis caching

What is the "user" if we don't have historical information?

Do not show or em-dash.

What is the "user" in the direct ORM change case?

Outside of scope.

Also needs to be presented in the API for new UI to display

Also needs to be presented in the API for new UI to display

Does not need to be. We can make a separate API call to get this data.


Update UserGuide

Pull Request Test Coverage Report for Build 299

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 80.847%

Totals

Change from base Build 298:
0.0%

Covered Lines:
2520

Relevant Lines:
3117

💛  - Coveralls


CollectivePicker: wait for user to start typing to suggest creating a new entry

In Collective picker we show the create option right when you click on the input. One UX problem that can be induced by this is that users may be tempted to create a new user rather than searching for existing ones.
To prevent this, we should only show the "Create new" option(s) when something has been typed. For the reference, that's what Github does (see below).
To complete this and provide a better UX, we also need to prefill the form with what's been typed.
Specs

[ ] Don't show "Create new" options if nothing's typed
[ ] Pre-fill the form

[ ] If an email has been typed, pre-fill the email field
[ ] Otherwise pre-fill the name field

References

Github

Ping @xdamman

I believe the fixes enhancements made in https://github.com/opencollective/opencollective-frontend/pull/2978 are making the need to wait for user to start typing obsolete because it is now clearer that this is a search input.
@xdamman If that's ok for you I'd like to focus this issue solely on prefilling the form with the search input.


A Probable Memory Leakage Problem

Issue Description
When my application (GA + LSTM) started, it took 2.5 minutes per 10 generations, but after 1800, it took 8 minutes. No improvement, when I removed the set up:
Nd4j.getMemoryManager().togglePeriodicGc(true);
Nd4j.getMemoryManager().setAutoGcWindow(500);

the result of jmap:

ConcurrentHashMap is not used in my app.
Version Information

Deeplearning4j version : 1.0.0-beta4
Platform information (OS, etc) : centos 7.6
CUDA version, 10.0

Additional Information
Where applicable, please also provide:

Full log or exception stack trace (ideally in a Gist: gist.github.com)
pom.xml file or similar (also in a Gist)

Contributing
If you'd like to help us fix the issue by contributing some code, but would
like guidance or help in doing so, please mention it!

Given that number of objects, it's probably garbage collection overhead.
Is there anything special about your app, in terms of multi-threading, storing a bunch of different networks/arrays in memory, or anything like that?

Yes, there are 6 gpus with 6-threads in my app, storing about 2000 network params, and other arrays, but one network per a thread.
about snapshots, there is not cuda- linux-x86_64.jar, so can not be used.
I am currently using ubyte type ndarray with the shape of [16, netParams] to simulate bit operations of uint16 ndarray with the shape of [1, netParams] . If there are broadcasting bit operations, the performance of my app can be greatly improved. I desperately need them. I hope they are in beta 5.
the bit ops as :https://github.com/eclipse/deeplearning4j/issues/8119

Without the setup:
Nd4j.getMemoryManager().togglePeriodicGc(true);
Nd4j.getMemoryManager().setAutoGcWindow(500);

Processes may be killed ,and no other prompts.

I highly doubt there's a leak. Show your source code please.

My source is too long. From the result of  jmap op, the classes that occupy a lot of memory are not written by me, and  the container class with large memory usage is not directly used by me. Leakages are most likely caused by improper use of container classes.

Huh... That doesn't help. You're seeing symptom here, and making assumptions based on class names. That's not how it works. Leaks in java are only possible when you keep references to objects, preventing GC from collecting garbage.

I will add that another way to debug this sort of leak is to use memory dump in tools such as yourkit java profiler. That should show you the classes that are holding the references to all of those objects.
If we had a screenshot of that, it would help us isolate this.

yourkit dump would work, yea

yourkit screenshot:

AbstractIndividual objections are stored in object pools (one pool per thread). They have big ndarrays (shape=[16,netParams]).
the code to type converting:
    INDArray netParamArray = allNetParamParts.castTo(DataType.INT).mul(getPartWeights(getGpuId()));
        netParams = netParamArray.sum(0);  //convert [16,netParams] ubyte values to [1,netParams] uint16

        netParams = netParams.castTo(DataType.FLOAT);
        netParams.muli(paramsScaleFactor).subi(maxWeight);
        netParams = netParams.castTo(DataType.HALF);

If using bit ops, the first two lines of code can be optimized. the after code map int type values to HALF values.

Can you provide the actual dump file?
That screenshot you've provided only shows a small fraction of what we need here...

the size of  .snapshot file is 5.7G. How to send it to you?

Hm... in that case, maybe provide screenshots (of the paths) like you did earlier, for the following object types:

ConcurrentHashMap$Node
AllocationPoint
CudaPointer
CudaFloatDataBuffer
FloatPointer
String

screenshots:

So, to be clear:
With periodicGc enabled - application doesn't go oom, just slows down.
Without periodicGc enabled - you see this in heap.
Am i getting this properly?

No, this is with periodicGc enabled. Without periodicGc enabled, app may be killed soon after starting.

With periodicGc enabled - application doesn't go oom
?

Yes, the setup:
Nd4j.getMemoryManager().togglePeriodicGc(true);
Nd4j.getMemoryManager().setAutoGcWindow(600);
app can run more 2days, just slows down.

Looking at these screenshots and going by your description, we're about 95% sure that this is leaked references in your code.
i.e., you have some map, list, array, etc that's storing a bunch of INDArrays, that can't be garbage collected.
That's the only possible explanation here.
We can't say much beyond that without seeing actual code or having some way to run/reproduce this.

a bunch of INDArrays are stored in object pool (ConcurrentLinkedQueue), as:

Previous single GPU versions had no such problems. There are two suspicious methods.
One is copy ndarray from other thread:
 public INDArray copyNetParamPartsFromOtherGPU() {
         return Nd4j.createFromArray(allNetParamParts.data().asInt()).castTo(DataType.UBYTE);
}

Must change allNetParamParts.data().asInt() to allNetParamParts.data().dup().asInt()? or Arrays.copyOf(allNetParamParts.data().asInt(), netParamsCount)?
There is a little problem: DataBuffer.array() return the backing array, and not the buffer itself. Suggestions for providing a method: DataBuffer.array(DataType dataType).
Another is sharing data among GPUs:
private Map<Integer, INDArray> features3D = new HashMap<>();
public INDArray getFeatures3D(int GpuId) {
        INDArray features3DArray = features3D.get(GpuId);
        if (features3DArray == null) {
            synchronized (features3D) {
                features3DArray = features3D.get(GpuId);
                if (features3DArray == null) {
                    build(GpuId, dataSets);
                    features3DArray = features3D.get(GpuId);
                }
            }
        }
        return features3DArray;
    }

Here GpuId is same as threadId. this object is used as a static object.


Why I cannot run prepared sql statements using CodeIgniter's PDO (SQLITE) database object?

I'm trying to connect to sqlite database using php pdo driver in the code-igniter framework (version 3.0). At the beginning of the controller, I check whether tables exist and if not, I just create them using prepare statement:
	$this->load->database();
	$query = $this->db->get("SQLITE_MASTER");
	$count = count($query->result_array());
	if ($count === 0) {
			$sql  = "CREATE TABLE PAGES(PAGENAME VARCHAR(255), PROJNAME VARCHAR(255), MENUTEXT VARCHAR(255))";
			$stmt = $this->db->prepare($sql);
			$stmt->execute();
			echo "NEW TABLES CREATED!";
	}

But this gives me the error:
 Message: Call to undefined method CI_DB_pdo_sqlite_driver::prepare()

However, instead of prepare() and execute(), I use the query() function, it works flawlessly. Why is that? Since I'm building a production level app, performance considerations will push me to use the prepare statement sooner or later, so what should I do?

Because.
This is a bug tracker. If you need help with figuring out something, ask on the forums instead.


ini_set(): A session is active. You cannot change the session module's ini settings at this time

I'm using the session database driver on a MariaDB database and getting the error message ini_set(): A session is active. You cannot change the session module's ini settings at this time emanating from this line of code. I'm yet to fathom why the session write is failing in the first place, but I'm guessing the ini_set message is the result of a bug?
CI version: 3.1.9
OS: CentOS 7.5
Apache/PHP-FPM
PHP 7.2.14 (cli) (built: Jan 11 2019 10:01:17) ( NTS )
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies

Yes, this is a bug. But that line is actually intended to aid with better error reporting; do you know if the same thing happens on lower PHP versions?

I'm sorry I don't; I only have CI 3 on a PHP 7.2 environment to test with

hi

I'm sorry I don't; I only have CI 3 on a PHP 7.2 environment to test with

Is session.auto_start false or true? If true, change it to false.

I'm sorry I don't; I only have CI 3 on a PHP 7.2 environment to test with

Is session.auto_start false or true? If true, change it to false.

It is false.

@Paradinight If that was the case, a different error would occur, saying a session can't be started in the first place. Pay attention. :)
@jamieburchell Someone opened another issue, which contradicts this one; see #5715 - write() fails, but there's no warning about ini_set() during an active session, and it's also on PHP 7.2.

Maybe they have a different error reporting level.

... they're all E_WARNINGs.

Right, well obviously I don't know anything about the application of the other issue nor can I explain why this happens, hence the opening of the issue. Clearly it shouldn't be assumed that a session is not already active because in some cases one already is.

Clearly it shouldn't be assumed that a session is not already active because in some cases one already is.

I don't know what prompted you to say this, but no - that's far from clear and in fact it makes very little sense as there's no point in attempting to use CI_Session if you've already started a session otherwise. This isn't the problem here, as _fail() is always supposed to be triggered from inside an active session ...
The question is why would a session handler be forbidden to alter its own INI settings, regardless of state, and why you're the first one to encounter such a problem. If other users aren't getting this warning under the same conditions and on the same PHP version, then something doesn't add up.
I notice you've shown your PHP CLI version, but does that actually match the one behind your web server? Those can differ, and even if they don't they do have separate configurations.
That is, unless @Paradinight is on the money and you have started a different session prior to loading CI_Session; not by having it auto_start, but by a manual session_start() call (and haven't shown other error messages).

Before I look in to this further, can you clarify your statement: "Yes, this is a bug"

session_start appears in the constructor for the CI_Session library. As the error message suggests, you cannot change the session handler once a session has been opened.

I also encountered this situation.
CI version: 3.1.9
OS: CentOS Apache
PHP 7.2.13
I wrote an API, the single request will not have this error, but the call to the API from the web page will have this error [fast multiple calls]

Before I look in to this further, can you clarify your statement: "Yes, this is a bug"?

Well, as I said, that ini_set() call is supposed to improve error reporting (i.e. actually show the possibly erroneous save_path in the error message generated by PHP, because it's otherwise just an internal property of CI_Session and PHP has no knowledge of it). This is explained by _fail()'s docblock.
If it generates an extra E_WARNING, that's a bug because it's not what was intended.

I guessed you either assumed a session wouldn't be open (hence my comment) or didn't realise this was forbidden.

That would be the latter, but it's not as simple as that ...
Obviously, there's people for whom the E_WARNING doesn't appear; you're the first one to report it. Then also, that line was added way before PHP 7.2 was released (probably before it entered development at all), so it may be a new thing. And finally, #5715 shows that even on 7.2 it may not appear, so it may be the case that only a very specific set of conditions trigger the error.

To clarify also the failure function is triggered because of a failure to write here: https://github.com/bcit-ci/CodeIgniter/blob/3.1-stable/system/libraries/Session/drivers/Session_database_driver.php#L226
Could you move the ini_set to before the session_start perhaps?

I could and that's the obvious fix that I'm thinking about, but with all the strangeness around this issue, I want to know the cause first. Otherwise, we might simply hide another error that would continue to lurk somewhere and cause other problems in the future.
And we may've just found it - the line you pointed to is a "failure to obtain lock" condition, which is more of a refuse-to-write than a straight write failure. It's a decent safeguard, but not meant to be triggered - a lock is supposed to be obtained in read() and I just now notice that CI_Session_database_driver::read() never triggers a failure to lock error.
Can you test what happens if you change https://github.com/bcit-ci/CodeIgniter/blob/0e59db6c207b3108565ef4ab6c18b81353478d91/system/libraries/Session/drivers/Session_database_driver.php#L191 to this:
} else { return $this->_failure; }

@hyxj1220 Are you using the database driver? And how sure are you that you have the exact same error? Excuse my doubting you, but a lot of the short "I have the same problem" replies we get are false, by people who see a similar but different error message, under different conditions.
Also, that a single request doesn't trigger the error is irrelevant. The point of interest is only the one which does.

Well, as I said, that ini_set() call is supposed to improve error reporting (i.e. actually show the possibly erroneous save_path in the error message generated by PHP, because it's otherwise just an internal property of CI_Session and PHP has no knowledge of it). This is explained by _fail()'s docblock.

No need to explain; I'm aware of what this is supposed to be doing.

} else { return $this->_failure; }

Is that supposed to be } else { return $this->_fail(); } ?

No, it's $this->_failure, although either should work. You could test both if you wish, but the point here is just to see if read() doesn't break with it for some reason.

Apologies for the delayed reply. I tried out the above code change and no longer had the error but I can't be sure that was a result of the code change or if the issue just didn't present itself. As it stands the underlying timeout issue has now been resolved so I probably won't encounter this naturally now. If I get a chance, I'll try and setup a test to force it.

Well, if you changed it to return $this->_failure, you wouldn't get the warning about being unable to change ini settings, but you should still get one to tell you that reading session data has failed - that's how you'd know the same conditions were encountered.
In the event that it doesn't work as intended, you'd have empty session data (well, technically -1 will be read and then deserialized to empty because that's not valid session data). That shouldn't be possible though ... we're looking for the other clue.

Is it solved? I have the same problem
Severity: Warning
Message: ini_set(): A session is active. You cannot change the session module's ini settings at this time
Filename: Session/Session.php
Line Number: 282

That should do it. @jamieburchell Thanks for all, I wish everybody was both that patient and willing to help.

Thank you. I'm sorry I didn't get around to setting up a test environment to invoke the issue. I still plan on doing just that and hopefully, if I can reproduce the issue, I'll be able to confirm it's now fixed with your commit.

Ok, that's great. I was really only asking you to do a "just in case" test, but if you do manage to find an issue with it before we release 3.1.11, we'd be able to prevent it from creeping in there.

Just change constant variable called ENVIRONMENT to production located on index.php. Problem solved LOL

It already is

I tried to reproduce the issue today on a staging site by simulating a slow cURL request but sadly was unable to do so. Still, I plan to update and test CI on this site soon so if I run into it again I'll be sure to revisit this.

@amkaub That would be sweeping it under the rug, not solving the underlying problem.
@jamieburchell Cool, thanks in advance for any potential further feedback. I do consider this to be solved already though.

I had this issue with CI version 3.1.10 and 3.1.11 on PHP 7.1 or 7.2 using files or database driver. I later found out that the issue was to do with having a blank line spacing before the starting  tag in my controller files. When I removed that space, everything is working fine now. Phew, had to research and troubleshoot for almost 6 hours ...:-)

if use php extension 5.0.0+,  ping function will return true not  '+PONG';that will cause these errors in CI 3.1.5

Thanks @sutherlandnele , you saved those 6 hours of my time

Ran Into This Issue On Mac OS (Runs fine on windows and digital ocean server on cloudways [linux based]) removing blank space before " <?php" solved my problem. thanks @sutherlandnele
its a bug.

Just change constant variable called ENVIRONMENT to production located on index.php. Problem solved LOL

Alhamdulillah found this answer, big thanks bro SOLVED lol

Just change constant variable called ENVIRONMENT to production located on index.php. Problem solved LOL

this helped me great.. but still got one issue "text/x-generic database.php ( PHP script, ASCII text )". how do I fix this?

Just change constant variable called ENVIRONMENT to production located on index.php. Problem solved LOL

good answer <3