Added documentation for typegen with the VSCode extension

https://www.loom.com/share/bea9c84af6564d4d9134358628f7dd2c

This is awesome @mattpocock!! 👏🏻 Is this typegen going to be launched with v5 or we can start using in in 4.x.x? I've tried adding types: {} and tsTypes: true, but extension do nothing now, I'm doing something wrong or it isn't released yet?

@tonivj5 As you can see from this PR, it hasn't been released yet!

It'll be done as part of v4.

Closed in favour of #2963


Onboard new Graph decentralized networks

Problem
What problem are we solving?
Graph hosted service can have downtime. The decentralized network never goes down. We can reduce our downtime concerns by moving to the decentralized network.
Impact
Why does this matter? Who does it impact? How much does it impact them? What is the urgency?
Will provide us more stability and reduce downtime. This will provide a better user experience. Should be done ASAP to avoid any downtime concerns.
Proposed Solution
[OPTIONAL] Thoughts on solution design. We could do  to solve this problem.
Create decentralized network subgraphs for supported networks. Graph now has support for Arbitrum, Optimism, and Polygon on the decentralized network.
Acceptance Criteria
From an end user perspective, the below criteria must be met to consider this done:

[ ] Decentralized subgraphs exist for all the above networks.
[ ] Account is funded properly to handle queries.

Next step after indexed is to add endpoints to graphclient config.

Need to add endpoints.


Return the email app that was selected or null

This provides apps with more information and enables them to offer user flows like remembering choices for next time. Fixes #52 by returning null if the user canceled, but still correctly throwing an error if there's an issue.

Released as part of<EMAIL_ADDRESS>


Is there a way to obtain the text selected in the entire window of Visual Studio Code?

I want to implement a word selection translation plugin, but according to the documentation, it's only possible to access the text in the editing area. This is not very convenient.

are you wanting to get text from the title bar and explorer etc?
or just for open documents? document.getText()

are you wanting to get text from the title bar and explorer etc? or just for open documents? document.getText()

What I am looking for is the entire visible area, including the text displayed in the webview area opened by other plugins and the sidebar area.

We have a great extension developer community over on GitHub discussions and Slack where extension authors help each other. This is a great place for you to ask questions and find support.
Happy Coding!


Max width incorrectly considers margin

Margin is considered part of the width of the element in max-width calculations, but margin is outside of the element and should not be.

We need to verify whether this is still an issue.

the style Min and Max settings absolutely only apply to the Content geom.  there is no doubt about this.


Expires for RMapCache/RSetCache entries and restarting java

Not really an issue per say, more of a clarification really.  I'm about to launch a new feature that will be making use of the expires for individual entries in RMapCache and RSetCache, and I was wondering how that works regarding restarting the Java process that created/set it.  Will they be expired on shutdown, not touched at all and the expire is lost?
Just want to be sure of what is expected when I restart my Java service.
Thanks!

Will they be expired on shutdown, not touched at all and the expire is lost?

Redisson maintains expiration state only in Redis. So in your case entries start to expire as soon as you restart application and call getMapCache/getSetCache method.


Webpack 2

Upgrade to Webpack 2?

It should support all the webpack versions. I don't perform tests for them, but I successfully used it with webpack 2 and 3, and other people do. What's you issue with it?

I'll close this. Feel free to leave a comment here if it doesn't for you in any webpack version and I'll reopen.

It does work wirh webpack 3. Can you update the dependencies for the project here on gihub?

I have webpack only as a devDependency for tests, why would I update it?


Kubeflow TFlow Python API returns error for the example code

I'm trying to run the simple example mentioned in the docs at Kubeflow-tfoperator/py/docs with a slight modification --
namespace = utils.get_default_target_namespace()
I'm running Docker Desktop on Mac OS Catalina with Kubernetes enabled.
Now, when I run the code against the Kubernetes python package 12.0.1, I get an error like:
AttributeError: 'V1TFJob' object has no attribute 'openapi_types'
This is addressed in kubernetes-client/python/issues/1112 where one of the workarounds is to downgrade the Kubernetes SDK.
Now, while using Kubernetes 10.0.1, I get an error like:
raise ApiException(http_resp=r)
kubernetes.client.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Cache-Control': 'no-cache, private', 'Content-Type': 'text/plain; charset=utf-8', 'X-Content-Type-Options': 'nosniff', 'Date': 'Mon, 30 Nov 2020 19:33:55 GMT', 'Content-Length': '19'})
HTTP response body: 404 page not found

RuntimeError: Exception when calling CustomObjectsApi->create_namespaced_custom_object:         (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Cache-Control': 'no-cache, private', 'Content-Type': 'text/plain; charset=utf-8', 'X-Content-Type-Options': 'nosniff', 'Date': 'Mon, 30 Nov 2020 19:33:55 GMT', 'Content-Length': '19'})
HTTP response body: 404 page not found

I do have namespaces.
$ kubectl get namespaces
NAME              STATUS   AGE
default           Active   10d
kube-node-lease   Active   10d
kube-public       Active   10d
kube-system       Active   10d
mnist             Active   2d

According to SO/questions/63772649/, it worked for the Author by using Python 3.6. I have tried that but that didn't work for me.
Versions --
Python: 3.8, Docker: 19.03.13, Kubernetes: v1.19.3
Am I doing something wrong/is there some mismatch between the global Kubernetes and the Python Kubernetes SDK? Thanks for the help.

Sorry for the late reply.
Which version of tfjob are you using?

Sorry for the late reply.
Which version of tfjob are you using?

and i has the same problem, i use the latest kubeflow-tfjob sdk and the kubernetes-client version is 12.0.1

the some issue log:

tfjob_client.create(tfjob, namespace="kubeflow")
Traceback (most recent call last):
File "", line 1, in
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubeflow/tfjob/api/tf_job_client.py", line 69, in create
tfjob)
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubernetes/client/api/custom_objects_api.py", line 225, in create_namespaced_custom_object
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubernetes/client/api/custom_objects_api.py", line 358, in create_namespaced_custom_object_with_http_info
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 353, in call_api
_preload_content=_preload_content,
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 170, in __call_api
self.last_response = response_data
File "/root/.pyenv/versions/py3_tfop/lib/python3.6/site-packages/kubernetes/client/api_client.py", line 238, in sanitize_for_serialization

# handle file downloading

AttributeError: 'V1TFJob' object has no attribute 'openapi_types'

i found the same issue in https://github.com/kubernetes-client/python/issues/1290, and i think it is necessary to replace Swagger Codegen with openAPI Generator to generate python SDK?

Thanks for your reply!
We are using Kubernetes python client as a dependency. Maybe we need to try to upgrade the version of the dependency.

Which version of kubeflow-tfjob are you using? -- 0.1.3
Hi @gaocegege @Crisescode In the official Kubeflow python docs, I've read that they recommend using Kubernetes 10.x because they are aware of the error 'V1TFJob' object has no attribute 'openapi_types'.
But the issue is after using Kubernetes 10.x, I get the error --
RuntimeError: Exception when calling CustomObjectsApi->create_namespaced_custom_object:         (404)
Reason: Not Found

I think it is related to the Kubernetes Python client SDK version we are using. Seems that it has some compatibility issues. BTW, can you please explain how you are using the python sdk to submit jobs? We are trying to understand the use case here :-)

I have some other scripts which I will execute once I am able to run the example given. The example I'm trying to execute is the one mentioned at https://github.com/kubeflow/tf-operator/blob/master/sdk/python/docs/TFJobClient.md for the "create(tfjob)".


BUG: SVG images with Patterns are not rendered correctly

SVG images with patterns, like this upper tab with a wood tile pattern fill, are not rendered correctly by the library. Some text is missing. Shadows and gradients are also broken.

Here you can download the UpperTab.svg file:  http://www.yourfilelink.com/get.php?fid=942948&dv=1

In #280, issue of pattern is solved.


Docs comments for mesos setup

General:

docs seem a bit vague - (e.g. confusion about mesos versions. ) This turned out to be OK - I followed the RPM instructions which used 0.26.
There's some stuff on preparing master, then RPM install instructions for slave, but nothing about install and setup of mesos-master.
Having set things up - I want to start some containers using mesos + calco. The section on using marathon is light on detail (e.g. if I create a container using the app.json given, does marathon create the network and profile that calico needs, or do I need to do anything with caliococtl). i.e. I could have done with a more detailed example of what to expect.

Detail:

Section 1 of RPM install wgets a tar file, then tries to unpack a tgz
Section 2 has MASTER=zk://<ZOOKEEPER_IP>:<ZOOKEEPER_PORT>, but the default config for the master in /etc/mesos/zk is zk://localhost:2181/mesos. I added /mesos to the end of the MASTER url on the slave, and the mesos-slave started (it failed without this).

Dan is working on fixing these issue

I'm going to close this out. We've been through quite a few overhaul's in our mesos docs / installation story, so this is fairly outdated.


Search feature returns some tracks that don't have the icons/buttons row below track bar

Soundcloud-ngrx version: 0.4.0
OS Version: Windows 10 Pro
When I search for songs or click on an artist's name,  sometimes the returned list of songs contains a track that is missing the row of icons below the track's waveform bar.  I am referring to the row of icons that include the play button, favorites count etc.

Hi @Plex4000 — some tracks on SoundCloud do not support streaming. The row of icons is not displayed for those tracks.


SEO updates as advised by Khairun Jamal's team

Docs Build status updates of commit 7487b02:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/azure-cli-extensions-overview.md
:warning:Warning
View
Details

docs-ref-conceptual/authenticate-azure-cli.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-configuration.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/index.yml
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-extensions-overview.md

Line 86, Column 69: [Warning-bookmark-not-found] Cannot find bookmark '#install-extensions' in 'docs-ref-conceptual/azure-cli-extensions-overview.md'.
Line 129, Column 60: [Warning-bookmark-not-found] Cannot find bookmark '#update-extensions' in 'docs-ref-conceptual/azure-cli-extensions-overview.md'.

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

Docs Build status updates of commit 37b1401:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-conceptual/authenticate-azure-cli.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-configuration.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/azure-cli-extensions-overview.md
:white_check_mark:Succeeded
View

docs-ref-conceptual/index.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Leaderboard: hit the API 🎯

Send and receive data from API

[x]     Add getScores and postScores functions.
[x]     Implement the "Refresh" button.
[x]     Implement the form "Submit" button.

Thanks for Approving! 😄


Replace prettier-plugin-sh with shfmt

prettier-plugin-sh markets itself as follows:

This plugin is still under development, its printer just wraps mvdan-sh's default printer. Of course it should just work, but may not match prettier's format sometimes.

It would be very nice to not need JS in order to format shellscripts, so it seems reasonable to me to simply use shfmt directly.

One test fails, but not due to any change made in this PR as far as I can tell:
Error in download_and_extract: java.io.IOException: Error downloading [https://nodejs.org/dist/v16.20.1/node-v16.20.1-linux-x64.tar.xz] to /home/runner/.cache/bazel/_bazel_runner/89e91fd6b6dccc7b506d63833e3c5c70/external/nodejs_linux_amd64/bin/nodejs/temp4388620424124156853/node-v16.20.1-linux-x64.tar.xz: java.net.SocketTimeoutException: Read timed out
ERROR: /home/runner/work/rules_lint/rules_lint/example/BUILD.bazel:36:25: //:eslint depends on @nodejs_linux_amd64//:node_toolchain in repository @nodejs_linux_amd64 which failed to fetch. no such package '@nodejs_linux_amd64//': java.io.IOException: Error downloading [https://nodejs.org/dist/v16.20.1/node-v16.20.1-linux-x64.tar.xz] to /home/runner/.cache/bazel/_bazel_runner/89e91fd6b6dccc7b506d63833e3c5c70/external/nodejs_linux_amd64/bin/nodejs/temp4388620424124156853/node-v16.20.1-linux-x64.tar.xz: java.net.SocketTimeoutException: Read timed out


[Addition]: Devon Heltec cluster

Hotspot b58 Addresses
11PkVLAgttdn4zd2HqGqmachvRpWno5qJqmxEx7WXhRTJVEdjyq
112XHd3FDKNrDSdNF3mhcnR8PfGRpnmWeXbbja9jMcRQwjkYydya
112RUkRe2hztwaLt5YgRjtgXH89J4BsyDYN3CDYA7ULuYDZzzyda
11YQZ55LGkKSriqhPvB8EGs3fApVo8NmHv1JBT1CL9ZZsnyhJDr
112UFqrJUoXLPQn4Vd8ogrTVe9e4reGRK5giUeHLjbJQyRLCrWTW
112ZDLo7his2F3xRWdukHPfxx3fhZYVfNBxRSfZB7gK7EFadKwD9
11c7B2PTnkpP2Bu9DUzgXxdTrTu1HPZw8r5HqeAy5UBxrLoTPgD
112uNAs7WNUsXPN1D4f29HoX48fjhKzbBCVDwAkp7vkKskNx1mxB
11QoFLXBDocik13hWg2ATjdbenfoUBz5w3UG369seYUujYZcsNb
112tD7Fta29HS55pYj53wdfnt6t2H5qYaJtHso7vYffYW55rGxpB
11JprAnyAi2nm3BNfbJP89FGUh33c5WRyCNSnKnekreuzkQASEc
11d6WFpvs6x2di37fPpmxhhfoNixsnF3fB8DNsmbowFbzggutBc
112X8TgKWAdTSaJqPQP1kegW8mWLeGzYwewZaDwpJUvYrz6c4MqT
11GAkAw9D4giD34NZtSdjBGiE3UR1UCJVy9zVpb6j8yRz3kPrT1
11Tcp8W5JC6sTRQpbdq2SGMoeaH29bKBmFZEWTh36uQF8gZBCTB
11Mw2nnnKSNhgeT5RBt7FYjLnTFM19QjWYkGXwvmkCKQ4BkHcXg
11sg3mztgJshYuXK2ZQ8QYDiqFWB59vXhyxvC1xNW8yTz5Nu7Bc
Discord Handle
No response
Reason(s)
Requesting the addition to the denylist for the heltec cluster.
This was popping up as I was working through my last requests, and I thought I'd give it chance to establish, and then i had a better chance of getting them all. Its really tricky this area, very heavily spoofed, they just keep popping up!
Anyway, another cluster of heltec, that only see other heltec miners. All asserted in the same period.


Delete write_events_ics if deprecated by write_panchangam_ics

The idea was to keep this for a separate json file -- any custom user json file of festivals, like family birthdays etc.


Merge prTesting_201903111027 branch to master branch

OPS Build status updates of commit 4391554:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details
Dependent Files

split/updateTestCon.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Upgrading to VSC 1.15 64-bit Made It Unresponsive

From @johancyprich on August 17, 2017 16:4

VSCode Version: 1.15.1
OS Version: Windows 10 Pro :: 10.0.15063 Build 15063

I upgrade VSC to the latest 64-bit version and from there the app became unresponsive. Task Manager showed that VSC was using 98%+ CPU and the memory usage for the multiple instances was very large (100s of MB and typically 1 GB as well).
I tried installing earlier versions and also went back to 32-bit, but the same problem occurred. So, I did a complete uninstall and deleted the %USERS%/.vscode folder, and then did a reinstall of the 1.15 64-bit. While running Task Manager, I installed one extension at a time. When I tried to open a .cs file, VSC installed C# extensions and then the CPU/memory usage went to extreme levels which caused VSC to lag. When I disabled the C# extension, CPU/memory usage went to an acceptable level.
So I uninstall the C# extension and I'm happily using VSC. I think that the OmniSharp extension was causing the problems.
Copied from original issue: Microsoft/vscode#32728

Hi @johancyprich! When the C# extension initially starts up, it loads the project that you have open. Much like Visual Studio, it should eventually drop to a steady state after it is finishes loading your project. Did you observe this, or are you seeing constant memory/CPU activity?

I just updated to the Windows 64-bit version of VS Code 1.15.1 and do not see a difference in CPU or memory usage.

Hi @DustinCampbell. The resource usage stays high continuously.  I've tried the same version of VSC on a Windows 7 machine and it ran without any of these problems. I'm not sure why my Windows 10 machine works poorly with these VSC extensions.

Closing out old issue. There are (unfortunately) numerous issues related to performance that are more recent.


tests: doxygen comment cleanup

Group tests under 'Zephyr Tests' and only document the actual tests.
Create cross references to APIs being tested where applicable.
Signed-off-by: Anas Nashif<EMAIL_ADDRESS>

Codecov Report

Merging #7406 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #7406      +/-   ##
==========================================
+ Coverage   55.26%   55.26%   +<.01%
==========================================
  Files         467      467
  Lines       51641    51641
  Branches     9886     9886
==========================================
+ Hits        28540    28541       +1
+ Misses      19191    19190       -1
  Partials     3910     3910

Impacted Files
Coverage Δ

tests/kernel/fifo/fifo_api/src/test_fifo_loop.c
97.61% <ø> (ø)
:arrow_up:

tests/kernel/msgq/msgq_api/src/test_msgq_purge.c
100% <ø> (ø)
:arrow_up:

tests/kernel/msgq/msgq_api/src/main.c
75% <ø> (ø)
:arrow_up:

tests/kernel/systhreads/src/main.c
76.47% <ø> (ø)
:arrow_up:

tests/kernel/msgq/msgq_api/src/test_msgq_attrs.c
100% <ø> (ø)
:arrow_up:

...ests/kernel/fifo/fifo_api/src/test_fifo_contexts.c
98.78% <ø> (ø)
:arrow_up:

tests/kernel/fifo/fifo_api/src/main.c
66.66% <ø> (ø)
:arrow_up:

tests/kernel/fifo/fifo_api/src/test_fifo_cancel.c
94.44% <ø> (ø)
:arrow_up:

tests/kernel/fifo/fifo_api/src/test_fifo_fail.c
100% <ø> (ø)
:arrow_up:

...ests/kernel/msgq/msgq_api/src/test_msgq_contexts.c
97.26% <ø> (ø)
:arrow_up:

... and 3 more

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 5443d06...bbc3426. Read the comment docs.

I suppose this is fine, but why do we even need to doxygen the test cases at all?

this will help with creating test plans by maintaining all information in one place using tools that are available to us and familiar with developers. The grand plan is to have basic traceability in the code using doxygen which does a good job cross referencing code, documentation and tests.


[Request for External] Exposing function DeleteInvoiceSpecFromLine in CU 99000834 "Purch. Line-Reserve"

To finalize our Intercompany addon we would like to request to have function DeleteInvoiceSpecFromLine in CU 99000834 "Purch. Line-Reserve" as external to be able to use this in our extension.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Istio CNI Agent: Tests around CNI plugin for sidecar-and-ambient-together upgrade scenarios

As per https://github.com/istio/istio/pull/49207 - we need more test coverage around using/enabling/upgrading sidecar and ambient at the same time in CNI machinery.
Probably missing some (expensive) integration tests, and more (cheap) unit tests.
Affected product area (please put an X in all that apply)
[x] Ambient
[ ] Docs
[ ] Dual Stack
[x] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[x] Test and Release
[ ] User Experience
[x] Developer Infrastructure

Hello, can I take this up :)

Hello @bleggett I would like to add tests for this issue. Could you tell me how would the plugin behave with using/enabling/upgrading sidecar and ambient scenarios?

@biswajit-9776 Behavior should be the same in a mixed environment for every kind of workload as it would be if "only sidecar" workloads were deployed, or "only ambient" workloads were deployed.
We test all that separately, but we need to run the basic scenarios we already have in a mixed (some sidecar, some ambient workloads) test env and make sure each kind of pod continues to work exactly like it would if the other pods/mode was not there.

The above PR added does not include many other test cases. I wanted to add another function for checking the CmdAdd for a pod with a sidecar injected without Ambient being enabled in namespace at all. My doubt was should the pod be added to mesh?

@biswajit-9776 The unit test you added there is redundant with an existing unit test (thanks for jumping in tho!)
if you are interested in helping here, could you look at adding some more tests to the integration suite for Helm upgrades?
https://github.com/istio/istio/pull/49179 added the initial set - we could use some more tests there around testing upgrades when both ambient and sidecar are enabled.

@biswajit-9776 are you still working on this?

@biswajit-9776 are you still working on this?

No, I am not working on this issue anymore.

@bleggett Can you assign this issue to me?

@biswajit-9776 The unit test you added there is redundant with an existing unit test (thanks for jumping in tho!)
if you are interested in helping here, could you look at adding some more tests to the integration suite for Helm upgrades?
#49179 added the initial set of ambient upgrade tests - we could use some more tests in that suite around testing upgrades when both ambient and sidecar are enabled.

@bleggett : is someone already working on this? else i can pick this up

@pglushko asked for it - if they are still working on it, maybe check with them.
More detail on the integration tests:
istio-cni is optional for sidecars, and required for ambient.

I believe we have integration tests that test sidecar (not using istio-cni) and ambient together.
I do not believe we have integration tests that test sidecar (using istio-cni) and ambient together.

@pglushko let me know if you are already working on this. otherwise @adilmp1 would like to work on this.

Makes sense to have a separate suite enabling this in the installation and run TestTraffic alone?

Yep, maybe integration/ambient/repair_test.go which installs with repair ON and makes sure nothing breaks.
We can have either

repair default-OFF for the entire ambient test suite, and one test that validates with repair=ON
or the opposite, where repair is default-ON and we have one test that validates with repair=OFF

I don't care which, your choice, but both cases should be covered.

Should this be part of the same PR or a different one?

Should this be part of the same PR or a different one?

Ideally same, I guess? But I am ok with either.

#50673
After enabling CNI repair, I used TestTraffic as the test. Is that sufficient, @bleggett ?


tests(ticdc): fix unstable test TestEtcdBank

What problem does this PR solve?

Issue Number: close #2792
What is changed and how it works?

newClient, closer := setUpTest(t) is a blocking operation, so ctx with timeout should be created after this statement.
Remove some useless code.

Check List
Tests

Unit test

Related changes

Need to cherry-pick to the release branch

Release note
`None`

Codecov Report

Merging #5108 (b3f6824) into master (687e248) will increase coverage by 0.0102%.
The diff coverage is 57.4552%.

Flag
Coverage Δ

cdc
61.5006% <52.1428%> (+0.9020%)
:arrow_up:

dm
51.9148% <84.3373%> (-0.5547%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #5108        +/-   ##
================================================
+ Coverage   56.1240%   56.1342%   +0.0102%
================================================
  Files           522        525         +3
  Lines         65325      67490      +2165
================================================
+ Hits          36663      37885      +1222
- Misses        25094      25874       +780
- Partials       3568       3731       +163

/run-all-tests

/run-all-tests

/run-all-tests

/merge

/run-dm-integration-tests


Failure in git2 initialisation during use in rls

Hi,
I have written a proc-macro which uses git2-rs (https://github.com/kinnison/git-testament) and it works just fine in the compiler.  But the rls seems unable to deal with it being present.  Instead it will crash under circumstances I have yet to fully determine, with the message:  rls: libgit2/src/global.c:328: git__global_state: Assertion git_atomic_get(&git__n_inits) > 0' failed.`
If I annotate init() at https://github.com/rust-lang/git2-rs/blob/master/libgit2-sys/lib.rs#L3033 then I am confident that the initialisation function is being called somehow yet it still explodes the rls with the above message.  This is easy to demonstrate by checking out git-testament, changing into the git tree, and running rls --cli and waiting.  It usually fails for me immediately after the cargo jobs complete.  For instance, with RUST_LOG=debug rls --cli the last logging lines I get before the explosion are:
{"jsonrpc":"2.0","method":"window/progress","params":{"id":"progress_1","message":"simple cfg(test)","title":"Building"}}
{"jsonrpc":"2.0","method":"window/progress","params":{"id":"progress_1","message":"testutils cfg(test)","title":"Building"}}
DEBUG 2019-04-03T07:25:34Z: rls::build::rustc: rustc: analysis read successfully?: true
DEBUG 2019-04-03T07:25:34Z: cargo::core::compiler::fingerprint: write fingerprint: /home/dsilvers/dev-git/git-testament/target/rls/debug/.fingerprint/git-testament-66645cf5999d48e4/test-lib-git_testament-66645cf5999d48e4
 INFO 2019-04-03T07:25:34Z: cargo::core::compiler::job_queue: end: git-testament v0.1.0 (/home/dsilvers/dev-git/git-testament) => Target(lib)/Profile(dev) => Host
rls: libgit2/src/global.c:328: git__global_state: Assertion `git_atomic_get(&git__n_inits) > 0' failed.

Can you suggest a way for me to assist with diagnosing this issue?
Thanks,
Daniel.

In order to proceed with the intended purpose of git-testament I've rewritten my proc-macro to shell out to git for the short term.  (I'd prefer to revert to git2-rs at some point) - to that end the repository has a branch git2-version-before-rework which can be used to investigate further.

Sorry there's not a ton of bandwidth to help resolve these issues, but if possible it'd probably be best to open this up in a debugger and see which two stack traces call initialization, and from there we can probably debug further.

I have become more confident in attaching debuggers to Rust code since I filed this issue so I'll go ahead and see if I can find out more.  Feel free to assign this issue to me for the record.

I've managed to do a little research into this issue and what I've found is quite interesting/confusing.
The two times that the init function is called is when cargo initialises and when my proc-macro runs.
The two instances seem to, despite having different instances of libgit2 bound into them, shared the git__n_inits global in some sense since the return value from the init function the second time is 2.  However once we then call git_repository_open_ext the referenced git__n_inits ends up as zero and thus the assert fires.
Could this be a case of the symbols somehow being multi-exported from the cargo and proc-macro shared objects and thus being semi-badly unified?  The git_libgit2_init() in both cases is the same one (no debug symbols) but the git__global_state() call which fails has debug symbols, suggesting it's the one from my proc-macro built copy.

I misspoke before, since cargo is linked into rls, however the rls binary does show an exported set of symbols for libgit2.
This might simply be a case of bad symbol namespacing where the libgit2-sys crate really ought not to be exporting the C symbols for libgit2 any further than itself.  Certainly git_libgit2_init is exported from both.  Interestingly the git__n_inits symbol is not present in either's symbol table, so I wonder exactly how the decision was made as to which git_repository_open_ext to call and why it didn't find the same variant as for git_libgit2_init

Yeah I think you've hit the nail on the head here in diagnosing the issue.
I'm not really sure how to fix it  though because I thought the solution for these sorts of problems was to compile with -fvisibility=hidden which we're compiling libgit2 with. Other than that I'm not sure what to do with this :(

According to some research I have done, that's not going to work given we then build a static library.  I think we need to end up passing --exclude-libs path/to/libgit2.a when we link it in, to transform the symbols from the static library into hidden ones.  We could pass --exclude-libs ALL but that seems a tad heavy handed given we can't know what other things might be linked in.  I shall give this a go and see if it hides the symbols from the proc-macro library I build.

For reference, here's one of the things I found when googling around the topic: https://stackoverflow.com/questions/2222162/how-to-apply-fvisibility-option-to-symbols-in-static-libraries

Okay I'm not sure I can get that passed into the link stage, do you know of a way?  You are wiser in the ins and outs of linking C code to Rust than I :grin:

So far no banana :(  I think that needs to happen when the proc-macro is being linked into a .so but I'm not sure how to make that happen.


Set up MQTT connection to Flespi & Generate icon markers on map

Will be combine with issue 22 #22

New env added: FLESPI_KEY (See README.md)


Feat: Add Testemonials Page in website

Describe the feature
We should add Testemonial endpoint in website as it redirects to careers page
Add ScreenShots
N/A
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@upsaurav12 I think testemonials page already exists . Can you check once and if not available then tag me

no it is not there

@upsaurav12 Issue assigned to you

Hi @SUGAM-ARORA , I would like to take up this issue and I make sure that I will raise a PR within 2 days.

This is my pervious work on testimonials.

@nagalakshmi08 Testimonials page already exists. If @upsaurav12 @nagalakshmi08 you want to make some changes in it let me know!!


Update scache to 5.1.0

About this PR
📦 Updates com.evolution:scache from 5.0.0 to 5.1.0
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.evolution", artifactId = "scache" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.evolution", artifactId = "scache" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #493.


RE3 crash at launch

solved

How did you solve this? I'm having the same issue

@Shawn-Holan Set your graphics API to DirectX 11 before using the mod.
You can do this by deleting the mod and then setting it in your graphics options, or you can modify this line in your re3_config.ini in the game folder:
TargetPlatform=DirectX11


Support all types of events with coveoua & General clean up of the project

So I needed to send any type of event using the simple coveoua call and decided that all calls should instead pass through the generic client.sendEvent call.
I tried not to be too breaking, I changed some stuff that will not impact the two major usage: history (used in coveo-search-ui) and coveoua("send", "pageview", { ... }) (used in many projects for page views).
So here is a pretty good list of what was done here:

sendEvent now handles any logic that was either in the simpleanalytics part, or in the specific implementations sendViewEvent.
Breaking: sendEvent now returns the JSON response instead of the "Response" object. Thoughts?
Breaking: sendViewEvent and other implementations do not return the raw Response object through an added raw attribute. I'd rather have the direct response that matches the response returned from our APIs. Thoughts?
language now always fallbacks on document.documentElement.lang instead of only on page views.
SimpleAnalytics renamed to CoveoUA. I still export the old variables for retro-compatibility. I always found Simple to be quite meaningless :)
Removed popFromObject and objectassign since they were now useless with new TypeScript features
Put some files into sub-folders client and coveoua, to better separate some concerns.
Added exports for CoveoAnalyticsClient, CoveoUA and handleOneAnalyticsEvent directly on coveoanalytics since those are the most logical things to import and were scattered in sub-variables
Indent on 4 spaces, some files were 2, some were 4, I just put them all to 4.

Had some issues with the travis build, but now it's fixed and ready to be reviewed :)


docs: update version in reference-architectures

Description
update version in reference-architectures since version 6.6.0 will go live today
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

:tada: This PR is included in version 6.6.1 :tada:
The release is available on:

GitHub release
v6.6.1

Your semantic-release bot :package::rocket:


add tests for inventory

Scope & Purpose
Adds API tests for /_api/replication/inventory and /_api/replication/clusterInventory.

[x] Bug-Fix for devel-branch (i.e. no need for backports?)
[x] The behavior change can be verified via automatic tests

Testing & Verification
This PR adds tests that were used to verify all changes:

[x] Added new integration tests (i.e. in shell_client)

https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/7238/

https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/7278/

https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/7288/

https://<IP_ADDRESS>/view/PR/job/arangodb-matrix-pr/7304/


Add missing export option in add_hpx_module

The EXPORT option was used but not parsed.

 Specifying ON/OFF for those seems to be redundant. But I'm happy to be convinced otherwise. This is not a real issue.

Yah, those are options as well, I think... Specifying ON/OFF for those seems to be redundant. But I'm happy to be convinced otherwise. This is not a real issue.

Ok I'll change that !


Check old transactions

Describe the bug
Someone have access to the first version of the Taiko testnet block explorer? I've made some txs months ago and I can't check them on block explorer
Steps to reproduce

acess to block explorer
check the old transactions (more than 3 months)

Additional context
Additional context here.

If the tx is made a few months ago, the transaction may have been made in testnet A2 and would not be included in A3


Saving and loading outbox data

Should the NDKCache interface support storing outbox data? It seems to happen entirely in memory right now.

Yeah, that's correct.
Yeah. We should definitely add interfaces to the adapters to do this.


Drop backup

Broken and unmaintained for a long time, decide to completely drop.
An idea for future:

SQLite: we should use sqlite builtin backup command to export the db.
https://stackoverflow.com/questions/25675314/how-to-backup-sqlite-database

MySQL: use mysqldump?

I thought the same thing few hours ago, what a coincidence!

@louislam
There are a few issues/PRs left open that I think can be closed now.
(sorry for not commenting this earlier)
Could you close these issues:

https://github.com/louislam/uptime-kuma/issues/1500
https://github.com/louislam/uptime-kuma/issues/3543
https://github.com/louislam/uptime-kuma/issues/3078
https://github.com/louislam/uptime-kuma/issues/2426
https://github.com/louislam/uptime-kuma/issues/2015
https://github.com/louislam/uptime-kuma/issues/1897

And this PR:

https://github.com/louislam/uptime-kuma/pull/3840

Chiming in with a more in-depth explainaition:
Please see https://github.com/louislam/uptime-kuma/issues/2141#issuecomment-1272360952

In 1.18.3, the backup feature was deprecated due to [being left] unmaintained.

Backup & Restore with JSON has been deprecated and issues will not be fixed due to the amount of problems it has been causing for our users and us.
The current design is just not maintainable, causing countless bugs.
In v2.0 the deprecated backup tool is being removed because of this reason.
Please consider using SQL, API based[^1] or infrastructure based[^2] backup instead.
New approaches to these features should use SQLite dump or MariaDB dump respectively. (Here is our contribution guide)
You can subscribe to these issues meanwhile:

#2496
#477

[^1]: using the third-party API: https://uptime-kuma-api.readthedocs.io/en/latest/
[^2]: see https://github.com/louislam/uptime-kuma/issues/477#issuecomment-1557966187 for a setup example


reflected changes to the Makefile

changed make command for arm64-debian and armhf-debian

Thanks @MattMacs!


Create sast

{
"warning_type": "Cross-Site Scripting",
"warning_code": 124,
"fingerprint": "c2cc471a99036432e03d83e893fe748c2b1d5c40a39e776475faf088717af97d",
"check_name": "SanitizeConfigCve",
"message": "rails-html-sanitizer 1.4.2 is vulnerable to cross-site scripting when select and style tags are allowed (CVE-2022-32209)",
"file": "config/initializers/sanitizers.rb",
"line": 1,
"link": "https://groups.google.com/g/rubyonrails-security/c/ce9PhUANQ6s/m/S0fJfnkmBAAJ",
"code": "Rails::Html::SafeListSanitizer.allowed_tags = ["select", "a", "style"]",
"render_path": null,
"location": null,
"user_input": null,
"confidence": "High",
"cwe_id": [
79
]
}

I think this can be closed.


Introduce cache & file watching for auxiliary files

Currently any usage of load*() file functions results in files being re-read from disk every time the semantic model is changed (e.g. on every keypress in the editor). This PR introduces a compilation-level cache which can be transferred between semantic models to avoid reloading data from disk unnecessarily.
Closes #3426
Closes #8785
Microsoft Reviewers: Open in CodeFlow

I think it would be easier to review this PR via a shared Teams meeting...


Gif speed

I was trying to make a lighter by making it smaller since actually weights 30mb, I wonder if there is a way I can make the gif reproduce faster. Example: saying my gif has 300 frames that takes 4 seconds to reproduce it totally, I would like that the same gif would be completely reproduced at 2 seconds.
I saw that I can edit the frame speed but only of 1 frame at a time, so its kinda tedious to change the frame speed of the 300 frames.
Regards

Making the gif to go faster will not reduce the file size, only if you remove frames or decrease the amount of changes among frames.
There's a function called "Edit > Reduce frame rate" that allows you to remove frames and update the framerate to make up for the frames being removed.
But if you just want to decrease de frame speed (also known as frame delay) to make the gif go faster, you can select multiple frames by Ctrl + A and open the "Edit > Increase or Decrease" to adjust the delay/speed of the frames.

Oh, nvm, I was still using version 2, thats why I didnt saw that options. Thanks!


CODEOWNERS: exclude lib/maintainers.nix from the match?

@edolstra and @nbp are listed as code owners for lib/. That means they are requested for review whenever a new maintainer is added to the list. Last matching pattern is used, so if lib/maintainers.nix is added on its own line without any users, this would be fixed.
Feel free to close if this is intended.

Is there a way to specify any empty list of reviewers?
Otherwise, we could make it a bot, which checks that the patch is only adding lines, and that the files evaluate properly.

I think just listing no users would work but to make sure that it parses @ghost user can be added.


feat(checkbox): Add lightweight styling to Checkbox

GitHub Issue: https://github.com/unoplatform/uno.themes-private/issues/13
PR Type
What kind of change does this PR introduce?

Feature

Description

PR Checklist

[X] Tested UWP
[ ] Tested iOS
[ ] Tested Android
[X] Tested WASM
[ ] Tested MacOS
[X] Contains No breaking changes

Other information

Internal Issue (If applicable):

Rebased off latest main and pushed commit with resolved comments
@kazo0


Do not cause unhandled rejections on load errors

Summary & motivation
Prevent unhandled rejections caused by load errors.
Warn instead on load errors if loadStripe wasn't called.
Related to #26
Testing & documentation
Added unit tests.

Updated the tests to make them more consistent and legible. PTAL @christopher-stripe .


Update get-windowsfeature.md

#1106
Step Taken
Added Notes:
Get-WindowsFeature is a Server-Manager cmdlets that are only available on servers and when the remote administration tools on a workstation is install, see Windows Server: Installing roles and features in different ways https://social.technet.microsoft.com/wiki/contents/articles/52780.windows-server-installing-roles-and-features-in-different-ways.aspx
TS:
Tried to test Get-WindowsFeature in  Windows Server 2010 R2 it works
See screenshot below:
https://snag.gy/fmuRgS.jpg
https://snag.gy/DMjK14.jpg
Verified that Get-WindowsFeature is a Server cmdlet
References:
https://social.technet.microsoft.com/Forums/office/en-US/76189558-9da8-413f-b0ed-5b772a7edc7c/installwindowsfeature-command-does-not-work-in-ps-50-on-windows-10?forum=win10itprosetup
Alternatively, Get-WindowsOptionalFeature can be use, see reference:
https://social.technet.microsoft.com/wiki/contents/articles/52780.windows-server-installing-roles-and-features-in-different-ways.aspx

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@dariomws306 @get-itips @tseward
Peer review needed for this PR. Thanks.

I think we don't need to add this note the article.
It clearly states in the Synopsis:
Gets information about ### Windows Server roles, role services, and features that are available for installation and installed ### on a specified server.
Also in Description:
The Get-WindowsFeature cmdlet gets information about rrsandf_plural that are both available for installation and already installed on a computer that is running ### Windows Server 2012 R2 or an offline virtual hard disk (VHD) that is running ### Windows Server 2012 R2.

Yeah I think this is somewhat redundant if you are a Windows Server administrator and know how this works but if you are not maybe is positive to clarify? Let's see what @tseward says.
Bonus Track: I think is a good opportunity to fix and change the "rrsandf_plural" to "features"

Agreed with @dariomws306

cc  @sukihanabi

@JohanFreelancer9
@tseward @dariomws306 - Note removed
@get-itips - changed the "rrsandf_plural" to "features"
Feel free to let me know of any changes needed, Thank you for your help :)

Looks good now!

Looks good, thanks!

Ok!

Looks good.

@AndreaBarr The PR that has passed both copy and technical review can now be merged. Thanks.


Library unusable with react native 0.74.2

Environment

info Fetching system and libraries information...
System:
OS: Windows 10 10.0.19045
CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Memory: 1.26 GB / 7.85 GB
Binaries:
Node:
version: 20.11.0
path: D:\Softwares\Software Setups\nodejs\node.EXE
Yarn:
version: 1.22.22
path: ~\AppData\Roaming\npm\yarn.CMD
npm:
version: 10.2.4
path: D:\Softwares\Software Setups\nodejs\npm.CMD
Watchman: Not Found
SDKs:
Android SDK:
API Levels:
- "28"
- "29"
- "30"
- "31"
- "32"
- "33"
- "34"
Build Tools:
- 28.0.3
- 29.0.2
- 30.0.2
- 30.0.3
- 32.0.0
- 33.0.0
- 33.0.1
- 34.0.0
- 35.0.0
- 35.0.0
System Images:
- android-30 | Google APIs Intel x86 Atom
- android-30 | Google APIs ATD Intel x86 Atom
- android-31 | Intel x86_64 Atom
- android-33 | Google APIs ARM 64 v8a
- android-33 | Google APIs Intel x86_64 Atom
- android-34 | Google APIs ARM 64 v8a
- android-34 | Google APIs Intel x86_64 Atom
Android NDK: Not Found
Windows SDK:
AllowAllTrustedApps: Disabled
AllowDevelopmentWithoutDevLicense: Enabled
Versions:
- 10.0.16299.0
- 10.0.19041.0
IDEs:
Android Studio: Not Found
Visual Studio:
- 16.11.32413.511 (Visual Studio Community 2019)
Languages:
Java: 17.0.10
Ruby: Not Found
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.74.2
wanted: 0.74.2
react-native-windows: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: Not found
newArchEnabled: Not found
Platforms
 Android
Versions

Android: 12
iOS:
react-native-netinfo:
react-native: 0.74.2
react:

Description

I created a react native project with the expo command npx create-expo-app@latest and chose the typescript blank template. I tried to install this library in the project and it outputs dependency conflicts.
Reproducible Demo

I installed this library with the command npm i @react-native-clipboard/clipboard
This was the output:-

@RustyRishii , i am also facing the same issue, did you resolve this issue

@RustyRishii , i am also facing the same issue  in react native version 0.72.7, did you resolve this issue

Nope, i created a new project of version 0.73 as I had to get something done immediately.

we just need to update package.json of this library ? I can create a PR if it's just this

npm i @react-native-clipboard/clipboard --legacy-peer-deps
maybe can try this command @RustyRishii

If you want to use it, you can just download the previous version, it will work,
@foneazmi I already tried this command, with this you can install but can not use it, it will give you error.

@IAmRahul123
maybe you can just use yarn
test install it using yarn 4.2.1 no issue..
RN 0.74.3

I'm facing this issue to trying to upgrade to Expo SKD 51 which is using RN 0.74.3

xue:langx (main) $ npm install --save @react-native-clipboard/clipboard
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/react-native
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>|| ^0.62.3 || ^0.63.2 || ^0.64.2 || ^0.65.0 || ^0.66.0 || ^0.67.0 || ^0.68.0 || ^0.69.0 || ^0.70.0 || ^0.71.0 || ^0.72.0 || ^0.73.0" from<EMAIL_ADDRESS>npm ERR! node_modules/@react-native-clipboard/clipboard
npm ERR!   @react-native-clipboard/clipboard@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR!
npm ERR! For a full report see:
npm ERR! /Users/xl/.npm/_logs/2024-07-18T19_31_50_941Z-eresolve-report.txt

npm ERR! A complete log of this run can be found in: /Users/xl/.npm/_logs/2024-07-18T19_31_50_941Z-debug-0.log

Quick workaround is to create overrides object inside package.json as follows:
  "overrides": {     "react-native": "0.74.2",   },

+1

i had the same problem and i fixed it by running the command npm install<EMAIL_ADDRESS>--legacy-peer-deps

Quick workaround is to create overrides object inside package.json as follows:
`
"overrides": {
"react-native": "0.74.2",

},
`

it fixes temporarily but we need a PR here to fix it permanently

@arochedy  You can just change the react native version from package.json. Dont create a PR.

Limit the override scope to @react-native-clipboard/clipboard only.
Temporarily solution before new version is out
  "overrides": {
    "@react-native-clipboard/clipboard": {
      "react-native": "YOUR_REACT_NATIVE_VERSION"
    }
  }

I have solve this issue by installing this version ^1.13.2 of "npm i @react-native-clipboard/clipboard" in my react- native project version "0.74.5"

Installing @react-native-clipboard/clipboard version ^1.13.2 solves to me
using react native 0.74.3

Thanks @usmandilmeer and @kevinbzrra! I too attempted the same temporary fix like you did, for a react-native = 0.74.5 repo.
Installing @react-native-clipboard/clipboard to 1.13.2 temporarily did solve the yarn installation & the "post-resolution validation" below:
➤ YN0060: │ react-native is listed by your project with version 0.74.5 (pd037b), which doesn't satisfy what @react-native-clipboard/clipboard and other dependencies request (~0.70.0 || ~0.71.0 || ~0.72.0 || ~0.73.0).
➤ YN0002: │ RNDemoApp@workspace:. doesn't provide react-native-macos (p55bfa), requested by @react-native-clipboard/clipboard.
➤ YN0002: │ RNDemoApp@workspace:. doesn't provide react-native-windows (p0de5f), requested by @react-native-clipboard/clipboard and other dependencies.

Details
Node: v22.5.1
Yarn: v4.4.0
package.json file
  "dependencies": {
    "@react-native-clipboard/clipboard": "1.13.2",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "react-native": "0.74.5"
  },
  "devDependencies": {
    "typescript": "5.0.4"
  },
  "packageManager"<EMAIL_ADDRESS>  "engines": {
    "node": ">=22.5.1",
    "yarn": ">=4.4.0"
  }

Please note, additional testing required despite temporary fix. I am simply sharing my findings from suggested fix and yarn install output.


Not Working

I installed the package and put it in /users/me/.atom/packages
No highlighting when I copied and pasted the solidity token found on https://www.ethereum.org/token

Save it as a .sol file...


CNF-14860: Setup postgres for dev, migration for alarms and integrate with o2ims cli

Introduce the tables needed for alarm server
Integrate migration lib
Add k8s resources to deploy postgres DB
Integrate with CLI

/lgtm

/lgtm

/approve


Solve simple, dynamic firm investment problem

Hi and thanks for this package!
I'd like to use your package to solve a simple problem.

First the deterministic version:
using MacroModelling;

@model m begin
    I[0]  = ((ρ + δ - Z)/(1 - δ))  - ((1 + ρ)/(1 - δ)) * I[-1]
end
@parameters m begin
    ρ = 0.05
    δ = 0.10
    Z = .17
end
m_ss = get_steady_state(m)
# note the ss can be solved in closed form
#I_SS = (Z-ρ-δ)/(ρ+δ);  #(.17-0.05-0.10)/(0.05 + 0.10) # 0.13333333333333333

m_sol = get_solution(m)
ERROR: TypeError: in Type, in parameter, expected Type, got a value of type Vector{Any}

Not sure what to do about this error.

Hi,
thanks for your feedback. Actually I was following your Julia discourse thread and intend to post there :)
Regarding your problem:
I think here is a sign flip in the equation. If you type the following he gets the steady state as you post in the comments. I also included the internal symbolic solution (identical to yours).
using MacroModelling;

@model m begin
    I[0]  = ((ρ + δ - Z)/(1 - δ))  - ((1 + ρ)/(1 - δ)) * I[-1]
end
# Model: m
# Variables: 1
# Shocks: 0
# Parameters: 3
# Auxiliary variables: 0

@parameters m begin
    ρ = 0.05
    δ = 0.10
    Z = .17
end

m_ss = get_steady_state(m)
# 2-dimensional KeyedArray(NamedDimsArray(...)) with keys:
# ↓   Variables_and_calibrated_parameters ∈ 1-element Vector{Symbol}
# →   Steady_state_and_∂steady_state∂parameter ∈ 4-element Vector{Symbol}
# And data, 1×4 Matrix{Float64}:
#         (:Steady_state)  (:ρ)      (:δ)      (:Z)
#   (:I)   0.133333        -7.55556  -7.55556   6.66667

m.SS_solve_func
# RuntimeGeneratedFunction(#=in MacroModelling=#, #=using MacroModelling=#, :((parameters, initial_guess, 𝓂)->begin
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:495 =#
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:496 =#
#           ρ = parameters[1]
#           δ = parameters[2]
#           Z = parameters[3]
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:497 =#
#           I = ((Z - δ) - ρ) / (δ + ρ)
#           SS_init_guess = [I]
#           𝓂.SS_init_guess = if typeof(SS_init_guess) == Vector{Float64}
#                   SS_init_guess
#               else
#                   ℱ.value.(SS_init_guess)
#               end
#           return ComponentVector([I], Axis([sort(union(𝓂.exo_present, 𝓂.var))..., 𝓂.calibration_equations_parameters...]))
#       end))

For now I didn't think about the non-stochastic case. I'll have a look and will let you know.

So the above model doesn't work (as of now) because it has no forward looking variables and no shocks.
I took the example with forward looking variables and shocks from the discourse thread and that would give you the following:
using MacroModelling;

@model m begin
    K[0] = (1 - δ) * K[-1] + I[0]
    Z[0] = (1 - ρ) * μ + ρ * Z[-1] + σ * ϵ[x]
    I[1]  = ((ρ + δ - Z[0])/(1 - δ))  + ((1 + ρ)/(1 - δ)) * I[0]
end
# Model: m
# Variables: 1
# Shocks: 0
# Parameters: 3
# Auxiliary variables: 0
@parameters m begin
    ρ = 0.05
    δ = 0.10
    μ = .17
    σ = .2
end
m_ss = get_steady_state(m)
# 2-dimensional KeyedArray(NamedDimsArray(...)) with keys:
# ↓   Steady_state__States__Shocks ∈ 4-element Vector{Symbol}
# →   Variable ∈ 3-element Vector{Symbol}
# And data, 4×3 adjoint(::Matrix{Float64}) with eltype Float64:
#                    (:I)        (:K)        (:Z)
#   (:Steady_state)   0.133333    1.33333     0.17
#   (:K₍₋₁₎)          0.0         0.9         0.0
#   (:Z₍₋₁₎)          0.0497512   0.0497512   0.05
#   (:ϵ₍ₓ₎)           0.199005    0.199005    0.2

m.SS_solve_func
# RuntimeGeneratedFunction(#=in MacroModelling=#, #=using MacroModelling=#, :((parameters, initial_guess, 𝓂)->begin
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:495 =#
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:496 =#
#           ρ = parameters[1]
#           δ = parameters[2]
#           μ = parameters[3]
#           #= /Users/thorekockerols/GitHub/MacroModelling.jl/src/MacroModelling.jl:497 =#
#           Z = μ
#           I = ((Z - δ) - ρ) / (δ + ρ)
#           K = I / δ
#           SS_init_guess = [I, K, Z]
#           𝓂.SS_init_guess = if typeof(SS_init_guess) == Vector{Float64}
#                   SS_init_guess
#               else
#                   ℱ.value.(SS_init_guess)
#               end
#           return ComponentVector([I, K, Z], Axis([sort(union(𝓂.exo_present, 𝓂.var))..., 𝓂.calibration_equations_parameters...]))
#       end))

m_sol = get_solution(m)
# 2-dimensional KeyedArray(NamedDimsArray(...)) with keys:
# ↓   Steady_state__States__Shocks ∈ 4-element Vector{Symbol}
# →   Variable ∈ 3-element Vector{Symbol}
# And data, 4×3 adjoint(::Matrix{Float64}) with eltype Float64:
#                    (:I)        (:K)        (:Z)
#   (:Steady_state)   0.133333    1.33333     0.17
#   (:K₍₋₁₎)          0.0         0.9         0.0
#   (:Z₍₋₁₎)          0.0497512   0.0497512   0.05
#   (:ϵ₍ₓ₎)           0.199005    0.199005    0.2
init = m_ss(:,:Steady_state) |> collect
init[2] *= 1.5

plot_irf(m, initial_state = init, shocks = :none)

Sounds awesome!
I look forward to your comments on discourse!

thanks for the suggestions. here is what the package can do as of now:

[x] get steady states: unique SS - via get_SS
[ ] get steady states: no SS or multiple SS
to be added later. I need to look into it. my current understanding is that this concerns global solution algos (coming later)
[x] get policy functions - via get_solution
[x] get transition functions - via get_solution
[ ] get value functions
to be added later. need to think about implementing it while keeping the syntax simple
[ ] plot policy, transition, and value functions
need to think of a standardisable output. do you have something specific in mind which scales well (Smets and Wouters 2007 size models)?
[x] get & plot simulation of each Choice & State variable for any initial condition - via get_IRF(m, initial_state = x) and  plot(m, initial_state = x)
[ ] get & plot simulation for a given history of the shock(s)
coming soon
[x] get & plot IRF of each Choice & State variable to each shock - via get_IRF(m) and  plot(m) see docs for more details on selecting variables and shocks
[ ] (stochastic case: return density over time & stationary density)
to be added later

suggestions on any of these points are very welcome

I added the two to the table

v0.1.4 now includes plot_solution
it's a convenience function with which you can plot the mapping from past states to present variables (pair-wise) for all available solution algorithms. it is centred around the (non) stochastic steady state of the state variables and plots the range of +/- 2 standard deviations
any feedback on this implementation is welcome. check the documentation for examples


plutus-tx: append -> ++

This is the last operator in the Prelude that should really be symbolic.
(Note that gt, eq etc should not be, since then they would shadow
the Haskell Preldue ones, but they're monomorphic and
not appropriate replacements for the Haskell Prelude's
typeclass-polymorphic functions.)

(Note that gt, eq etc should not be, since then they would shadow
the Haskell Preldue ones, but they're monomorphic and
not appropriate replacements for the Haskell Prelude's
typeclass-polymorphic functions.)

However, I would hope this to be a temporary situation until the Plugin compiler deals properly with type classes. Right?

However, I would hope this to be a temporary situation until the Plugin compiler deals properly with type classes. Right?

Typeclasses are hard, and I don't expect them to work any time soon. I've been saying this for a while but I wrote an issue explaining why: https://github.com/input-output-hk/plutus/issues/1109.


Add support for a KSM installation

Build out module and experiments support for Container Services Manager (KSM).
Note: there's a nice article about getting it installed expediently, here:  http://www.clue2solve.io/tanzu/2020/07/14/install-ksm-and-configure-the-cf-marketplace.html.

Making some progress as of this commit.  Support introduced to stand up the service and integrate with a Cloud Foundry API endpoint.  What's left to do is to provision a minimal complement of service offerings (e.g., MySQL (MariaDB), Postgresql, Kafka).


Add optional pagination & filtering, and global configuration via provider

Ok... this is a pretty big PR.  Basically I've kept all original functionality, but added the ability to specify HTML templates for filtering & pagination using whatever you want.  These new options can be specified via a provider that can be configured for the app, but they have sensible defaults.
Many options can also be overridden on a per-table basis.
I've added documentation for everything as well.  I encourage you to pull these changes down and run the example-advanced.html file locally to see these changes in action.

Thank you for the pull-request. I looked at your code and examples and it looks good. Do you consider your code ready to merge and release? If so, I can merge it and do a release with it this weekend.

Awesome! Yes my company has been using this in 2 fairly large applications, and it's been great so far with the additions.
I can help out with anything if needed, I know this is a really huge PR and I do apologize for that.

The main grip I had with this pull request was that it magically applied a full pagination template when you specifies a "ts-item-name", which semantically doesn't make much sense; Too much automagic for my taste. Also you should have made an interactive rebase on the PR so it's easier to follow it.

@azatoth No, there's not a way to disable pagination on a per-table basis right now, but I could see that possibly being useful.  Keep in mind that the pagination & filtering are totally optional though.  If you don't configure these features, then it works exactly as it did before this PR was merged in.
However, what you mentioned does seem like a bug. The pagination filter is applied in cases where it shouldn't be. I'll try to fix this and submit a PR.


Question: The loop behavior from the Arduino IDE

Hello,
I was wondering if there is any future plans for implementing the Arduino loop, maybe as a lamda expression or something?
Thank you,
Vlad V.

Hi,
Thank you for your interest in this library.
I will try to have a look at your question the coming weekend.
Thanks,
Christophe

I'm not sure if I understand the intent completely, could you please elaborate?
Can you not simply replicate the Arduino "loop" (conceptually) like this?
using (var driver = new ArduinoDriver(ArduinoModel.UnoR3, true))
{
	while (true)
	{
		// Implement methods like you would in the 'loop' method.
	}
}

Hey,
To my shame i did not try that, (not knowing alot about the compiled arduino files) i though it was written in some other way so i can deploy it, if i run that in visual studio will the file stay deployed even if i close visual studio?
Thank you,
Vlad V.

Hi Vlad,
I'll try to explain a bit how the ArduinoDriver works, that may be helpful in answering some of your questions.
The library does not compile down C# code to AVR assembly (that would be super neat but also very very hard from a technical perspective). It requires a persistent serial connection (over USB) between the running C# code and the Arduino device.
What happens when you use the ArduinoDriver directly from C# code, is that an Arduino "Listener" (https://github.com/christophediericx/ArduinoDriver/blob/master/Source/ArduinoDriver/ArduinoListener/ArduinoListener.ino) gets autodeployed onto the Arduino device (by talking to the device's bootloader).
That listener at the Arduino will listen to incoming requests (as composed and sent by the C# library over the serial connection). It will execute the payload on the Arduino itself, and then formulate a response (which is being parsed out and transformed back into C# objects at the C# side).
It hope this clarifies things a bit.
Best regards,
Christophe

Got it,
Thank you for the explanation, now i have a better grasp of what's happening,
Vlad V.


Build google-services  error while running flutter build command

problem:
flutter build apk  --verbose
failed with play-services-location version error
can we get more details on  com.google.gms:google-services:4.3.3' version used in following android sdk dependencies used in flutter sdk?
dependencies {
        implementation 'com.hypertrack:hypertrack:4.1.2'
    }

build logs:
Configure project :app
[        ] WARNING: The option 'android.enableR8' is deprecated and should not be used anymore.
[        ] It will be removed in a future version of the Android Gradle plugin, and will no longer allow you to disable R8.
[        ] WARNING: DSL element 'useProguard' is obsolete and will be removed soon. Use 'android.enableR8' in gradle.properties to switch between R8 and Proguard..
[ +275 ms] Dependency resolved to an incompatible version: Dependency(fromArtifactVersion=ArtifactVersion(groupId=com.hypertrack, artifactId=hypertrack, version=4.1.2), toArtifact=Artifact(groupId=com.google.android.gms,
artifactId=play-services-location), toArtifactVersionString=[15.0.1, 17.0.0])
[   +2 ms] FAILURE: Build failed with an exception.
[   +1 ms] * What went wrong:
[        ] Could not determine the dependencies of task ':hypertrack_plugin:compileReleaseAidl'.
[        ] > In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[15.0.
[        ]   1, 17.0.0]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.
[        ]   Dependency failing: com.hypertrack:hypertrack:4.1.2 -><EMAIL_ADDRESS>17.0.0], b
[        ]   ut play-services-location version was 17.0.0.
[        ]   The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
[        ]   ifact with the issue.
[        ]   -- Project 'app' depends on project 'hypertrack_plugin' which depends onto com.hypertrack:hypertrack@{strictly 4.1.2}
[        ]   -- Project 'app' depends on project 'hypertrack_plugin' which depends onto<EMAIL_ADDRESS>[        ]   -- Project 'app' depends on project 'hypertrack_plugin' which depends onto com.google.android.gms:play-services-location
[        ]   @{strictly 17.0.0}
[        ]   For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
[        ]   endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
[        ]   github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
[        ]   uild.gradle file.
[        ] * Try:
[        ] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[        ] * Get more help at https://help.gradle.org
[        ] BUILD FAILED in 1s
[ +348 ms] Running Gradle task 'assembleRelease'... (completed in 1.7s)
[   +7 ms] "flutter apk" took 2,296ms.
Gradle task assembleRelease failed with exit code 1

Temporary fix:
googleServices { disableVersionCheck = false }

Hey @LOG-TAG!
I've bumped HyperTrack Android SDK version, that plugin uses internally, to benefit from loose play-services dependency declaration. Please, update hypertrack plugin version to 0.1.1 to use it.
The problem you've faced is a bug in google's plugin, you can get more details here https://github.com/google/play-services-plugins/issues/36.
LMK, if you need something else.


merge experiment and experiment_simple

Some nagging :-)
fb6efeef462bf637446ab63a72abf0108c2f6023 creates duplicate code, which is completely untested. This should go in a branch, or in a fork of this repo, which can then be merged when the code is ready -- see gitlab flow.
Also, using spaces around parameters and in comprehensions, and indenting with 2 spaces instead of 4 does not follow the pep8 style guidelines. Since the philosophy of python is 'there's only one way to do it', we should follow the style rules. There are good extensions for vim, pycharm, etc..., which check pep8 style automatically, that's what I use.
Finally, the new python print function is an actual function, not a keyword. That means that lines like this will break on python3, and we will have to fix them later.
I only mention this stuff because I want to avoid the problems that other academic open-source projects have, where the code is messy and impossible to read. Right now at the beginning it is much easier to fix than it will be later. Feel free to criticise my code as well ;-)

OK, I made a new branch. Life is pain...

done


Enums as object identifiers

It took me less than I anticipated...
Main changes:

One enum per 'BaseClass' type, the derived classes must override a get_id() member that return the correct enum field value
Factory uses enums to create objects, optionally, one can pass either the enum field value or the corresponding string. If one tries to create a Factory that does use a enum proto as Identifier, the code will not  compile.

While changing stuff around, I realized one thing that puzzled me: in run.cc we assume that the hierarchy's prior type is
"bayesmix::" + HierarchyID+ "Prior", where HierarchyID is what the old get_id was returning.
However, we never actually test this, so that things can be pretty confusing when looking at the error messages from run.cc.
One option would be to have the Hierarchy classes handle themselves which classes their priors belongs to.
For instance NNIGHierarchy might have a member bayesmix::NNIGPrior prior and a function member
google::protobuf::Message* NNIGHierarchy get_prior() {return &prior;}

and de-serialize stuff directly inside the NNIGHierarchy's prior message

Thank you, now only the prior id issue is left. Would you mind explaining your idea with more detail? We already have pointers to priors objects in the hierarchies

Sure, I would add a method
virtual google::protobuf::Message* BaseHierarchy::prior_proto() = 0;

and override it as (in NNIGHierarchy)
....
protected:
std::shared_ptr<bayesmix::NNIGPrior> prior;
...
public
google::protobuf::Message* prior_proto() override {return prior; };

or some casting of it
in run.cc I would then substitute
std::string hier_prior_str = "bayesmix." + hier_type + "Prior";
  auto hier_prior_desc = google::protobuf::DescriptorPool::generated_pool()
                             ->FindMessageTypeByName(hier_prior_str);
  if (hier_prior_desc == NULL) {
    throw std::invalid_argument("Unrecognized hierarchy prior");
  }
  auto *hier_prior = google::protobuf::MessageFactory::generated_factory()
                         ->GetPrototype(hier_prior_desc)
                         ->New();
  bayesmix::read_proto_from_file(hier_args, hier_prior);
  hier->set_prior(*hier_prior);

with
bayesmix::read_proto_from_file(hier_args, hier->prior_proto());

then what happens in hier->set_prior(*hier_prior) must be done for instance in the initialize() by calling a private member like initialize_hyperparams()
WDYT?

I like that!

I would name the method get_prior_as_proto.

I don't agree with this, since in all the rest of the library a getter is a const method (does not change the class) while by returning a pointer to the proto, we might (and actually is what we want) change the state of the class

Fair enough. But the current name does not convey at all what the class does. I'd just like intelligible names. Maybe prior_to_proto() and cast_prior_as_proto()?

I'm not convinced from both of them: prior_to_proto does not perform any conversion, since prior is already a proto, and cast_prior_as_proto does not perform any casting.
What's wrong with prior_proto()?

Ok so the new concept for handling priors without forcing naming conventions is running for the hierarchies. If you are onboard with that I will also extend it to the Mixings and then we can close this PR.
One thing I realized is that we have a some copy-pasted code around, well not exactly copy-pasted but let's say with the same structures.
For instance all the hierarchies have
State state;
std::shared_ptr<Hyperparams> hypers;

of course with different definition of State and Hyperparams
Moreover in sample_given_data we basically perform
Hyperparams params = get_posterior_parameters()
state = draw(params)

where get_posterior_parameters has different names depending on the hierarchy but the reasoning is still the same.
I guess this rings a bell and should drive us towards the Curiously Recurring Template Pattern, where we could have the following class hierarchy

class AbstracHierarchy defines the interface, i.e. all the methods that need to be called from the algorithm but does not implement anything (i.e. purely abstract class)
template <class Derived, class State, class Hyperparams> BaseHierarchy: public AbstractHierarchy substituites the BaseHierarchy class (i.e. implements all the methods already in base_hierarchy.cc + some methods that can be promoted into the base class thanks to templates)
class NNIGHierarchy: public BaseHierarchy<NNIGHierarchy, NNIGState, NNIGHypers> etc... substitute the current hierarchies.

Then in BaseAlgorithm we would store a std::vector<std::shared_ptr<AbstractHierarchy>> instead of BaseHierarchy.
This would be a large refactoring and once again without much added value at the moment, also I'm not sure that CRTPs work with multiple template arguments. I would be glad to work on this after your refactoring of Dependent hierarchies, but in my free time (i.e. not going to happen in the near future)

I'm not convinced from both of them: prior_to_proto does not perform any conversion, since prior is already a proto, and cast_prior_as_proto does not perform any casting.
What's wrong with prior_proto()?

"prior" and "proto" are just two words stuck together which don't convey any meaning. I stand corrected about this method not performing conversion, but there has to be a better name for a method which returns (a pointer to) a proto. Same with "cast prior proto". If it's not casting, is it downcasting? Either way, IMO all method names should explain what they do, not just vaguely referring to their functionality.

Ok so the new concept for handling priors without forcing naming conventions is running for the hierarchies. If you are onboard with that I will also extend it to the Mixings and then we can close this PR.

I'll check it out ASAP.

One thing I realized is that we have a some copy-pasted code around, well not exactly copy-pasted but let's say with the same structures.
[...]
This would be a large refactoring and once again without much added value at the moment, also I'm not sure that CRTPs work with multiple template arguments. I would be glad to work on this after your refactoring of Dependent hierarchies, but in my free time (i.e. not going to happen in the near future)

Yeah that's what I was telling you about the current shaky internal structure of hierarchies. I like the concept. Please feel free to work on it whenever you wish.

"prior" and "proto" are just two words stuck together which don't convey any meaning. I stand corrected about this method not performing conversion, but there has to be a better name for a method which returns (a pointer to) a proto. Same with "cast prior proto". If it's not casting, is it downcasting? Either way, IMO all method names should explain what they do, not just vaguely referring to their functionality.

I totally get your point, but as it stands this method basically return the pointer to the prior object, as simple as that.
The correct method name would be  get_prior(), but then we are in conflict with the idea that getters do not change anything.
Maybe we can adopt the protobuf naming convention and say get_mutable_prior()?

I can agree with that name. What about cast_prior_proto()? If it doesn't cast, why does it have cast in its name? Either way, would get_mutable_cast_prior() work?

Please check again, there is no casting involved

It takes a pointer to a google::protobuf::Message and returns it as a pointer to a bayesmix::LinRegUniPrior which is a particular case of the former. How is it not casting or downcasting?

Wait, are you talking about cast_prior_proto (lines 54-57 of lin_reg_uni_hierarchy.h) or prior_proto (lines 94-94 in base_hierarchy.h)?

Wait, are you talking about cast_prior_proto (lines 54-57 of lin_reg_uni_hierarchy.h) or prior_proto (lines 94-94 in base_hierarchy.h)?

The first one. We already agreed upon the other

Ok last thing that remains is the naming of cast_prior_proto. I made this method protected, so that it's less impactful on the API.
Please suggest some alternative naming :)

get_mutable_cast_prior()?

that is really bad!
why not just cast_prior?

Now that is a perfectly fine name. Deal.
Also, please address the last handful of comments I've left earlier.

It should be ok now

Great. I'll merge right now. I guess I'll be the one who has to handle the merge with the other PR...

I guess such is life... 😂


Add filters in DID search

The DID search in the jupyterlab extension only takes into account three parameters: name, scope and type.
It would be useful to be able to filter the DIDs by user-defined metadata. This could be done by adding an additional "filters" parameter in the DID search and forwarding it to the "filters" argument in the /dids/{scope}/dids/search REST API endpoint that relies on rucio.core.did.list_dids method.
The "filters" argument is not listed in the documentation of the REST API method, but it seems to be there when looking into the underlying code
An effort to implement this feature has been started in this fork

Hi, all!
The author of the fork here. You can find a prototype of the interface located here: link.
As I've mentioned previously on the Mattermost, I've been trying to integrate this interface in the extension but I've been having some issues with it. It seems that the functionality that should fire after clicking the newly introduced button is simply not there.
After more digging, I discovered to my surprise that now I cannot even remove the button...  I have checked if the extension gets built correctly, I've also checked the build directory and the timestamps of the newly generated files, and I've checked the source code in the rebuilt Docker container to see if it gets updated correctly. Nothing so far points me to the source of the issue. I thought that it could be a browser caching issue but opening the JupyterLab in an incognito mode shows that the button is still there. Baffling. I'm sure I'm making a silly mistake somewhere but I cannot comprehend what it is at the moment.
On the other hand, as I was advised, I've rebased my fork onto the master branch of this fork made by @garciagenrique that contains the latest changes related to the migration to JupyterLab 4. Unfortunately, it introduced some new issues. Here is what I'm currently getting when trying to build the extension:
/rucio-jupyterlab/docker/container/install_extension.sh
WARNING: The directory '/home/jovyan/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Processing /rucio-jupyterlab
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [57 lines of output]
      INFO:hatch_jupyter_builder.utils:Running jupyter-builder
      INFO:hatch_jupyter_builder.utils:Building with hatch_jupyter_builder.npm_builder
      INFO:hatch_jupyter_builder.utils:With kwargs: {'build_cmd': 'build:prod', 'npm': ['jlpm']}
      INFO:hatch_jupyter_builder.utils:Installing build dependencies with npm.  This may take a while...
      INFO:hatch_jupyter_builder.utils:> /tmp/pip-build-env-nyd23fd9/overlay/bin/jlpm install
      ➤ YN0000: ┌ Resolution step
      ➤ YN0002: │ @jupyterlab/galata@npm:5.1.5 doesn't provide react (p9350a), requested by @jupyterlab/settingregistry
      ➤ YN0002: │ @jupyterlab/services@npm:7.1.5 doesn't provide react (p9731b), requested by @jupyterlab/settingregistry
      ➤ YN0002: │ @jupyterlab/testutils@npm:4.1.5 doesn't provide typescript (p769f3), requested by @jupyterlab/testing
      ➤ YN0002: │ @types/react-select@npm:5.0.1 doesn't provide react (pde7d5), requested by react-select
      ➤ YN0002: │ @types/react-select@npm:5.0.1 doesn't provide react-dom (p1ca88), requested by react-select
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (p14edf), requested by pullstate
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (pa4fdd), requested by react-copy-to-clipboard
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (pe256c), requested by react-jss
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (pc89ce), requested by react-select
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (p59bdc), requested by react-virtualized-auto-sizer
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react (p77d33), requested by react-window
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react-dom (pede78), requested by react-select
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react-dom (p5475f), requested by react-virtualized-auto-sizer
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide react-dom (pea2f9), requested by react-window
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide webpack (p2f539), requested by source-map-loader
      ➤ YN0002: │ rucio-jupyterlab@workspace:. doesn't provide webpack (p8231d), requested by style-loader
      ➤ YN0000: │ Some peer dependencies are incorrectly met; run yarn explain peer-requirements <hash> for details, where <hash> is the six-letter p-prefixed code
      ➤ YN0000: └ Completed
      ➤ YN0000: ┌ Fetch step
      ➤ YN0000: └ Completed
      ➤ YN0000: ┌ Link step
      ➤ YN0000: └ Completed
      ➤ YN0000: Done with warnings in 0s 462ms
      INFO:hatch_jupyter_builder.utils:> /tmp/pip-build-env-nyd23fd9/overlay/bin/jlpm run build:prod
      src/components/@Explore/ExploreTab.tsx(131,52): error TS2552: Cannot find name 'DIDSearchResult'. Did you mean 'IDIDSearchResult'?
      Traceback (most recent call last):
        File "/opt/conda/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/opt/conda/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/conda/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 152, in prepare_metadata_for_build_wheel
          whl_basename = backend.build_wheel(metadata_directory, config_settings)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-nyd23fd9/overlay/lib/python3.11/site-packages/hatchling/build.py", line 56, in build_wheel
          return os.path.basename(next(builder.build(wheel_directory, ['standard'])))
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-nyd23fd9/overlay/lib/python3.11/site-packages/hatchling/builders/plugin/interface.py", line 150, in build
          build_hook.initialize(version, build_data)
        File "/tmp/pip-build-env-nyd23fd9/normal/lib/python3.11/site-packages/hatch_jupyter_builder/plugin.py", line 94, in initialize
          raise e
        File "/tmp/pip-build-env-nyd23fd9/normal/lib/python3.11/site-packages/hatch_jupyter_builder/plugin.py", line 89, in initialize
          build_func(self.target_name, version, **build_kwargs)
        File "/tmp/pip-build-env-nyd23fd9/normal/lib/python3.11/site-packages/hatch_jupyter_builder/utils.py", line 117, in npm_builder
          run([*npm_cmd, "run", build_cmd], cwd=str(abs_path))
        File "/tmp/pip-build-env-nyd23fd9/normal/lib/python3.11/site-packages/hatch_jupyter_builder/utils.py", line 231, in run
          return subprocess.check_call(cmd, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/conda/lib/python3.11/subprocess.py", line 413, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/tmp/pip-build-env-nyd23fd9/overlay/bin/jlpm', 'run', 'build:prod']' returned non-zero exit status 1.
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

Any insights on both issues are welcome.

The functionality for filtering the DIDs based on the specified filters of user metadata is now added. Feel free to test it.
There is still some work to be done like improving style of the interface and some minor code refactoring, though.
There are a couple of things which are important to mention. If you'll look at the code, you will notice that I've added a function parse_did_filter_from_string_fe in rucio_jupyterlab/rucio/rucio.py, https://github.com/GeorgySk/jupyterlab-extension/blob/a6fa76615592131bc09f5c91295dadbd7e7b6601/rucio_jupyterlab/rucio/rucio.py#L20. This function is actually copied from the Rucio code here: https://github.com/rucio/rucio/blob/d7c7645b10dd6b904108bd94bd48f6ce14a20d90/lib/rucio/common/utils.py#L1455. I needed that function for conversion of strings from, e.g., key1=value1;key2=value2,key3=value3 into lists of dicts like [{'key1': 'value1'}, {'key2': 'value2', 'key3': 'value3'}]. This code duplication could be avoided by either parsing the state of the interface into a list of dicts directly, or by fixing, what I believe, an erroneous logic in the Rucio repository at https://github.com/rucio/rucio/blob/d7c7645b10dd6b904108bd94bd48f6ce14a20d90/lib/rucio/core/did_meta_plugins/init.py#L198 where it is assumed that the filters are a list of dicts before they have a chance to be converted with the aforementioned function.
Another issue is that the JSON plugin doesn't return some attributes like a DID type, and file size, which are required if we want to display the DIDs correctly in the panel with the search results. As a workaround, I've added a method get_metadata to retrieve the regular metadata here: https://github.com/GeorgySk/jupyterlab-extension/blob/master/rucio_jupyterlab/rucio/rucio.py#L196 and I call it for every DID that lacks the required information here: https://github.com/GeorgySk/jupyterlab-extension/blob/a6fa76615592131bc09f5c91295dadbd7e7b6601/rucio_jupyterlab/handlers/did_search.py#L39-L44. I'm not entirely sure if this is a correct approach.
Also, something that I haven't thought about so far is the tests. I'll have to take a look at that.

I downloaded your version and gave it a try. It seems to work properly. The only thing I found is that errors are not properly handled. For example:

I add attr1=1 to a file with rucio set-metadata --did test:file1 --key attr1 --value 1
try to get it from the client rucio -vv list-dids test:* --filter "type=ALL,attr1=1" I get this error:

2024-08-20 10:39:17,470 ERROR   Provided metadata is considered invalid.
Details: Filter keys used do not all belong to the same metadata plugin.

when I try from the extension I get a "No results found" message.

I haven't yet looked into the tests or the documentation.
Thank you very much. Great effort!

The problem with Rucio API error handling is probably not related to this feature, but something general throughout the exension that should be improved.

I created a PR with some changes to be merged in @GeorgySk 's branch, mainly test fixes: https://github.com/GeorgySk/jupyterlab-extension/pull/1
I only fixed the already existing tests and included a minimal test on a React component. It would be good to include some tests additional tests specifically on the usage of metadata filters on the python side.
From the implementation pov I wonder if it would be possible to have another React component (e.g. MetadataFilterList), containing the list of metadata filters and the methods to manage them, in a separate module, instead of having everything in ExploreTab.tsx. This would also ease testing the addition, removal of new filters.
I don't think these improvements should be blocking in case there's an urgent need to have this feature in production. But, if there's no hurry, I'd rather implement them.

Thanks for the PR, @ftorradeflot! I will get back to you with a feedback on it later.
Me and Andres Tanasijczuk also discussed the new code on Slack, and he had some comments on it as well. I will post them here to have everything in one place.

Here json.dumps is added but it seems to be not necessary as the Rucio client code doesn't have it as can be seen here and here.
The name parameter from here probably should be added to the filters instead, like filters, _ = parse_did_filter_from_string_fe(filters, name). This is because right now the filters do not work together with specifying a name of a DID. The filters take precedence.
As it was mentioned before, get_metadata gets called for each DID returned by the search which is not a good thing. The get_metadata method is adding did_type , bytes and length, which are the three properties that the json_meta plugin is not returning compared to the did_column_meta plugin. We might want to ignore the length property as it is probably not used by the JupyterLab extension. We could probably also define an empty string as a default value for bytes?.. And about the did_type , we could propose to modify the json_meta plugin by adding a line models.DIDMeta.did_type here so that it returns also did_type, since it seems to be available in the DIDMeta class (see here). We could then check in the extension if there is a returned type. If there is not, we call get_metadata only if the search type  is datasets and containers or everything; if the search type is files, datasets or containers we'd assume the returned type is just the search type.

Regarding the first point about the json.dumps. Indeed, it can be removed and the result will be the same. This is because, urlencode will convert the filters to a string under a hood. And while that string will be not a valid JSON, it won't matter, since it will be converted back to a list of dicts not by json.loads as I incorrectly assumed but by ast.literal_eval.
One thing to note here is that the extension wraps all the filter keys and values in quotes regardless of if they are numeric or not. Numbers will then be casted to numeric types by calls to ast.literal_eval here, and the strings... will cause those calls to throw ValueErrors as the strings themselves do not contain quotes. The absence of inner quotes can break things if, for example, a string is not a valid Python syntax. For example, a filter key/value with a space in it, e.g. a b will cause ast.literal_eval to throw SyntaxError which won't be caught. To fix this, we should probably have the extension adding a second set of quotes to non-numeric strings.

@ftorradeflot, I've just pushed a couple of more changes:

The search now works correctly when both filters and DID are specified.
Styles have also been fixed, and now switching between light and dark themes works correctly (previously the colors didn't change).

I've also looked into displaying errors for the case when there is a mismatch between types of filter values (e.g. when a file has a metadata value of a string type, but in the search field we specify a numeric value). But it seems like some changes should be introduced to the Rucio's code first. From what I understand, it doesn't handle response 500 correctly here. Instead, I'm getting dids like this:
[{'ExceptionClass': 'InvalidMetadata', 'ExceptionMessage': 'Database query failed: (psycopg2.errors.InvalidTextRepresentation) invalid input syntax for type double precision: "b"\n\n[SQL: SELECT dev.did_meta.name AS dev_did_meta_name, dev.did_meta.scope AS dev_did_meta_scope \nFROM dev.did_meta \nWHERE CAST((dev.did_meta.meta ->> %(meta_1)s) AS FLOAT) = %(param_1)s AND dev.did_meta.scope = %(scope_1)s]\n[parameters: {\'meta_1\': \'a\', \'param_1\': 3, \'scope_1\': \'test\'}]\n(Background on this error at: https://sqlalche.me/e/20/9h9h). This can be raised when the datatype of a key is inconsistent between dids.'}]

If this is fixed, then I'd only have to add a couple of lines here to display an error instead of just "No results found".
In principle, I've finished with the code. I'm not sure what else is left to do. I mentioned that the JSON plugin doesn't return some of the attributes, and that I had to add calls to Rucio to retrieve regular metadata for each DID. But, in the end, I don't think I can do anything on the side of the extension, as, for example, I cannot simply ignore the size of the file since it is actually displayed in the panel with the results.
Should I create a pull request?

I've just pushed a fix for that issue with string values that are not valid Python syntax. Now all non-numeric keys/values get additional quotes that help preventing unwarranted SyntaxErrors in the Rucio code. Importantly, I've made an assumption that the keys cannot be numeric. IMHO, that's a safe assumption, but I wanted to ask what you think about it.

I second the assumption

@ftorradeflot, I've just pushed a couple of more changes:

The search now works correctly when both filters and DID are specified.
Styles have also been fixed, and now switching between light and dark themes works correctly (previously the colors didn't change).

I've also looked into displaying errors for the case when there is a mismatch between types of filter values (e.g. when a file has a metadata value of a string type, but in the search field we specify a numeric value). But it seems like some changes should be introduced to the Rucio's code first. From what I understand, it doesn't handle response 500 correctly here. Instead, I'm getting dids like this:
[{'ExceptionClass': 'InvalidMetadata', 'ExceptionMessage': 'Database query failed: (psycopg2.errors.InvalidTextRepresentation) invalid input syntax for type double precision: "b"\n\n[SQL: SELECT dev.did_meta.name AS dev_did_meta_name, dev.did_meta.scope AS dev_did_meta_scope \nFROM dev.did_meta \nWHERE CAST((dev.did_meta.meta ->> %(meta_1)s) AS FLOAT) = %(param_1)s AND dev.did_meta.scope = %(scope_1)s]\n[parameters: {\'meta_1\': \'a\', \'param_1\': 3, \'scope_1\': \'test\'}]\n(Background on this error at: https://sqlalche.me/e/20/9h9h). This can be raised when the datatype of a key is inconsistent between dids.'}]

If this is fixed, then I'd only have to add a couple of lines here to display an error instead of just "No results found".
In principle, I've finished with the code. I'm not sure what else is left to do. I mentioned that the JSON plugin doesn't return some of the attributes, and that I had to add calls to Rucio to retrieve regular metadata for each DID. But, in the end, I don't think I can do anything on the side of the extension, as, for example, I cannot simply ignore the size of the file since it is actually displayed in the panel with the results.
Should I create a pull request?

Yes, @GeorgySk I think you can create a pull request


Add ability to scale the overview map compared to the view's scale

@colinanderson Additional property looks good. Couple of points as discussed:

latest master can be merged in with the version updates etc. from earlier so it builds
javadoc to add
scales well with MapView but not with SceneView - should we match the behaviour?

@jenmerritt doc has been added and the behaviour has been updated to match the design. I've made a few other small changes like using ColorUtil.colorToArgb to define the colours.

@sclaridge can you do a second review please?


feat: POST-only non-idempotent endpoints

Make sure data directory exists before using it
Fix favorites always being blank on server start
Make /favorites, /note, /flag_content endpoints POST-only
Fix app always writing to disk even before 60 seconds have passed
Fix app error trying to delete nonexistent query parameters
Fix redirects after POST action
Color flag count when greater than 0
Fix invalid CSS property text-weight -> font-weight
Fix incorrect query parameter handling on Share Link
Graceful timeout if update_all fails

Closes the following issues on kagifeedback:

https://kagifeedback.org/d/3312-small-web-appreciate-and-flag-can-potentially-be-triggered-by-browser-page-preloading
https://kagifeedback.org/d/3312-small-web-appreciate-and-flag-can-potentially-be-triggered-by-browser-page-preloading
https://kagifeedback.org/d/3310-small-webs-link-here-does-not-account-for-existing-query-parameters

Very nice PR, thank you for contributing. Should be live soon.