Issues with version 0.17.2

I love this plugin and thanks to the author for his efforts.
The problem now is that when upgrading this plugin from version 0.17.0 to version 0.17.2 updated today, there is a serious problem, and after clicking the update file to download the update, the obsidian immediately freezes.
After restarting the obsidian, the screen stays on the loading page until you go to the plugin folder to delete the tagfolder plugin, and you can log in to obsidian normally.
After that, re-download versions below 0.17.0 to use normally.
I don't know if there is a conflict with other plugins, hopefully the author will fix this.
Thanks.

Agreed - the tag folder plug-in is freezing obsidian.  It's not usable now.  Have turned off all other plugins but still freezes.
Will try using 0.17.0 as suggested.

Thank you for opening this issue, and I apologise for your inconvenience!
Before v0.17.2, link tracing was working excessively. It has been fixed at v0.17.3.
If we are not using LinkFolder, there are no more extra load. And if we are using it, it have been done in lean way.
Could you please try v0.17.3?
Sorry for a brief reply from mobile!

I just tried version 0.17.3 and the bug has been solved, thank you for solving the problem so quickly! @vrtmrz


Large /variables request

I'm seeing very slow performance when using better errors. Looking in the console I see the XHR request to /variables is over 80MB and it takes ages to render.
I have tried adding the following which helps on some pages but not all:
if defined?(BetterErrors) && Rails.env.development?
  BetterErrors.ignored_instance_variables += [ :@_request, :@_assigns, :@_controller, :@ahoy, :@view_renderer ]
end

Is this a better errors issue or is there a configuration setting somewhere to reduce the amount of info displayed?

:+1:

:+1:

:+1:

To work around huge /variables responses, I patch BetterErrors::ErrorPage#inspect_value to ignore objects larger than 100kB:
# In config/initializers/better_errors.rb
module BetterErrorsHugeInspectWarning
  def inspect_value(obj)
    inspected = obj.inspect
    if inspected.size > 100_000
      inspected = "Object was too large to inspect (#{inspected.size} bytes). " \
        "Implement #{obj.class}#inspect if you need the details."
    end
    CGI.escapeHTML(inspected)
  rescue NoMethodError
    "(object doesn't support inspect)"
  rescue Exception
    "(exception was raised in inspect)"
  end
end

BetterErrors::ErrorPage.prepend(BetterErrorsHugeInspectWarning)


Add externalTrafficPolicy to bastion helm chart

Description
This PR adds externalTrafficPolicy field to the bastion controller helm chart. Setting this value to Local enables sources ip to be kept but might reduce traffic balance across nodes.

/rebase

/rebase

/merge


Re enable kafka e2e tests

Unable to fix kafka e2e tests while updating deps. Follow up with a fix and re-enable.
https://github.com/knative/eventing-contrib/pull/1208/files#r421898921
Describe the bug
A clear and concise description of what the bug is.
Expected behavior
A clear and concise description of what you expected to happen.
To Reproduce
Steps to reproduce the behavior.
Knative release version
Additional context
Add any other context about the problem here such as proposed priority

/assign


On mobile, the header doesn't have enough space

On mobile, the header where you have the different button doesn't have enough space to exist.
I think we can safely remove the edit button. You likely don't want to edit a dashboard on a so small screen

I think we are good for the moment. Removing different buttons helped somehow 🤣


builder error - unexpected eof in archive

-----> Ruby app detected
!
!     Command: 'set -o pipefail; curl --fail --retry 3 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/bundler-1.6.3.tgz -s -o - | tar z
xf - ' failed unexpectedly:
!
!     gzip: stdin: invalid compressed data--format violated
!     tar: Unexpected EOF in archive
!     tar: Unexpected EOF in archive
!     tar: Error is not recoverable: exiting now
!

This sounds like a failure to reach out and download the buildpack, probably a aws side issue, unsure if there is anything we can do to catch the error and retry or if we would want to

I think we've seen this before in #785, but I know that this error has intermittently occurred during Ruby buildpack deploys and we've never really known the cause for this.
Are you able to reliably reproduce this issue? If so, is there a way you could give us some more detailed output from the curl?

Unable to replicate, but I would assume it was a network error

It could feasibly be a cdn replication issue, is it only with this version?

I've bumped the buildpack versions again in https://github.com/deis/deis/commit/1c6e55fe9f48c2a172b597566f29b6a2fd8d7e14, but we've seen this issue occur in previous versions as well. My guess is that it is just a CDN issue as you described.

@bfosberry Going to close, as it sounds sporadic - please reopen if you see it again.

sounds good, as long as this does not drop a user into blocked update state where the git repo is updated but the image is not and they can't even force push.

sounds good, as long as this does not drop a user into blocked update state where the git repo is updated but the image is not and they can't even force push.

That shouldn't be the case - if it is, we should file a bug to make this more resilient in general. Sporadic network errors is a reality


Get currently selected characters name and ID

As we look to add private information that information will need the character it is associated with.

Party addressed by #126

Update: This will be fully addressed by #126

Closed by #126


Titles appearing with prefix characters not associated with title name

Windows 10
Latest bundles installed from April, 2017, directions followed, all complete
I'm having identical issues as I reported here in July, 2016

Before performing a match, this file appears as follows:
M:\Avi Dar (A)\Lucas Entertainment Lucky Fuck (2011) Scene Avi Dar, Edin Sol.mp4

Upon pressing "MATCH", a screen appears prompting for the match to begin. In this screen, the file name changes to become:
M%3A%5CAvi Dar (A)%5CLucas Entertainment Lucky Fuck (2011) Scene Avi Dar%2C Edin Sol

Upon completion of the match, the screen name in Plex for the file becomes:
M%3A%5CAvi Dar (A)%5CLucas Entertainment Lucky Fuck (2011) Scene Avi Dar%2C Edin Sol

If I unmatch the file, it returns to the title listed in #1 ^ above

Here is the result from the activity log:
Apr 24, 2017 23:26:35.144 [23464] INFO - Plex Media Scanner v<IP_ADDRESS>34-995f1dead - Microsoft PC x64 - build: windows-i386 - GMT -04:00
Apr 24, 2017 23:26:35.145 [23464] INFO - Windows version: 6.2 (Build 9200), language en-US
Apr 24, 2017 23:26:35.145 [23464] INFO - 12 3292 MHz processor(s): Architecture=0, Level=6, Revision=16130 Processor Identifier=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel
Apr 24, 2017 23:26:35.145 [23464] DEBUG - "C:\Program Files (x86)\Plex\Plex Media Server\Plex Media Scanner.exe" --scan --refresh --section 261
Apr 24, 2017 23:26:35.253 [19120] DEBUG - Opening 20 database sessions to library (com.plexapp.plugins.library), SQLite 3.13.0, threadsafe=1
Apr 24, 2017 23:26:35.440 [19120] DEBUG - Scanning Avi Dar using en(Plex Video Files Scanner) with 0 current media items in the database...
Apr 24, 2017 23:26:35.443 [22088] DEBUG - HTTP requesting GET http://<IP_ADDRESS>:32400/:/metadata/notify/cullTimeline?librarySectionID=261&sinceTime=1493089595
Apr 24, 2017 23:26:35.450 [22088] DEBUG - HTTP 200 response from GET http://<IP_ADDRESS>:32400/:/metadata/notify/cullTimeline?librarySectionID=261&sinceTime=1493089595
Apr 24, 2017 23:26:35.613 [19120] DEBUG - Performing a scan with 'Plex Video Files Scanner' (language: en virtual: 0).

Apr 24, 2017 23:26:35.626 [19120] DEBUG - No match for hash.
Apr 24, 2017 23:26:35.627 [19120] DEBUG - Downloading document http://<IP_ADDRESS>:32400/library/changestamp
Apr 24, 2017 23:26:35.627 [19120] DEBUG - HTTP requesting GET http://<IP_ADDRESS>:32400/library/changestamp
Apr 24, 2017 23:26:35.633 [19120] DEBUG - HTTP 200 response from GET http://<IP_ADDRESS>:32400/library/changestamp
Apr 24, 2017 23:26:35.635 [19120] DEBUG - Added new metadata item (Lucas Entertainment Lucky Fuck) with ID 115692
Apr 24, 2017 23:26:35.644 [22088] DEBUG - HTTP requesting GET http://<IP_ADDRESS>:32400/:/metadata/notify/create?librarySectionID=261&ids=115692&types=1
Apr 24, 2017 23:26:35.645 [17852] DEBUG - Matching 'Lucas Entertainment Lucky Fuck' (ID 115692) with agent com.plexapp.agents.cockporn
Apr 24, 2017 23:26:35.646 [17852] DEBUG - Issuing search query: http://<IP_ADDRESS>:32400/system/agents/search?mediaType=1&id=115692&identifier=com.plexapp.agents.cockporn&duration=-1&filename=M%253A%255Cavi%2520dar%2520(A)%255CLucas%2520Entertainment%2520Lucky%2520Fuck%2520(2011)%2520Scene%2520Avi%2520Dar%252C%2520Edin%2520Sol%252Emp4&lang=en&openSubtitlesHash=37957ee664c8d385&plexHash=26a1d870ca07c839511ab87a47739288a16af992&name=Lucas Entertainment Lucky Fuck&year=2011
Apr 24, 2017 23:26:35.647 [17852] DEBUG - HTTP requesting GET http://<IP_ADDRESS>:32400/system/agents/search?mediaType=1&id=115692&identifier=com.plexapp.agents.cockporn&duration=-1&filename=M%253A%255Cavi%2520dar%2520(A)%255CLucas%2520Entertainment%2520Lucky%2520Fuck%2520(2011)%2520Scene%2520Avi%2520Dar%252C%2520Edin%2520Sol%252Emp4&lang=en&openSubtitlesHash=37957ee664c8d385&plexHash=26a1d870ca07c839511ab87a47739288a16af992&name=Lucas Entertainment Lucky Fuck&year=2011
Apr 24, 2017 23:26:35.651 [22088] DEBUG - HTTP 200 response from GET http://<IP_ADDRESS>:32400/:/metadata/notify/create?librarySectionID=261&ids=115692&types=1
Apr 24, 2017 23:26:35.651 [22088] DEBUG - HTTP requesting GET http://<IP_ADDRESS>:32400/:/metadata/notify/changeItemState?librarySectionID=261&metadataItemID=115692&metadataType=1&state=2&metadataState=matching
Apr 24, 2017 23:26:35.660 [19120] DEBUG - Removing 0 media items that were left.
Apr 24, 2017 23:26:35.660 [19120] DEBUG - Removing 0 directories that were left.
Apr 24, 2017 23:26:35.661 [19120] DEBUG - Updating directory '' (ID 6936) to time 2017-04-24 23:25:33.


Migrate bootstrap modal window to vuetify dialog

Bootstrap has been deprecated in the new framework. Should use new vuetify dialog to popup the modal window.

 Migrate bootstrap modal window to vuetify dialog


[webpubsub] Add service-mode parameter

This checklist is used to make sure that common guidelines for a pull request are followed.
Related command

Create socketio with serverless mode az webpubsub create -n MyWebPubSub -g MyResourceGroup --kind SocketIO --service-mode Serverless
Update exist socketio to serverless mode az webpubsub update -n MyWebPubSub -g MyResourceGroup --service-mode Serverless
General Guidelines

[x] Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
[ ] Have you run python scripts/ci/test_index.py -q locally? (pip install wheel==0.30.0 required)
[ ] My extension version conforms to the Extension version schema

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

webpubsub


Add sort order to photo album widget

Says Mike
The sort order (which got edited out) is another example of a ten minute job for somebody with really basic code skills.

If there were a "newbie" tag in the project issues on github, this could be tagged with it.

This might be up my alley. What needs to happen here? Does an argument need to just get passed along via Commanche to register what order the album is sorted in?

I know nothing about photo  albums, but know enough PHP and enough Hubzilla to have been able to trace this down to probably here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/widgets.php#L687
Following that trail leads here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/photos.php#L465
And, finally, it seems the list of albums comes from here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/photos.php#L425
If you're trying to sort them, learning some SQL would let you edit that SELECT query to perhaps sort them. If you're trying to sort the pictures in the album, I don't know where in Hubzilla that's done.
If you already know javascript, PHP is not to hard to learn. SQL is a different beast, but its basics not too hard to learn either.

Good insights - I don't really do too much beyond HTML/CSS/Commanche at the
moment, but maybe it's time to crack out a good beginner's PHP book.
On Wed, Nov 18, 2015 at 4:21 PM, ken restivo<EMAIL_ADDRESS>wrote:

I know nothing about photo albums, but know enough PHP and enough Hubzilla
to have been able to trace this down to probably here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/widgets.php#L687
Following that trail leads here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/photos.php#L465
And, finally, it seems the list of albums comes from here:
https://github.com/redmatrix/hubzilla/blob/93e5449c0843494c49ae799fa044299ca5cdeb6d/include/photos.php#L425
If you're trying to sort them, learning some SQL would let you edit that
SELECT query to perhaps sort them. If you're trying to sort the pictures in
the album, I don't know where in Hubzilla that's done.
If you already know javascript, PHP is not to hard to learn. SQL is a
different beast, but its basics not too hard to learn either.
—
Reply to this email directly or view it on GitHub
https://github.com/redmatrix/hubzilla/issues/163#issuecomment-157883495.


Consistent spikes in process time/idle process after a few seconds of opening project (Steam)

Tested versions
Godot Engine v4.2.2
-Reproducible on Steam version
-Have not been able to do so in Standalone, works fine
System information
MacOS Sonoma 14 - Godot Engine v4.2.2.stable.official - Vulkan API 1.2.231 - Forward+
Issue description
After a few seconds upon running the project (About 10-15) the idle process skyrockets to usually between 22 ms-28 ms, regardless of if anything happens in-game. This happens consistently on Steam version, and for context to background apps are running to hinder my CPU.
I have tried many things to try and identify what was causing it. All my scripts were fine and there were no timers that go off after 10 seconds. I checked if it was the commonly reported vsync issue for mac, changing window types, and tampered with other possible project settings but that didn't solve it. I even tried removing all nodes including all enemies, the player, and the tilemap from the main scene. With only 4 collision boxes it was still reproducing the issue. I even made a brand new project with absolutely nothing as a main scene and it still had the spikes after 15 seconds.
I have searched online high and low and tried everything but nothing seemed to work. I was about to chalk it up to my device being faulty, when I decided to try the project on the standalone 4.2.2, and to my surprise it worked perfectly well, no stuttering or frame drops at all. This problem didn't even start after a Godot update or me changing anything in my project either, I closed Godot one night after finishing an enemy and it worked perfectly fine with no stutter. The next morning I decide to playtest before adding a new tileset and the spikes just started happening, seemingly for no reason.
Steps to reproduce
No steps really, simply just have a project open for a couple seconds and close to the 1000 ms frame it will start producing the spikes. My device is a macOS Sonoma 14, and this bug only happens on the Steam version of Godot.
I attached videos that display the spikes (Or lack thereof), with the project in Standalone version, Steam version, and an empty project on Steam version.
https://github.com/user-attachments/assets/98005bab-997d-406b-98dc-eec1d549df91
https://github.com/user-attachments/assets/c888f59c-2999-4758-9eb5-7b5c4705fc6a
https://github.com/user-attachments/assets/f4d00350-e0bc-4483-b4c8-f792f44de0b0
Minimal reproduction project (MRP)
N/A

when I decided to try the project on the standalone 4.2.2, and to my surprise it worked perfectly well, no stuttering or frame drops at all

This sounds like a Steam overlay issue. Does this occur if you disable the Steam overlay in the Steam settings?
Note that disabling Steam overlay does not disable the actual hooking of Steam DLLs into the game process. It only disables the shortcut and some functionality.

when I decided to try the project on the standalone 4.2.2, and to my surprise it worked perfectly well, no stuttering or frame drops at all

This sounds like a Steam overlay issue. Does this occur if you disable the Steam overlay in the Steam settings?
Note that disabling Steam overlay does not disable the actual hooking of Steam DLLs into the game process. It only disables the shortcut and some functionality.

I've had Steam overlay disabled since I installed the Steam version since the overlay shortcut (Shift + Tab) can mess up/overlap with some of the script editor's keyboard shortcuts. I've always used the Steam version and this problem is new and out of the blue.
I haven't made any changes to the project, my Steam settings, or opened (Only closed a few afterwards) any new programs since the day BEFORE the issue started happening, and when I playtested that day it worked fine. While I was researching the issue yesterday I came across some other posts that shared similar issues and most of them did have solutions (Most involving project settings), but nothing worked for me.
In case this info helps as well, all of the scripts I have so far in the project use _physics_process instead of _process, and I've only installed one plugin about a month ago which hasn't had any recent updates and doesn't seem to directly correlate to this issue either since the nodes it affects are also gone in the empty project.
The only clue I have is that it starts to happen close to the 1000 frame mark and since it also happens on an empty project it doesn't give me much help. Is there a background process that updates during runtime that could be causing this?

Is there a background process that updates during runtime that could be causing this?

Not that I know of.

Well it's embarassing to say but it was actually pretty simple to solve. I tried restarting Steam and it doesn't seem to be reproducing for now, must have had something to do with the cache.
Strange that it persisted when I reset my computer though, since that also obviously restarts Steam. But regardless, I'm guessing the Steam cache had something to do with it, thank you @Calinou for the quick replies and help!

Well it's embarassing to say but restarting Steam seemed to work, the issue hasn't happened afterwards so far, must have something to do with the cache. Strange since it persisted even after restarting my computer which also restarts Steam, but regardless this should be the fix if nothing else works.


graphql error

I'm submitting a ...

[x] bug report
[ ] feature request
[x] support request

What is the current behavior?

Graphql error happened when @akalachman clicked connect and not logged into contact tracing app

What is the expected behavior?

No error

What is the motivation / use case for changing the behavior?

Would like to know what's going on with it and may not necessitate a change/bug fix
Uncaught (in promise) Error: GraphQL error: Not Authorised!     at new t (ApolloError.js:37)     at Object.next (QueryManager.js:168)     at b (Observable.js:169)     at w (Observable.js:213)     at e.value (Observable.js:265)     at observables.js:19     at Set.forEach (<anonymous>)     at Object.next (observables.js:18)     at b (Observable.js:169)     at w (Observable.js:213)
thanks @akalachman

@kavyvetri could you suggest anyone who may be able to help?  @mmmoli ?

@djdeiter ?

@kalgynirae ?


Replaces images that use outdated SRML terminology

Preview number 1

Preview number 2

Looks great @danforbes ! I'm not big on the 'usage' diagram as I find it having two x-axis's to be visually confusing. I might suggest we take that out and just write one sentence or so for each dev track.. but that's probably a different PR :+1:

Shared your comment with Zsofia, @wheresaddie...thanks you for sharing. As you  know I will take all the design assistance I can get :sweat_smile:


Remove dependency on Pagy

Pagy is a nice, simple pagination gem that we turned to for paginating previous runs. However, it uses offset, which is prohibited in Shopify Core:

and just generally won't scale well. Plus, most apps don't really need paginated runs since they'll just run a Task once. It might be worthwhile to investigate removing Pagy and implementing some sort of value-based pagination, or even dropping pagination and allowing users to load more data on their page with a button click at the bottom of their page.

I saw your linked PR and it seems you have a pretty good handle on things but wanted to link a similar issue we had in Partners. We analyzed the performance implications of value-based pagination vs offset-based pagination. Not only is the performance better but it's also more reliable as documents change.
See https://github.com/Shopify/partners/pull/23097

That's an awesome writeup, thanks for sharing @simonlevasseur ! ❤  The more I read up on the two, the more apparent it became that we should make the switch, but it's really neat to see the performance implications in an actual production application.


fix Issue 15861 - [REG 2.069] Wrong double-to-string conversion with -O

https://issues.dlang.org/show_bug.cgi?id=15861

That's not a helpful test case.  Can't you reduce it now that you know which sub-part of the code it was in?

As will all most optimizer problems, they depend on a very specific path through the system, which is pretty hard to reduce. In this case, it'd likely take several hours work. Even then, such test cases tend to be fragile, as some other change somewhere else in the compiler will invalidate them.
This sort of thing is why "fuzz testers" are effective, but we don't have a fuzz tester. Wanna make one?

As will all most optimizer problems, they depend on a very specific path through the system, which is pretty hard to reduce. In this case, it'd likely take several hours work. Even then, such test cases tend to be fragile, as some other change somewhere else in the compiler will invalidate them.

I asked because sometimes the problem construct is obvious once the bug has been found.  That makes me think we're better off with no test case than a useless test case, or putting it in phobos instead.  We shouldn't be adding more phobos-dependent test cases.

This sort of thing is why "fuzz testers" are effective, but we don't have a fuzz tester. Wanna make one?

I've made several, but none specifically for the optimizer.  We really need the ability to create elem-to-elem test cases.

I put the test case in its own file, because it depends on phobos. I understand the value of a test suite that does not depend on Phobos, because code gen bugs causing Phobos to fail are hard to debug.
The optimization I removed was simply wrong. A double move cannot be replaced with two float moves. It's essentially putting random data into a float register, and since some bit patterns are not always supported, documented, or behave portably between FPUs, unpredictable things can happen. Such things are hard to reliably detect with a test case.

My concern is that the only useful thing we'll be able to do with the test case in the future is delete it.  It's unlikely to get reduced in the future, and will be very sensitive to changes in both dmd and phobos.  I feel like it doesn't actually add any value, and we'd be better off not having it at all.
Anyway, the compiler change LGTM so if you're dead set on keeping the test case feel free to toggle auto-merge on.

Auto-merge toggled on

Why this PR is based on master? Does it mean this regression fix needs to be delayed until 2.072.0 release?

@WalterBright @yebblies @9rnsr Here is a reduced test case:
void main()
{
    double val =<PHONE_NUMBER>.;

    (){
	    assert(val ==<PHONE_NUMBER>.);
    }();
}

Maybe you could include it too when you put this on stable.

@CyberShadow thank you, this is awesome. I'll do a new PR to replace the test case with yours.


Implement fast path of with_new_children() in ExecutionPlan

Which issue does this PR close?

Closes #1965.
Rationale for this change

What changes are included in this PR?

Are there any user-facing changes?

@yjshen @alamb
Please help to take a look.

ExecutionPlan

I think this looks great @mingmwang -- thank you very much.
Another thing we might want to consider doing would be to change the signature of ExecutionPlan trait to require an Arc to call with_new_children, like so:
    fn with_new_children(
        self: Arc<Self>,
        children: Vec<Arc<dyn ExecutionPlan>>,
    ) -> Result<Arc<dyn ExecutionPlan>> {
  // put with_new_children_if_necessary implementation here
...
}

That would ensure that we could always apply the with_new_children_if_necessary logic

Done.


Add ArrayAccessor, Iterator, Extend and benchmarks for RunArray

Which issue does this PR close?
Part of #3520
Rationale for this change
See issue description.
What changes are included in this PR?

Implement Extend for the PrimitiveRunBuilder and GenericByteRunBuilder
Add TypedRunArray
Add RunArrayIter and ArrayAccessor for TypedRunArray
Add benchmarks for StringRunBuilder

Are there any user-facing changes?
Users will get new features for RunArray.
No breaking changes.

I intend to review this early next week, apologies for the delay, it is hard for me to find time to review large PRs

Thank you again


Functions to develop (Meeting on Jan 13 0900)

Here are the 4 functions to be included in our package and the person assigned

dataframe getData(startDate, endDate, ageGroup, sex) - Vadim
showSummaryStat(startDate, endDate) - e.g. daily new case - Vanessa
plotLineByDate(startDate, endDate, movingAvgRange=#Days) - Lianna
plotHistByCond(startDate, endDate, condition=Age/Region) - John

DateFormat: YYYY-MM-DD

The according issues were created and the final modifications of the arguments can be visible in the docstring.


Icon: Add camera roll icon

Deploy preview for gestalt ready!
Built with commit 69c4007bd8c8aa0c185d73e741792ec8de6d01a4
https://deploy-preview-317--gestalt.netlify.com

Warnings

:warning:

:file_folder: Bundlesize - Bundle size increase detected, please review

Filename
Size Diff
Gzip Diff
Prev Size
Current Size
Prev Gzip
Current Gzip

gestalt.js
:small_red_triangle: 0.1%
:small_red_triangle: 0.2%
267.47 KB
267.79 KB
59.92 KB
60.06 KB

gestalt.es.js
:small_red_triangle: 0.1%
:small_red_triangle: 0.2%
264.78 KB
265.1 KB
59.56 KB
59.7 KB

  Generated by :no_entry_sign: dangerJS

Codecov Report

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

@@           Coverage Diff           @@
##           master     #317   +/-   ##
=======================================
  Coverage   65.48%   65.48%
=======================================
  Files          57       57
  Lines        1101     1101
  Branches      263      263
=======================================
  Hits          721      721
  Misses        276      276
  Partials      104      104

Continue to review full report at Codecov.

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


How to map relationships that don't have remote IDs?

Hello @3lvis,
I consider using Sync as a replacement for RestKit in my project. While RestKit is super powerful, it is also very complicated, and outdated.
Now to my question? How can I map nested objects that don't return an unique ID? But based on their parent object they are unique?
Example:
{
  "id": "578613fc037aaaa70a829",
  "firstname": "John",
  "lastname": "Doe",
  "address": {
    "street": "Main Street",
    "city": "Naples",
    "state": "FL",
  },
}

I get an user with an unique ID. I can easily map that object. But the embedded address doesn't have any exposed ID. With RestKit it was possible to map the parent's ID to this child to make it unique. Basically take user.id as remote ID.
Is there any way to do that with Sync?

@falkobuttler Hi Falko! It's great that you're giving Sync a try, I hope you like it.
There are two ways you can sync a JSON object that doesn't have a remoteID. You can either set one of it's attributes as the primary key, or you can store the JSON object as NSData, I have done this myself in a couple of apps works pretty well. You can find more information on how to store dictionaries using Sync here.
I hope this helps, let me know if we can do anything else to make the transition easier. 💐

Hey @3lvis, neither of your recommended solutions works in this case though.
Storing it as NSDate would discard all of the benefits of an object model. And I can't use any of the properties a primary key because they are not unique.
I was thinking more about of either a way of using the parent's primary key as the child's primary key or to generate a unique id based on the parent, i.e. user_578613fc037aaaa70a829 as guid for the address.
I was able to do something similar with RestKit using the metadata property or by using something like parent.id as allowed name as primary key.

@falkobuttler Hi Falko, sounds like we don't have a solution for your requirements out of the box. The quickest way for you to add this would be as you say to modify your JSON so it adds the parent id as the ID of the child object.
I'm sorry that there isn't a better way to do this.

@3lvis Hi!
Today I met same problem when I decided to move all my synchronisation to Sync. Before I use Sync only for part of my app model and part of them I managed by "hand".
I would say it is very common situation when you have JSON with object or array of objects without id.
In my case JSON looks like this:
"_id" : "Ryw7TgD69JYEgixL5",
...
    "userWeight" : [
        {
            "weightValue" : 65.0,
            "measuredAt" : ISODate("2017-01-11T14:39:11.125+0000")
        },
        {
            "weightValue" : 62.0,
            "measuredAt" : ISODate("2017-03-04T17:55:49.290+0000")
        },
        {
            "weightValue" : 63.4,
            "measuredAt" : ISODate("2017-03-07T22:15:00.290+0000")
        }
    ],
    ...

I don't need id's for userWeight in my application and add it only to be able to sync is not very clean way.
I also tried to save userWeight as Binary Data, but I can't work whit it after unarchive because it returns Any instead of Array.
I also tried to set measuredAt as sync.isPrimaryKey but it didn't help.
Maybe we can think on another possible solution how to create related objects without id?

Setting the date as the primary key is the solution here though. Your approach was right. We'll only have to find out what went wrong. Why didn't it work? Did you use ’YES’ as the value? Did you set a remote key too? I believe it is necessary to set both.
PS. The Any (’id’) object returned from Binary data can simply be typecasted. But let's take the above approach! 👍🏼

Hi @xTheRamon !
Yes, the idea to use Date field as id make sense. I set only property sync.isPrimaryKey equal to true for measuredAt and didn't set sync.remoteKey because remote field name in JSON equal to name of the field in core data entity. I thought it only needs when field name different. I will set also sync.remoteKey and check tonight.
About second approach. After unarchive the value and print it I see somthing like this:
__NSArrayI
(
        {
            "weightValue" : 65.0,
            "measuredAt" : ISODate("2017-01-11T14:39:11.125+0000")
        },
        {
            "weightValue" : 62.0,
            "measuredAt" : ISODate("2017-03-04T17:55:49.290+0000")
        },
        {
            "weightValue" : 63.4,
            "measuredAt" : ISODate("2017-03-07T22:15:00.290+0000")
        }
    )

I don't know how to deal with it. Ideally I want to get array of dictionaries:
[
	["weightValue" : 65.0, "measuredAt" : ISODate("2017-01-11T14:39:11.125+0000")],
	["weightValue" : 62.0,  "measuredAt" : ISODate("2017-03-04T17:55:49.290+0000")],
	["weightValue" : 63.4,  "measuredAt" : ISODate("2017-03-07T22:15:00.290+0000")]
]

because I want to sort an array by date and get weight value.

@achirkof Yeah! I believe for isPrimaryKey you explicitly need to set remoteKey too.
I would definitely try this approach since you want to sort values too.
Regarding the second approach, well, the value you printed is already an array. You probably have something like this:
id unarchivedObject = [NSKeyedUnarchiver unarchiveObjectWithData:managedObject.userWeight];
NSLog(@"%@", unarchivedObject);

The only thing you need to do is:
NSArray *arrayObject = (NSArray *)[NSKeyedUnarchiver unarchiveObjectWithData:managedObject.userWeight];
NSLog(@"Array: %@", arrayObject);
NSLog(@"Dictionary entry: %@", arrayObject[1]); // Should be weightValue: 62.0

My difficulty is in type of fitnesProfile entity because it is array of single value:
let requestFitnesProfile = NSFetchRequest<NSFetchRequestResult>(entityName: "FitnesProfile")
let userFitnesProfile = try! dataStack.mainContext.fetch(requestFitnesProfile) as! [FitnesProfile]

Now userFitnesProfile is array of single FitnesProfile. After that i do:
let weight = NSKeyedUnarchiver.unarchiveObjectWithData(userFitnesProfile[0].userWeight as! Data)

Then weight is __NSArrayI. As I understand it is Obj-C NSArray type. And after I can't typecast it. I have no access to Xcode right now to check. I will try both approaches tonight.

@xTheRamon you will be right. When I set both properties isPrimaryKey and remoteKey for measuredAt field synchronisation works as expected.
About second approach. I can't get subscripts of weight[0] because type Any have no subscriptions. And I don't understand how to cast it to Array. I also have no any methods to do anything with weight.

Hi!
You should be able to cast the result of unarchiveObject to Array.
Something like this:
if let array = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? [String: Any] {
    //...
}

@3lvis unfortunately can't

I'm stuck with same problem cannot use unarchiveObject.
Any advice?

@dneykov please see https://github.com/SyncDB/Sync/issues/204#issuecomment-294754585, this is the recommended way to solve this 'bug'.

@dneykov no, I have decided to use separate entity.

My situation is little bit different. Here is my json:
{
    "id": "2",
    "name": "Test name",
    "description": "test",
    "max_distance_walk": "250",
    "max_fee_hour": "3",
    "options": {
        "option1": "0",
        "option2": "0",
        "option": "0"
    },
    "updated_at":<PHONE_NUMBER>
}

I have options as Binary Data and I want to access them as Dictionary as it says here https://github.com/SyncDB/Sync#retrieving-mapped-dictionaries
Is returning Any and I cannot convert it to anything.

Finally it works. Here is my solution.
func checkOption(key: String) -> Bool {
    guard let options = self.getOptions() as? [String: String] else {
        return false
    }

    guard let option = options[key] else {
        return false
    }

    return option.isEqual("1")
}

private func getOptions() -> Any? {
    return NSKeyedUnarchiver.unarchiveObject(with: self.options! as Data)
}

I see, looks like the solution was casting to [String: String].

Updated the README https://github.com/SyncDB/Sync/blob/master/README.md#retrieving-mapped-arrays


fail in executing Capture

Describe the bug
the Capture function doesn't work for v1.2.52
To Reproduce
Steps to reproduce the behavior:
Alt+o,z -> enter capture
then nothing happened
Expected behavior
a panel of Capture should pop up
Screenshots
n/a
Platform:

Lenovo P52

Sublime debug console output
Traceback (most recent call last):
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 471, in on_done_base_st4
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 469, in on_done_base_st3
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 686, in on_done
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 76, in GetCapturePath
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 47, in GetCaptureFile
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgcapture.py", line 41, in GetDict
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgdaypage.py", line 57, in dayPageGetName
File "C:\Users\abc\AppData\Roaming\Sublime Text\Installed Packages\OrgExtended.sublime-package\orgdaypage.py", line 41, in dayPageGetPath
File "./python3.3/os.py", line 246, in makedirs
File "./python3.3/ntpath.py", line 231, in split
TypeError: Can't convert 'list' object to str implicitly
Additional context
use default settings

A fix should be in 1.2.53.
I found the culprit.
Although, it is possible you might have a list in your configuration file for your dayPagePath, which isn't valid.
IE:
dayPagePath: "c:/mypath/",
should not be:
dayPagePath: ["c:/mypath"],
Looks like I need to up my testing efforts. It seems like I have some real users now of the package as people are finding bugs and since I have been the only real user of the package till now I have tended to be a little lax in my testing. Thanks for finding this.

Thank you, Davids. After removing the brackets, the "cache" window pops up. This package is really helpful for me to practice GTD.  :-)

Hmmm, I can get spaces working do you have the exception?
I noticed that if the path doesn't exist it does throw an exception.
I have fixed that in 1.2.53

1.2.53 has been pushed.

I have the same issue. Writing from Panel into /Users/xxx/Desktop/refile.org works. But if it try to use a path witch spaces (in this case it is an iCloud folder, which works for all other .org files) i get the following error in the console:
2023-01-12 10:38:09,656 - DEBUG - TEMPLATE:
2023-01-12 10:38:09,657 - DEBUG - TEMPLATE:
2023-01-12 10:38:09,657 - DEBUG - TEMPLATE:
2023-01-12 10:38:09,657 - DEBUG - TEMPLATE:
Traceback (most recent call last):
File "/Applications/Sublime Text.app/Contents/MacOS/Lib/python33/sublime_plugin.py", line 948, in on_deactivated
run_view_callbacks('on_deactivated', view_id)
File "/Applications/Sublime Text.app/Contents/MacOS/Lib/python33/sublime_plugin.py", line 708, in run_view_callbacks
callback(v, *args)
File "/Applications/Sublime Text.app/Contents/MacOS/Lib/python33/sublime_plugin.py", line 152, in profiler
return event_handler(*args)
File "/Users/Damian/Library/Application Support/Sublime Text 3/Packages/OrgExtended/orgextended.py", line 113, in on_deactivated
capture.onDeactivated(view)
File "/Users/Damian/Library/Application Support/Sublime Text 3/Packages/OrgExtended/orgcapture.py", line 198, in onDeactivated
target, capturePath, captureFile, at, toinsert = GetCapturePath(GetViewById(view.settings().get('cap_view')), template)
File "/Users/Damian/Library/Application Support/Sublime Text 3/Packages/OrgExtended/orgcapture.py", line 76, in GetCapturePath
filename = GetCaptureFile(view, template, target)
File "/Users/Damian/Library/Application Support/Sublime Text 3/Packages/OrgExtended/orgcapture.py", line 47, in GetCaptureFile
filename = templateEngine.ExpandTemplate(view, target[1], GetDict(), sets.Get)[0]
File "/Users/Damian/Library/Application Support/Sublime Text 3/Packages/OrgExtended/orgutil/template.py", line 62, in ExpandTemplate
"file": str(view.file_name()),
AttributeError: 'NoneType' object has no attribute 'file_name'
2023-01-12 10:38:36,617 - DEBUG - CHECKING...

As you can tell. I dont use spaces in my paths. :)
The panel has always been somewhat temperamental, i really hate that code, but the sublime api is a little limited. I will see if i can make time to sort that out at some point.

Thanks! Now that I use a directory without blanks, it works just fine for me. I think using the panel (from a user perspective ;)) is handy.

Heh. Yes. I thought the panel would be handy as well, but ultimately found its klunkyness irritated me.

Hmmm, I cannot seem to make this happen anymore.
I have set my refile variable to:
/Users/blah/Temp Folder/refile.org
And it expands fine.


Text getting focus instead of touchables (Android only)

Description
I just upgraded to version 0.69.5-2 very meticulously and everything compiles and runs, but the focus engine seems to be focusing Text nodes now instead of Touchables. I discovered this by turning on a debug setting, then you can see the Text gets the focus instead of the button. With debug mode off it looks like the focus is not working until you click a few times (as we don't have focus states for text).
This was not the case in the previous version we were running (0.66.3-3).
Version
0.69.5-2
Output of npx react-native info
System:
    OS: macOS 12.6
    CPU: (8) arm64 Apple M2
    Memory: 122.89 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.18.1 - ~/.nvm/versions/node/v16.18.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v16.18.1/bin/yarn
    npm: 8.19.2 - ~/.nvm/versions/node/v16.18.1/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.11.3 - /Users/wouterds/.rbenv/shims/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.1, iOS 16.1, macOS 13.0, tvOS 16.1, watchOS 9.1
    Android SDK:
      API Levels: 26, 28, 30, 31
      Build Tools: 28.0.3, 30.0.2, 30.0.3, 31.0.0
      System Images: android-31 | Google TV ARM 64 v8a
      Android NDK: Not Found
  IDEs:
    Android Studio: 2021.2 AI-212.5712.43.2112.8609683
    Xcode: 14.1/14B47b - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.17 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.0.0 => 18.0.0
    react-native: Not Found
    react-native-macos: Not Found
    react-native-tvos:  0.69.5-2
  npmGlobalPackages:
    *react-native*: Not Found

Steps to reproduce
Render a screen with some touchables on top, then some text in between and then some more buttons. When navigating down from the top you will first pass through the text nodes and only then land on the touchables on the bottom.
Snack, code example, screenshot, or link to a repository
I currently don't have a demo project to show this behaviour but can look into one if desired and we don't get this sorted out else.

This resolves the issue but it can't be right that I would have to explicitly opt-out from this everywhere we use Text? There's ways around it by abstracting Text into a custom component but still that seems not ideal?

So like I said we could go this route, having a custom Text component, this solves it for now but it doesn't really sit right with me, it's just a workaround, not a decent solution imo.

I'm gonna close it for now as above workaround works, but look into demo project if I can reproduce this bug

We have the same issue

I ended up creating a custom Text component where we set the default value for accessible to false.
import React, { memo } from 'react';
import { Text as RNText, TextProps as RNTextProps } from 'react-native';

type Props = RNTextProps;

export type TextProps = Props;

const Text = (props: Props) => (
  <RNText
    {...props}
    accessible={props.accessible || false}
  />
);

export default memo(Text);

@wouterds I took at look at the commit history of the Android native textinput views, and found this change that it seems to me might explain this: https://github.com/react-native-tvos/react-native-tvos/commit/d4a78183b6c80d978a90d9dc85705a2ff30fef43
Can you try reverting that change and see if it fixes the issue for you?

@douglowder I'll give it a try

I'm not able to get my app compiling when I fork the react-native-tvos repo & apply the patch.

@wouterds after applying the patch, you would need to execute
./gradlew :ReactAndroid:installArchives

inside the react-native-tvos repo, and then copy the android directory with that build into your app directory, replacing the existing node_modules/react-native/android

+1 same issue.

+1 Same issue here on last version of react-native-version

+1 Same issue too

+1 Same issue on 0.68.2-6. I didn't have the issue right when I upgraded to 0.68.2-6 but have it now.

Ok I've picked this up and had a look, and I think the change that made this happen is probably this change in RN core, or one of the changes that happened in Text.js afterwards: https://github.com/react-native-tvos/react-native-tvos/commit/f3bf2e4f51897f1bb71e37002c288ebf3b23cf78
Most likely, what we want for TV is to not have Text components be pressable, or setting accessible to false by default, but I'll take a look at different options and come up with the right fix.


Initial file storage support

Initial implementation for review. @slax57 what do you think about something like this?
adds options methods
  ...
  storagePath?: string | ((resource: string) => string)
  filenameFromData?: (args: {
    data: string
    resource: string
    field: string
    filename: string
  }) => string

Fixes: #51

Thank you for this contribution @kav ! :pray:
We need to keep in mind that ra-supabase is a library used by other people, so it should offer customization. We need to think about how the user will use this library smoothly.
I see some pitfalls in this first implementation such as:

it automatically adds support for file upload, which may be something the user does not want,
it targets all 'resources' (*), which may be something the user doesn't want either,
it does not allow the user to manipulate data

Based on @slax57 comment, we could implement it as follow:
Expose a helper method to upload files:
export const storeInSupabase = async ({
    supabaseClient,
    bucket,
    data,
}: {
    supabaseClient: SupabaseClient;
    bucket: string;
    data: any;
}) => {
    // Upload file to the bucket
    return Promise.resolve('newFiles');
};

With this in place, the user can use this method in the withLifecycleCallbacks helper on their own:
export const dataProvider = withLifecycleCallbacks(
    supabaseDataProvider({
        instanceUrl: REACT_APP_SUPABASE_URL,
        apiKey: REACT_APP_SUPABASE_KEY,
        supabaseClient,
    }),
    [
        {
            resource: 'posts',
            beforeSave: async (data: any, dataProvider: any) => {
                const newFiles = await storeInSupabase({
                    supabaseClient,
                    bucket: 'my-bucket',
                    data,
                });
                return { ...data, ...newFiles };
            },
        },
    ]
);

We could even go further by exposing another helper to directly improve the dataProvider
export const addUploadCapabilities = ({
    supabaseClient,
    dataProvider,
    resource,
}: {
    supabaseClient: SupabaseClient;
    dataProvider: DataProvider;
    resource: string;
}) =>
    withLifecycleCallbacks(dataProvider, [
        {
            resource,
            beforeUpdate: async params => {
                await storeInSupabase({
                    supabaseClient,
                    bucket: 'my-bucket',
                    data: params,
                });
                return params;
            },
        },
    ]);

With this in place the user can add the capabilities to upload file as follow to their dataProvider:
const dataProvider = addUploadCapabilities({
    supabaseClient,
    dataProvider,
    resource: 'posts',
});

What do you think about that? This code is not irrevocable, feel free to update it.
Do not forget to document it as well please :smile:
Thanks again for contributing!

Thank you for this contribution @kav ! 🙏
We need to keep in mind that ra-supabase is a library used by other people, so it should offer customization. We need to think about how the user will use this library smoothly.

Yes, I am deeply aware of the necessary thought that must go into building libraries and frameworks for a wide range of use cases. This was the point of my initial issue and this draft. Namely; discussing the areas where we need to allow customization to make it both easy and flexible enough for all use cases of supabase storage while note interfering with folks not using supabase storage at all.
I think a key goal here for me is that users of the supabaseProvider should have an "easy" time adding file handling. By "easy" I mean not have to read more than the typescript signature or the README for the provider init to get basic file handling working. That means solutions that require the user to have a lot of experience in ReactAdmin, for example adding WithLifeCycleHooks themselves, are frankly too complex. Conversely solutions that don't support users' use cases and force them to patch or roll their own useLifeCycleHooks are also... not great. I think the wrapper you suggest might offer the right balance here.

I see some pitfalls in this first implementation such as:

it automatically adds support for file upload, which may be something the user does not want,

It's a no-op if they don't provide the storagePath parameter, we could further remove the WithLifeCycle hooks wrapper completely if an option is not provided or as you note add the functionality with a wrapper. It's worth noting it only modifies fields with RawFiles attached. Sending RawFiles directly to ra-postgrest is almost definitely incorrect as that just ends up sending the local path and various other properties as serialized json. The file itself is lost.
That said I'm with you that a user might want to handle some files via this mechanism and some via some other file management system so further granularity on which files to upload is definitely needed.
It's possible a user could handle that by wrapping the existing implentation with a WithLifeCycleHooks of their own to handle other file systems. That would allow you to handle other file systems with their own hooks before we get the data and so without RawFiles we'd skip any already handled.

it targets all 'resources' (*), which may be something the user doesn't want either,

Good point, given the user might want to handle different resources with a different mechanism, I suspect this is the best point to handle the attachment of the hooks. I can add the ability to set resources to use the file upload. I suspect this will justify the addUploadCapabilites wrapper being user facing as if and only if a resource is provided does the storagePath parameter become required.
Counter argument to all that is as the last stop before ra-postgrest any file we don't handle won't be handled elsewhere and will therefore be lost no?

it does not allow the user to manipulate data

This is an excellent point, I'll look at a good place to put this but I suspect something similar to the existing functions makes sense. Do you have any further thoughts there?
To the opening objective; I don't know that the storeInSupabase helper on it's own is particularly valuable as a user facing function, but I do really like structuring it provides along with addUploadCapabilities regardless of how it's exposed to the user. I'll restructure to that.
I think allowing composition of addUploadCapabilites or perhaps something like withSupabaseStorage to split that out might also be compelling for folks using only the storage component with a different underlying data provider. To that end maybe a different package is in order? Any thoughts there?
One key bit of missing functionality, and unfortunately I think it's intrinsic to the existing LifecycleHooks implementation is that we don't offer any ability to handle the previous file when a user changes it. Obviously the user can structure their files in such a way that it can be inferred but that's something to consider. Related question is upsert, likely we'll need an option with a sensible default there.

One key bit of missing functionality, and unfortunately I think it's intrinsic to the existing LifecycleHooks implementation is that we don't offer any ability to handle the previous file when a user changes it. Obviously the user can structure their files in such a way that it can be inferred but that's something to consider. Related question is upsert, likely we'll need an option with a sensible default there.

Don't use the beforeSave for that. Prefer the beforeCreate and beforeUpdate. beforeUpdate has access to all the update params, including previousData


CI: test on multiple ruby versions.

Currently, the tests were running on ruby 2.6 and using latest
RubyGems. This is broken since latest RubyGems support Ruby>3. This is
fine since ruby 2.7 is now deprecated.
Kintsugi runs usually on macOS which comes built-in with ruby 2.6, so
it's worth keep testing on that version. So this commit add tests on
multiple ruby versions.

@byohay we can add head version also.


criar jar executavel com java fx jdk 12.1

como crio um jar no java fx? uso jdk 12.1 e o jdkfx 12.1 nao sei usar o jdkmods

Documentation about JavaFX distribution is here, with different sections based on your needs.


SSMS Login Failed.

Description

Steps to reproduce
No response
DBeaver Version
22.1.3
Operating System
No response

Hello @zsm369
What database do you use?
What connection type did you use?
Why do you think this is a DBeaver issue and not an incorrect login/password?

There has been no update on the issue for a long time. If the issue is still actual for you, feel free to reopen it.


Add new country - Ukraine, cover it with tests, fix some bugs

Changes:

added support of new country - Ukraine;
all methods covered with tests;
correction of small mistakes.

@rstacruz , @marocchino , I've got a few notes:

numerify method has one bug and can not be applied to all cases when there is necessity to numerify some mask: in many cases it generates numbers like 098 that can not be applied (at least in Ukraine) to apartment numbers, street numbers etc. I added private method to support Ukrainian properly and did not touch original method (touching it requires a lot of changes).

const_missing is buggy and not thread-safe. When I was checking data with regexp in tests I found out, that in approximately 50% of all cases it assigned English data instead of Ukrainian. So 100% of tests that look like assert FFaker::AddressSN::REGIONS.include?(FFaker::AddressSN.region) or assert_include @tester::FIRST_NAMES_FEMALE, (@tester.first_name_female), actually, do not test anything and simply are useless. Someone has to implement thread-safe const_missing method or just move data files that has more than 50-100 elements into .rb files, convert them to arrays and assign directly to the constants. It's sad that current implementation does not work properly, cause the idea to load constants dynamically and put data to separate files - is really nice.

@rstacruz , @marocchino it would be really grateful if someone merges this to include in the nearest release. I'd like to use this in my current project :)

@marocchino , I've refactored everything I wanted: fixed regular expressions for tests, moved data to data files etc.
By the way, I've also fixed regular expression for NameBR (it did not correspond its data and tests failed in some cases).
And I've also found bugs in AddressRU tests - ALL of them are useless and buggy :) But correcting that much is out of scope of this pull request, I suppose. There is the same problem as with Ukrainian. And the author of tests added /\A[a-zа-я\-\s]+\z/i as wrong workaround (so this expression works, because he added checking of English characters, that can not be present in Russian words), but when constant is assigned in some cases properly, tests fail, cause there is one more character, that is specific to Russian - ё (it should be added to regexp separately and a-z should be removed). Tests should be run multiple times to reproduce this. Failure looks like this:
  </\A[a-zа-я\-\s]+\z/i> expected to be =~
  <"Орёл">.
test_city(TestAddressRU)
/Users/kovpack/ruby_apps/ffaker/test/test_address_ru.rb:12:in `test_city'
      9:   end
     10:
     11:   def test_city
  => 12:     assert_match /\A[a-zа-я\-\s]+\z/i, @tester.city
     13:   end
     14:
     15:   def test_province

But in general, everything that related Ukrainian - is fixed.

@marocchino , I've also added Ukrainian lorem - very important thing. Functions pretty good :)

:+1:

:+1:


How can I fix this issue?

Thanks for your interest in the project!
If you cd into the metrics directory, are you able to run get_trec_eval.sh successfully?


Same issue, two different casks, two totally different computers/networks

I have had this issue today for both installing open office and something else (I'm sorry I can't remember what it was but it wasn't open office, I can check tomorrow) at work today. Two totally different computers on different networks, both MAC OSX Yosemite.
Having run the command it asks then redoing a brew install, I have the same issue again. I assumed at work today there was a Cask issue, but as I say, this is totally different, but the same issue.

Thanks!

See the Error line? Seems like some permissions got screwed. Try sudo chown -R ${USER}:staff /opt/homebrew-cask.

@vitorgalvao fair enough. Yes thank you this worked!


Motivating example

Do we have a good motivating example for the talk/paper? I know we have @anirudhdagar's scipy demo https://github.com/scipy/scipy/compare/main...AnirudhDagar:scipy:array-api-demo as well as @thomasjpfan's scikit-learn PR https://github.com/scikit-learn/scikit-learn/pull/22554/files. I could crib some relevant parts from the diff(s) there. Or should we come up with a standalone script that does something? Some good things to show in the example would be:

That the majority of NumPy-like code will remain unchanged (other than np -> xp).
Use of array_namespace at the top of the function.
Some functions are renamed (e.g., concat -> concatenate).
Some functions aren't included and have to be worked around.
Some NumPy behaviors aren't guaranteed in the spec so should be written in a more portable way (e.g., explicitly indexing every axis, avoiding implicit cross-kind casting, not passing Python scalars to functions, not using int dtypes for floating-point functions).
Some libraries may need to be special-cased for performance purposes.

I can demonstrate all of these using the above scipy and scikit-learn PRs. So it's a question of whether it's better to show the actual real world usage, or if it's better to make the example more coherent and self-contained.
And we'll definitely mention scipy and scikit-learn efforts later regardless of the example we choose.

For talks, I usually try to start with "something interesting enabled by the new tech" to get everyone excited. For this case, "Look at all the benefits SciPy and scikit-learn have from using Array API". For scikit-learn, we have docs on ArrayAPI usage, and this benchmark notebook to show performance benefits.
Afterwards, one can dive into the implementation details for getting Array API to work in the attendee's projects. For implementation details, I think it's better to be more coherent and self-contained. This can include real world usage if it is self-contained enough.

By the way if you have any benchmarks that are graphs or anything else with a nice figure we can include that would be useful.

I reran benchmarks using scikit-learn that compared CuPy, PyTorch+GPU, PyTorch+CPU, and NumPy in this gist containing a notebook and a CSV file with the results.


CLOUD-844 fixed comparing service names

@doktoric or @akanto

Jenkins build finished, all tests passed.
Refer to this link for build results: http://ci.sequenceiq.com/job/cloudbreak-pull-request/1333/


Generic Consumer [WIP]

Overview

Add a generic consumer through a Metric{} struct and Metricer interface{}
Better nomenclature suggestions appreciated. metricizer? metricator?
The idea is to have a single CLI interface that can consume metrics from the various sources out there.
Add a KafkaMetric{} which implements the Metricer interface{}.
This new construct allows us to easily add a InfluxMetric{} or KairosMetric{} which also satisfy the Metricer interface{} in the future.
Add a action package which supports printing to STDOUT.
We can add more actions to the package and thus to the CLI in the future.

CLI
Implemented with urfave/cli (formerly codegansta).
Currently, it only supports one action print:
./consumer-c0308e5 -help
NAME:
   DC/OS Metrics Consumer: Consumer Metrics From Anywhere! - A new cli application

USAGE:
   consumer-c0308e5 [global options] command [command options] [arguments...]

VERSION:
   consumer-0.0.1 @ revision c0308e5

COMMANDS:
     print, k  Print metrics to stdout for a given consumer
     help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

And one consumer subcommand for print, kafka:
./consumer-c0308e5 print -help
NAME:
   DC/OS Metrics Consumer: Consumer Metrics From Anywhere! print - Print metrics to stdout for a given consumer

USAGE:
   DC/OS Metrics Consumer: Consumer Metrics From Anywhere! print command [command options] [arguments...]

COMMANDS:
     kafka  Use the kafka consumer

OPTIONS:
   --help, -h  show help

The kafka subcommand supports several flags for kafka-specific configuration:
./consumer-c0308e5 print kafka -help
NAME:
   DC/OS Metrics Consumer: Consumer Metrics From Anywhere! print kafka - Use the kafka consumer

USAGE:
   DC/OS Metrics Consumer: Consumer Metrics From Anywhere! print kafka [command options] [arguments...]

OPTIONS:
   --brokers value    Brokers <host:9092,host:9092,..> (default: "localhost:9092") [$CONSUMER_CONF_KAFKA_BROKERS]
   --topic value      Kafka topic to get [$CONSUMER_CONF_KAFKA_TOPIC]
   --partition value  Kafka partition to read from (default: 0) [$CONSUMER_CONF_KAFKA_PARTITION]
   --offset value     Kafka offset (default: 0)

Build
The build is done by an additional task to the Makefile, build-consumer.
This task uses git tags (probably won't scale beyond this one release unless we make this consumer a part of the larger build of dcos-metrics) and git revision (probably the best, stable way to version it currently).
You can run this task from the root of the repo, and it will create consumer-<$SHA1> in the root as the artifact binary executable.
WIP

Testing

[ ] More unit test coverage, everywhere
[ ] Meta-linting

Add more consumers

[ ] InfluxMetric{} Consumer
[ ] KairosMetric{} Consumer
[ ] CollectdMetric{} Consumer
[ ] StatsdMetric{} Consumer
[ ] Other consumers?

Add more actions

[ ] Ship Action

Ship -> Statsd
Ship -> Collectd

Build

[ ] Use build.sh consumer functionality

...

Side Note / Lazy Kafka Producer
I built a really basic producer for kafka metric which sends the result of uptime to a local kafka cluster I was running in Docker. This producer code, in the producer/ directory, can probably be tossed before this merges.

I've given this a quick run through and it looks okay, but probably needs a more thorough review on my part. At a high level, I'd like to see us use a single Makefile target that builds all binaries (using / modifying the new build script) instead of creating a new target. This will also allow us to reuse the test script (perhaps with some modifications?) so that we can get automatic test results and coverage reporting into Jenkins.

Sounds good. Note #4 in my WIP list above - I wasn't sure the best way to add this into the bash script off hand.

Oh, totally missed that. Thanks!


slowMo does not exist in type 'Fixtures<{}, {}, PlaywrightTestOptions, PlaywrightWorkerOptions>'

Hi!
I'm trying to set up config (TypeScript) for test runner (1.12.0) as described here - https://playwright.dev/docs/test-configuration
But got the error for slowMo property -
Object literal may only specify known properties, and 'slowMo' does not exist in type 'Fixtures<{}, {}, PlaywrightTestOptions, PlaywrightWorkerOptions>'

Doing the following should work for your use-case:
{
  use: {
    launchOptions: {
      slowMo: 1234,
    }
  }
}

@mxschmitt
It works!
Thanks a lot for rapid reaction!

I will keep it open since the example seems broken: https://playwright.dev/docs/test-configuration#global-configuration


Restoring NVM from Aeotec Z-Stick Gen5 to Aeotec Z-Stick Gen7 controller marks all nodes as dead

Is your problem within Home Assistant (Core or Z-Wave JS Integration)?
NO, my problem is NOT within Home Assistant or the ZWave JS integration
Is your problem within Z-Wave JS UI (formerly ZwaveJS2MQTT)?
YES, BUT a Z-Wave JS UI developer has told me to come here
Checklist

[X] I have checked the troubleshooting section and my problem is not described there.

[X] I have read the changelog and my problem was not mentioned there.

Describe the bug
What causes the bug?
Restoring the NVM backup from a Aeotec Gen5 Z-Stick to a Aeotec Gen7 Z-Stick.
What do you observe?
All nodes are dead.
What did you expect to happen?
I expected all the nodes on my Aeotec Gen5 to be functional on my Aeotec Gen7.
Steps to reproduce the behavior:

Backed up my Aeotec Gen5 with Z-Wave JS UI
Restore the backup of my Gen5 on my Gen7 with Z-Wave JS UI
Restart

Device information
Old controller : Aeotec Gen5 SDK 6.7
New controller : Aeotec Gen7 SDK 7.18.1
Home automation system : Jeedom with Z-Wave JS plugin
How are you using node-zwave-js?

[ ] zwave-js-ui (formerly zwavejs2mqtt) Docker image (latest)
[ ] zwave-js-ui (formerly zwavejs2mqtt) Docker image (dev)
[ ] zwave-js-ui (formerly zwavejs2mqtt) Docker manually built (please specify branches)
[ ] ioBroker.zwave2 adapter (please specify version)
[ ] HomeAssistant zwave_js integration  (please specify version)
[ ] pkg
[ ] node-red-contrib-zwave-js (please specify version, double click node to find out)
[ ] Manually built from GitHub (please specify branch)
[X] Other (please describe)

Which branches or versions?
Jeedom 4.3.14 with Z-Wage JS plugin 2022-12-25 01:03:08 (Wave JS UI 8.6.1).
Did you change anything?
no
If yes, what did you change?
No response
Did this work before?
Don't know, this is a new device
If yes, where did it work?
No response
Attach Driver Logfile
zwavejs_2023-01-19.log

I believe this should be fixed by the changes I did in v10.10.0: https://github.com/zwave-js/node-zwave-js/releases/tag/v10.10.0
Please update to the latest version, then try to restore the NVM on the 700 series stick again.

I believe this should be fixed by the changes I did in v10.10.0: https://github.com/zwave-js/node-zwave-js/releases/tag/v10.10.0 Please update to the latest version, then try to restore the NVM on the 700 series stick again.

Yesssssss!!!!
Thank you very much! My Aeotec Gen7 has been sitting in a drawer for months.
I backed up and restored it to the latest version, put my Gen7 on my home automation server and everything seems to be working as it should.


Add netcoreapp2.0 testing to Google.Cloud.Diagnostics.AspNetCore

Currently testing against netcoreapp2.0 causes a failure.
We need to wait for xunit 2.3.0-rc1-build3780 to be released.
See https://github.com/xunit/xunit/issues/1363

We now use xUnit 2.3.0 (GA) by default, so it's worth trying this again now...


GEORADIUSBYMEMBER command

Implementation of the GEORADIUSBYMEMBER command

[x] Basic functionality to query all members within the radius of a given member of a key
[x] Add support for WITHDIST, WITHHASH, WITHCOORD, COUNT parameters
[ ] Add support for STORE, STOREDIST parameters
[ ] Add unit and integration tests
[ ] Benchmark and potentially optimize the code

Resolves #1252.

Hi @benbarten.
I have pushed validation logics for parsing optional parameters, fixed bugs in COUNT logic and updated response structure when WITHHASH/WITHCOORD/WITHDIST are used. Please review the changes.
And geohash area filter is returning elements that are outside the specified radius as well.
Below example with a 100 km radius filter. But member at a 134 km distance is also being returned. Can you please look into it?

Dice

<IP_ADDRESS>:7379> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
<IP_ADDRESS>:7379> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
<IP_ADDRESS>:7379> GEORADIUSBYMEMBER Sicily Agrigento 100 km WITHDIST
1) 1) "Agrigento"
   2) (integer) 0
2) 1) "Palermo"
   2) "90.97804072951635"
3) 1) "Catania"
   2) "134.46977809328365"

Redis

redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km WITHDIST
1) 1) "Agrigento"
   2) "0.0000"
2) 1) "Palermo"
   2) "90.9778"

Thanks.

Hey @c-harish,
Thank you for pointing out those issues. I should have tested this more thoroughly beforehand. The implementation has a couple of different issues which I resolved in my last commit:

The github.com/mmcloughlin/geohash library we used calculates geohashes in a latitude range from -90 to 90 while redis does not accept values closes to the poles. This resulted in different hashes and made it not only hard to compare between redis and dicedb. I replaced this library with a redis-like implementation of geohashes.
Geohashes are not linear, so range queries on a sorted set can return values which are higher than the given radius. I added a post-filter step as in redis to filter out any points which exceed the radius, but match the geohash area.
I updated the GetMemberScoresInRange method of the sorted set to a half-open interval as in redis.

Please, feel free to test again. How should we split up the remaining tasks?

@c-harish I would continue working on the STORE and STOREDIST options.

As far as I understand, the shard is determined by the key.
The STORE and STOREDIST options take the result of GEORADIUSBYMEMBER and store it for a different key. Hence, we would need to access a different shard than the one that executes GEORADIUSBYMEMBER. e.g. the COPY command is similar in this regard since it takes two keys and moves data between them.
Maybe my understanding is wrong here, but I tested locally to store data for a different key directly using the Store object in evalGEORADIUSBYMEMBER and I wasn't able to then retrieve the stored set by using the new key.

Added the unit tests this morning. Will do benchmarking tomorrow and then we can decide whether to merge like this or add the STORE and STOREDIST options as part of this PR.

Benchmarks
Base command
Running tool: /opt/homebrew/bin/go test -benchmem -run=^$ -bench ^BenchmarkGEORADIUSBYMEMBER$ github.com/dicedb/dice/internal/eval

goos: darwin
goarch: arm64
pkg: github.com/dicedb/dice/internal/eval
cpu: Apple M2
=== RUN   BenchmarkGEORADIUSBYMEMBER
BenchmarkGEORADIUSBYMEMBER
=== RUN   BenchmarkGEORADIUSBYMEMBER/Small
BenchmarkGEORADIUSBYMEMBER/Small
BenchmarkGEORADIUSBYMEMBER/Small-8                462044              2393 ns/op           1048 B/op          39 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER/Medium
BenchmarkGEORADIUSBYMEMBER/Medium
BenchmarkGEORADIUSBYMEMBER/Medium-8               106651             27096 ns/op           4920 B/op         100 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER/Large
BenchmarkGEORADIUSBYMEMBER/Large
BenchmarkGEORADIUSBYMEMBER/Large-8                 26185            214080 ns/op          27480 B/op         352 allocs/op
PASS
ok      github.com/dicedb/dice/internal/eval    10.258s

Different Radii
Running tool: /opt/homebrew/bin/go test -benchmem -run=^$ -bench ^BenchmarkGEORADIUSBYMEMBER_DifferentRadii$ github.com/dicedb/dice/internal/eval

goos: darwin
goarch: arm64
pkg: github.com/dicedb/dice/internal/eval
cpu: Apple M2
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentRadii
BenchmarkGEORADIUSBYMEMBER_DifferentRadii
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentRadii/SmallRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/SmallRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/SmallRadius-8                    38484            30515 ns/op     1288 B/op         47 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentRadii/MediumRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/MediumRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/MediumRadius-8                   41575            28804 ns/op    13992 B/op        197 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentRadii/LargeRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/LargeRadius
BenchmarkGEORADIUSBYMEMBER_DifferentRadii/LargeRadius-8                    15754            76014 ns/op    95817 B/op       1470 allocs/op
PASS
ok      github.com/dicedb/dice/internal/eval    5.211s

Different options
Running tool: /opt/homebrew/bin/go test -benchmem -run=^$ -bench ^BenchmarkGEORADIUSBYMEMBER_DifferentOptions$ github.com/dicedb/dice/internal/eval

goos: darwin
goarch: arm64
pkg: github.com/dicedb/dice/internal/eval
cpu: Apple M2
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions
BenchmarkGEORADIUSBYMEMBER_DifferentOptions
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions/NoOptions
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/NoOptions
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/NoOptions-8                   259896             3899 ns/op     3848 B/op         76 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithCoord
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithCoord
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithCoord-8                   303004             3948 ns/op     4080 B/op         80 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithDist
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithDist
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithDist-8                    297511             4064 ns/op     4056 B/op         79 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithHash
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithHash
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/WithHash-8                    299065             3982 ns/op     4064 B/op         80 allocs/op
=== RUN   BenchmarkGEORADIUSBYMEMBER_DifferentOptions/AllOptions
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/AllOptions
BenchmarkGEORADIUSBYMEMBER_DifferentOptions/AllOptions-8                  294674             4034 ns/op     4152 B/op         82 allocs/op
PASS
ok      github.com/dicedb/dice/internal/eval    6.275s

Hi, @apoorvyadav1111.
Can you please trigger CI check and review? Thanks.

Hey @apoorvyadav1111,
any update on the review? I'm keeping it up-to-date with the latest changes, but let us know if we should request another reviewer :) We could unblock @c-harish and also add the STORE/STOREDIST options.


Roadmap feature

To manage properly the planning of a project, it could be very useful to have a roadmap management on Kanboard. Especially when it is hard to select a due date for each tasks, but when the finale due date is well-known.
I don't know how to handle this in Kanboard, but here is what I think may be useful:

A roadmap view listing milestones (i.e. releases, versions, whatever you would like to call them)
The possibility to assign/link/attach a task (or a list of task) to one milestone
Eventually an automatic "milestone report" computed from all the closed tasks assigned to the milestone

And here are some ideas about how to implement it:

Technically, a milestone can be a task with a specific category (e.g. "Milestone"). It may be easier than creating an other element. A milestone has a title and a description like tasks, and it is useful to sort them in columns like tasks.
The other tasks may be assigned to a milestone by adding a "milestone id" in the task table. Or even better, in a more generic way, by implementing the "Support linking of tasks together" feature (#92): a task is linked to a milestone with label "in milestone #idOfTheMilestone".
Then a roadmap view can list all milestones (and their due date) and their linked tasks
A button "Report" near each milestone may display the list of titles of the closed tasks in the milestone

It is a bit of a draft sorry. But what do you think?

Hi,
+1 for this feature. I'm using kanboard in a scrum way and need to sort different sprint inside a same project.

I have created a "Milestone plugin": https://github.com/oliviermaridat/kanboard-milestone-plugin
I made some test with a "Roadmap view" displaying all the Milestones of a project. I am wondering if this is relevant since the board is actually quite clear (especially with a filter "link:"is a milestone of").


Respect yarnrc registry config.

Package manager/ecosystem

javascript
Manifest contents prior to update

https://github.com/wxsms/vuepress-theme-mini/blob/master/package.json
Updated dependency

ini
What you expected to see, versus what you actually saw

The upgrade shoud respect registry settings inside .yarnrc:
https://github.com/wxsms/vuepress-theme-mini/blob/master/.yarnrc
registry "https://registry.npm.taobao.org"

But what I got:
https://github.com/wxsms/vuepress-theme-mini/pull/15/files
Images of the diff or a link to the PR, issue or logs

Hello? can anyone help with this one? It makes dependabot not usable and annoying in my case.

Getting similar issues.

We put a bunch of work into fixing this last quarter.
Docs here:

https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#npm-registry
https://docs.github.com/en/code-security/dependabot/working-with-dependabot/configuring-dependabot-to-only-access-private-registries


Interpolating hues should use rem_euclid.

Also, added additional tests for the hue interpolation.
Fixes #12632
Fixes #12631

A full fix is waiting on #12619 to get merged first.

I'm merging #12619 with the old approach since it is otherwise ready: can you merge main in (in about 10 minutes) and then clean up that code here?

@alice-i-cecile Done.


On Windows PowerShell, defer Add-Type until Set-ConsoleMode executed

On PS Core, do not set the console mode at all.
PS Core, since the release of 6.0.0 has handled setting/resetting the
console mode, so no need for posh-git to do this. See:
https://github.com/PowerShell/PowerShell/pull/2991
This speeds up module import by ~.5 to .7 seconds on PSCore and by
~150-200 msecs on Windows PowerShell.
Fix #637 and maybe #635

when will this be available in the beta?

I still have a few lingering PRs to catch up with, but I'll try to ship a new beta in the next week or so.

I'll try to ship a new beta in the next week or so.

So, uh. Beta 3 shipped yesterday. 🙄


Update NativeLibraryLoader to v1.0.13

Thanks for the merge in NativeLibraryLoader @mellinoe :) - this is the MR for Veldrid to update it to use the new code.

LGTM, thanks for the fix here and over in the NativeLibraryLoader repo.


Add new test framework for consoles

This PR adds a more user-friendly test framework for Spectre.Console that can be used by external projects.

@phil-scott-78 This one is ready for review whenever you have some spare time.


Move draft pull requests into its own column

Having draft pull requests in Pulldasher clutters it up. Let's move them so that they don't show up in other columns.
Do this
Create a new column specifically for Draft PRs and make sure the pull requests don't show up in the other columns

Would it be better if draft PRs were automatically dev_blocked?

Would it be better if draft PRs were automatically dev_blocked?

Draft PRs cluttering up Pulldasher has been less of an issue recently, but that could also work.

I think putting Draft pulls in the Dev Block column makes perfect sense. The idea of that column is pulls that are still need more work from the author.


Modify  student not working

also when you save from the modify dialog

Changes don't save
whole nav tree gets reset, really hard to come back to that student after so many drill downs

Gender and Languages are not not a select drop down. Mother and Father names can't be edited from here.
Once the YES is pressed, the modal should close. The modal is still showing the old values.

Language is showing numerics and is not a drop down. For consistency it should be called mother tongue


Adaption of scenario scripts for 1-node clusters

As Microsoft now supports 1-node clusters for AZSHCI and WS2022, I experimented a bit with the cluster scenario scripts for 1-node environments. I got various errors about non-existent host names.
Reason: Most scenario scripts initially define a variable for the names of the cluster nodes and implicitly assume that this results in a PowerShell array (e.g. $servers = "...", "..."). This works if you assign more than one hostname. However, if only 1 hostname is specified, PowerShell only creates a string variable - i.e. no array. If later the script references a single element (e.g. $server[0]), the result is an invalid hostname.
The remedy is simple: The variable for the host names should be set explicitly as an array type (e.g. [array] $servers="...").
However, this would mean that most of the scenario scripts would have to be adjusted and re-released. I would therefore suggest that an appropriate note be included in the MSLab readme page and the adjustments made in the scenario scripts when they are released as such.

Okok. It's easy - you just skip smb nics creation. Everything else is same.

I have the impression that we are talking about different things. I mean the array with the server names at the beginning of the different scenario scripts. As an example, let's take a look at the scenario.ps1 script of the AzSHCI deployment scenario:
With
line   7: $numberofnodes=4
and
line 10: $Servers=1..$numberofnodes | ForEach-Object {"$ServersNamePrefix$"}
$servers results in an array with 4 strings:
$servers.GetType()
IsPublic IsSerial Name      BaseType
True     True       Object[]  System.Array
$Servers
AzSHCI1
AzSHCI2
AzSHCI3
AzSHCI4
Now for 1-node clusters you have to change line 7 to
line   7: $numberofnodes=1
and now $servers results in a simple string:
$Servers.GetType()
IsPublic IsSerial Name  BaseType
True     True      String   System.Object
Later on in the script if $Servers[0] is referenced (e.g. in line 190) only the first char of the server name is retrieved:
$Servers[0]
A
which of course leads to various runtime errors.
The correction is very easy: Simply change line 10 to
[array]$Servers=1..$numberofnodes | ForEach-Object {"$ServersNamePrefix$"}_
and everything works like it should independent of the value of $numberofnodes in line 7.
I hope with that I have presented my request a little bit better.

Ah, got it! With one server you can simply say $servers="AzSHCI1". I kept this array to make things simpler when you deal with 16 node clusters :)

$servers="AzSHCI1" does not solve the problem. You have to write [array] $servers="AzSHCI1" - then it would work.
It's a special PowerShell feature that if only one string is assigned only a string var is allocated. So you have always to use strong type definitions for such situations.

Another way with hard coded server names would be to write
$servers=,"AzSHCI1"
for single nodes (another trick of PowerShell)

Ah, you are ofc right. Okok, I'll fix it! I hope you enjoy this stuff. Check out 22H2 scenario (in dev) . It's lot of fun!

@jaromirk friendly reminder, is this code change implemented yet? might get lost.
would still affect S2D and Azure Stack HCI as it is a syntax problem, as I understood.


Add method to check if new appstore version available

Currently commenting FeedItemUpdate out of the Feed list because it's intended to let the user know if they should update. There are some libs to evaluate that but I don't want to add one right away

related, could submit here https://blog.fossasia.org/publish-an-open-source-app-on-fdroid/

This is a cool idea, may need to run our own back end to provide it, or at least do some more research.


SoapFault exception cannot be caught when using SoapClient

What steps will reproduce the problem?
i want working with SoapClient in yii2 project. but i need manage error with try-catch. but that not work !
yii2 code example :
class SiteController extends Controller
{
    public function actionIndex()
    {
        try{
            new \SoapClient('a',['cache_wsdl' =>  WSDL_CACHE_MEMORY]);
        }catch(\SoapFault $e){
            echo '***************';
        }
    }
}

yii framework output :

PHP Fatal Error – yii\base\ErrorException SOAP-ERROR: Parsing WSDL: Couldn't load from 'a' : failed to load external entity "a"

but in test.php(no yii framework) :
try{
    new SoapClient('a',['cache_wsdl' =>  WSDL_CACHE_MEMORY]);
}catch(SoapFault $e){
    echo '***************';
}

output
***************
stackoverflow : Yii2 - fatal error , try-catch not working
What is the expected result?
print ***************
What do you get instead?
catch block not run !
Additional info

Q
A

Yii version
2.0.8

PHP version
5.6.3

Operating system
win 8.1

new SoapClient('a',['cache_wsdl' =>  WSDL_CACHE_MEMORY]); triggers a PHP fatal error and does not throw SoapFault exception, that's why you can not catch it.

<?php

echo "<pre>";
try{
    new SoapClient('a',['cache_wsdl' =>  WSDL_CACHE_MEMORY]);
    echo "client created\n";
}catch(SoapFault $e){
    echo "exception thrown\n";
}

echo "php error:\n";

print_r( error_get_last() );

this seems to be a bug in the SoapClient implementation. it throws exception AND sets the fatal error in PHP.

in PHP 7 you could work around this issue by calling error_clear_last() in the catch clause but that function does not exist in php 5.x

Should be reported to PHP it seems, right?

yep.

also a duplicate of #9650

bug in php.net
https://bugs.php.net/bug.php?id=47584

In version php 5.4.16 in Yii2  i have solved so
try {
$this->soapClient          = new \SoapClient($wsdl, $options);
//без exit не сработает, в данной версии php невозможно решить малой кровью
} catch (Exception $e) {
exit;
}

try {             $short_link = new \SoapClient('http://rdp.zd.ua/zd/ws/Landing/?wsdl', $options);         }catch (\SoapFault $e){             var_dump($e);             throw new \yii\web\HttpException(500);         }
and still cant to handle with SOAP-ERROR: Parsing WSDL: Couldn't load from , any ideas?

Soap suck...
Simple solve problem:
try {    $wsdl = 'http://test.com/test/ws/Landing/?wsdl';    simplexml_load_file($wsdl);    $short_link = new \SoapClient($wsdl, $options); } catch (\Exception $e) {    var_dump($e); }
If $wsdl is empty or not available simplexml_load_file throw an ErrorException


Allow "clear" to remove tsv, csv

Currently, "clear" only clears the downloaded zip file and extraneous unzipped files; it does not clear other intermediate files. They're unnecessary and take up >10GB of disk space (which I don't have to spare on my dev machine, sorry!)
This PR:

Introduces a --clear command-line option
Allows --clear to be 0 (skip), 1 (zip/unused files), or 2 (tsv/csv intermediate files)
Allows each function to take a clear argument; if clear=True, the function is responsible to remove files it uses.
Only runs load on csv files that exist (i.e. resumable load, if you run out of disk space even with --clear 2 (similar to what's done on clean currently).
Makes sure to clear the download_metadata.txt file (should be cleared with the zip).

Testing:

Tested each step manually
Tested on a machine that ran out of disk space during load() (i.e. resume worked!)

I think this is a worthwhile change, but glad to hear feedback from others on the idea or design.

Generally I like the idea of allowing users to clear out those baggy files. And I like how the 0,1,2 system (like Django's standard verbosity setting) lets the user be discriminate.
But I wonder if we might be able to come up with a more literate way of naming the options so they aren't a tad more humanized.
On a separate note, I haven't formed a strong opinion on this, but one side effect I can see of deleting the zipfile metadata is that we won't be able to given repeat users any indication of the last time they slammed the zip file into their database.
Perhaps that feature should be considered beyond the scope of what that file should be expected to do, but if I'm reading your code correctly I think that would be one change we'd see.
All that complexity makes me want simplify. Am I crazy to think one way to perhaps simplify this matter is to break the core feature you're after out into a separate command (deletecalaccessrawdata?)? Users could either call that directly, or we could have the clear flag on the download command run it with call_command.

@palewire I think the best way to store information about the latest download & database update is to store such information in the database. It would be pretty straightforward to set that up in Django. In face, we could keep a record of how many updates were made and when.
A separate deletecalaccessrawdata command woudn't accomplish the same as what I'm doing here; by deleting intermediate files during the load, the maximum amount of disk space required to load the file is reduced. Deleting after loading doesn't reduce this, it just reduces the total amount of disk space consumed after the load completes.

Interesting. Thank you for helping me articulate this idea. As a thought exercise, I'm going to try to riff through the different things we need to satisfy here.

Keeping all the files all the time introduces a space crunch to users with limited hard drives, like you. For this user it is best if the files are deleted as soon as they are loaded into the database.
In some use cases, we do want to keep the files for debugging and further development. For this user, it is best to keep all of the files.
We need some system for tracking the most recent download loaded to the computer, mainly to avoid needlessly downloading a big zip that hasn't changed since the last load. This is currently done with a text file, but we can imagine other tools, like a database table.
The feature has not yet been developed but at some point we will want to implement a system on top of the download for archiving and serving the nightly files on a public web site. This will require that files be store at least temporarily and the addition of an new archival pipeline.

Am I missing anything?
Is there another imperative here I'm missing?

I'm going to try to riff through the different things we need to satisfy here.

I assume by "here", you mean "this project" rather than "this pull request" :smile:

Keeping all the files all the time introduces a space crunch to users with limited hard drives, like you. For this user it is best if the files are deleted as soon as they are loaded into the database.

Yes, and that's what this PR implements (as a non-default option).

In some use cases, we do want to keep the files for debugging and further development. For this user, it is best to keep all of the files.

Yes, and this is also a non-default option. The default option is to clear away the zip and unused files, but to keep tsv and csv files.

We need some system for tracking the most recent download loaded to the computer, mainly to avoid needlessly downloading a big zip that hasn't changed since the last load. This is currently done with a text file, but we can imagine other tools, like a database table.

Yes. I believe this is a new feature / function. I believe to replicate the current functionality (keeping the last download date available), I should simply avoid deleting the text "metadata" file.

The feature has not yet been developed but at some point we will want to implement a system on top of the download for archiving and serving the nightly files on a public web site. This will require that files be store at least temporarily and the addition of an new archival pipeline.

I'm not sure about this, but since it seems quite independent of this pull request, I'd suggest opening an issue to flesh the idea out (and so I can ask some questions! :smile:)

Is there another imperative here I'm missing?

 We'll be discussing as a group sometime in the coming week; if so, I'll be glad to open new issues to discuss them!

If those are our only use cases (and @aboutaaron can chime here if he thinks I'm missing anything) then I wonder if could refactor your work to simplify things even further.
Since we either want to keep all the raw stuff, or we want to "delete as you go" then it seems like we only need binary switch that has the routine do one, or the other. We might even be able to come up with a more descriptive name than "clear," which is a sketchy term one of us dreamed in an early draft.
Settling that might be helped by thinking what ought to be the default behavior. The more I think it about it, the more it seems to be that the average end-user (as opposed to core developer) and typical server deployment will have little need to keep the source files around.
If others agree, I would propose that we collapse the two overlapping options of --skip-clear and --clear into one that would simply tell the command to keep the downloaded files. It could retain the double-negative-ish name of --skip-clear or perhaps be renamed as something more direct like --keep-files.
In that case, the also awkwardly named download-metadata.txt could perhaps be refactored into a dotfile separate from the download with a simplified name like .lastdownload or something.
What do you think?

@palewire I'm all for all of those changes. The only reason I kept --skip-clear and the default behavior was to produce as few ripples as possible, since this was an unsolicited PR :)
I'll wait to hear what others think, and if no objections will take care of this in the next couple of days.

@palewire Updated as requested.

Rebased this on the latest master, has requested updates. I believe this is close to ready :)

Been doing some testing on this and, so far so good. One of the consequences of using the --keep-files option is that you end up with calaccess.zip and the unzipped dir, including all the official CalAccess docs. That's okay, I think. Maybe even a good thing. Just wanted to make that observation.


Check implementation of IATI codelists.

Initially encountered due to AidTypes being changed to include B031 etc, leading to codelist updates no longer working. Seeing some other keys that are not present in the worker output.
Updates can be found at https://github.com/IATI/IATI-Codelists-NonEmbedded
Marked as bug as it breaks current codelist implementation, other elements might be missing.

related


Add missing descriptions for Image's documentation

This PR adds missing descriptions to Image's methods and constants, filling them in.
The only ones I have doubts about are FORMAT_ETC2_RA_AS_RG and FORMAT_DXT5_RA_AS_RG, and code is not exactly clear unless you're savvy enough.
...
Uhm... Yeah, that's all.

Pushed changes to address the above feedback. Thank you both for providing suggestions!

Thanks!

Cherry-picked for 4.2.2.

Cherry-picked for 4.1.4.