Add close applications behaviour

Allow for applications to be closed (and close it for now)

@wailingtam fixed


Render trending not following if following 0.

Why does the in progress label keep getting added?

@alanpeabody That's a good question, I have no idea. Just checked our Dangerfile and it doesn't appear to be that. I wonder if it's from exploring the different project management tools?

oh, I bet it is waffle

@Justin-Holmes this all seems right to me... I can't help but wonder if it was just limited staging data that caused problems.
That said, people who's followers have not posted in a while will get a 204. Thoughts on trying to get around that?

@alanpeabody Sounds good, I'll give it another look.


Draft: #2028 Manage spark history through the Operator chart.

🛑 Important:
Please open an issue to discuss significant work before you start. We appreciate your contributions and don't want your efforts to go to waste!
For guidelines on how to contribute, please review the CONTRIBUTING.md document.
Purpose of this PR
See #2028
Proposed changes:

<Change 1>
<Change 2>
<Change 3>

Change Category
Indicate the type of change by marking the applicable boxes:

[ ] Bugfix (non-breaking change which fixes an issue)
[X] Feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that could affect existing functionality)
[X] Documentation update

Rationale

Checklist
Before submitting your PR, please review the following:

[ ] I have conducted a self-review of my own code.
[ ] I have updated documentation accordingly.
[ ] I have added tests that prove my changes are effective or that my feature works.
[ ] Existing unit tests pass locally with my changes.

Additional Notes

/hold


Collapse multi-line reason phrases in HttpStatusCodeWithBodyResult

Address https://github.com/NuGet/NuGetGallery/issues/6279.

@shishirx34:
This PR: https://github.com/NuGet/NuGetGallery/pull/6150
This line: https://github.com/NuGet/NuGetGallery/blob/e60e75fcab128094aa8aa0410a17ffc57bddf4bd/src/NuGetGallery/Controllers/ApiController.cs#L659-L667


Restarting the window in REPL blows up

Just starting to get back into this again and it's great to see stuff has progressed a lot!
Looking at the REPL based workflow, one thing that's a bit unclear is how to restart the window now?
I'm asking this because if I change a component low down in the hierarchy such as a label within a checkbox in the app, reloading that component in the REPL doesn't change it, only restarting the REPL seems to, which is not ideal as there's a clear pause that occurs when I kill the app, about a 3rd of the time which seems to temporarily lock up the UI on occasion on my mac. I'm assuming there's some delay in letting go of the graphics card.
Trying to restart the window for example using:
(io.github.humbleui.core/thread
  (let [screen (last (app/screens))]
    (reset! state/*window
        (ui/window
            {:title    "Humble 🐝 UI"
               :mac-icon "resources/images/icon.icns"
               :screen   (:id screen)
               :width    600
               :height   400
               :x        (if (= (:id screen) (:id (app/primary-screen))) :left :center)
               :y        :center}
            state/*app))))

Blows up:
2022-12-10 02:27:25.660 java[28657:9612981] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow drag regions should only be invalidated on the Main Thread!'
*** First throw call stack:
(
        0   CoreFoundation                      0x00007fff2f8d1b57 __exceptionPreprocess + 250
        1   libobjc.A.dylib                     0x00007fff685825bf objc_exception_throw + 48
        2   CoreFoundation                      0x00007fff2f8fa34c -[NSException raise] + 9
        3   AppKit                              0x00007fff2caf45ec -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 310
        4   AppKit                              0x00007fff2cadc052 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416
        5   AppKit                              0x00007fff2cadbac3 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
        6   libjwm_x64.dylib                    0x000000010bab9e77 _ZN3jwm9WindowMac4initEv + 263
        7   libjwm_x64.dylib                    0x000000010baba3e3 Java_io_github_humbleui_jwm_WindowMac__1nMake + 227
        8   ???                                 0x000000011bbdb051 0x0 +<PHONE_NUMBER>
)
libc++abi.dylib: terminating with uncaught exception of type NSException
/bin/sh: line 1: 28657 Abort trap: 6           lein with-profile +dev trampoline run
make: *** [dev] Error 134

EDIT:
Ok, I found io.github.humbleui.app/doui, which seems to work, I'm going to have to do some overrides so that the quit on close behaviour is disabled on development.
Not sure if there's a more elegant approach?
EDIT2:
Ok, it doesn't seem to consistently work, so there's still a reloading issue, not sure if it's because the components aren't being reloaded properly or something else, I'm going to investigate using clojure.tools.namespace.repl.

The solution I designed for REPL is that ui/window can not only accept component, but also a reference (e.g. a var) or an atom. I also just pushed commit 9a1f239b85d5913c2f386e8a2ef0d3f4c0760552 that even set ups watcher for you on var/atom. So just reset!/def and window should refresh! Let me know if that works

Ok, so I looked over the code and I've added a ^{:clojure.tools.namespace.repl/load false} into the core function, which should hopefully allow a full reload to occur while still having everything update.
We'll see how it works.
I've been using force-reload as defined:
(ns user
  (:require [clojure.tools.namespace.repl :as ns]
            [io.github.humbleui.app :as app]
            [io.github.humbleui.window :as window]
            [example.state :as state]
            [example.core :refer [make-window]]))

(ns/set-refresh-dirs "src" "dev")

(defn reload [{:keys [hard-refresh? reflection? math?]
               :or {hard-refresh? false reflection? true math? :warn-on-boxed}}]
  (set! *warn-on-reflection* reflection?)
  (set! *unchecked-math* math?)
  (let [ns-refresh-fn
        (if hard-refresh?
          (requiring-resolve 'clojure.tools.namespace.repl/refresh-all)
          (requiring-resolve 'clojure.tools.namespace.repl/refresh))
        res (ns-refresh-fn)]
    (if (instance? Throwable res)
      (throw res)
      res)))

(defn force-reload
  ([] (force-reload {:hard-refresh? false
                     :math? nil}))
  ([opts]
   (do
     (when @state/*window
       (window/close @state/*window))
     (reload opts)
     (app/doui
       (make-window)))))

(comment
  (force-reload))

As re-defining a low level form doesn't always work as that doesn't change anything unless you propagate that change up the entire app tree.

Ok, noticed new behavior on windows as well, using same functionality as defined above, it spawns a new window, the old window goes black and then the entire application exits with:
Process finished with exit code 0

So there's no exception or anything.
Is this due to a gap / difference in the current JWM api's between macos / windows?

I’m not sure. The way I had it setup is that I don’t re-create window on reload, only a var that represents “application” or “ui” in that window. So window stays the same, but it starts rendering new UI

Hmm, from what I could tell I was doing a similar thing, ok, I'll try and investigate this over the weekend!

Just adding my experience here in case it's useful - I tried setting :exit-on-close? false which worked to prevent the REPL from shutting down, but the next time I called ui/start-app! (eval'ing -main) I got this SIGSEGV:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000728cc5c6f65d, pid=3538188, tid=3538403
#
# JRE version: OpenJDK Runtime Environment (22.0+36) (build 22+36)
# Java VM: OpenJDK 64-Bit Server VM (22+36, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# C  [libjwm_x64.so+0x1f65d]  Java_io_github_humbleui_jwm_impl_RefCounted_getRefCount+0xd


[release/1.2 backport] Build runc with selinux support

docker-ce seems to be building runc with selinux support, let us follow
the same pattern here please:
https://github.com/docker/docker-ce/search?p=1&q=RUNC_BUILDTAGS&unscoped_q=RUNC_BUILDTAGS
Signed-off-by: Davanum Srinivas<EMAIL_ADDRESS>(cherry picked from commit 7a252f3ca1f158203574f2c7786a28e6c0368f5e)

In https://github.com/kubernetes/kops we are deploying a mix of binaries from Docker and containerd to get Kubernetes up and running. This allows us add support for distros for which there are no official deb/rpm from Docker.
We had a request from kubernetes-sig-storage to help them test SELinux support but bumped into the following error https://github.com/kubernetes/kops/pull/9334#issuecomment-642601044:
Jun 11 11:58:37 ip-10-4-211-152.eu-central-1.compute.internal dockerd[897]: time="2020-06-11T11:58:37.517424146Z" level=error
msg="Handler for POST /v1.40/containers/77b8d55b2714ea9e170c61ea09ac8bdae9b892ef9048c6eabff02876a8f75d4a
start returned error: OCI runtime create failed: selinux label is specified in config, but selinux is disabled or not supported: unknown"

I hope you don't mind adding this to release branches also. Thanks!

LGTM


More concise syntax for clone_trait_object on trait with associated types

My specific case was like this
use dyn_clone::DynClone;

pub trait IterWrapper: Iterator + DynClone {
    // some funcs
}
impl<T> IterWarpper for T where T: Iterator + DynClone {}

// this statement will case error: the value of the associated type `Item` (from trait `Iterator`) must be specified
// dyn_clone::clone_trait_object!(IterWrapper);

// this statement works
dyn_clone::clone_trait_object!(<T> IterWrapper<Item = T>);

I'm not sure this is the idiomatic way to fix this, but it will be great if the macro can work directly with traits with associated types.

<T> IterWrapper<Item = T> looks like a fine way to express this case.


update deps

fix #32
update deps

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Nuget package

Can someone update the NuGet package? This is missing some features that I'm trying to use even though it's merged into the same version here and NuGet supposedly has. Don't think NuGet has been updated since april.

https://www.nuget.org/packages/ElectronNET.API/0.0.10 & https://www.nuget.org/packages/ElectronNET.CLI/0.0.10 should be out in some minutes.
Sorry for the late response. Hope this fixes some issues :)


[Excel](custom functions) update tutorial to latest correct steps

The shared runtime tutorial is a bit out of date. I updated it to match the steps in Configure your Office Add-in to use a shared JavaScript runtime. This also fixes #2936

Docs Build status updates of commit 0b54217:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/tutorials/share-data-and-events-between-custom-functions-and-the-task-pane-tutorial.md
: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

Docs Build status updates of commit 6a2da79:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/tutorials/share-data-and-events-between-custom-functions-and-the-task-pane-tutorial.md
: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

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

File
Status
Preview URL
Details

:x:Error

Details

[Error-PullRequestMergeConflict] Cannot sync git repo to specified state. Please make sure the pull request is mergeable.

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


Login Screen Freezing

I tried to log in to the Application but the page freezes which makes the user unable to login

Hi @samvid2020,
Thanks for raising the issue.
I'm going to remove the Google sign-in during the development phase, so that all users can work on it without any issues.

Hi @samvid2020,
I've removed the Google Login, now you can access the code.
However, this is only a temporary solution and will be Google login will be re-implemented after we find a solution.


Header should support a single link without collapsing to a menu on mobile

What
The header component should allow for a single navigation link that does not collapse in to a menu on mobile.
Why
This would help support, for example, “sign out” links. At the moment this is not a usable option and the single link collapses into a menu link when it doesn’t have to.
Who needs to know about this
Done when

[ ] Decide whether we agree with this

Some notes from team discussion on this:

The menu button could disappear and the single link could be come up where the mobile navigation menu is
We're not really sure if this is a thing (sign out link is a separate card), hence it's a COULD

Hi there, as a UI Developer doing some accessibility work with HMRC / VOA - we were advised by DAC that the menu would fail accessibility (level 'A' compliancy) as the link lacks context. Here is the full feedback from DAC:

There is a link present on the page that has non-descriptive link text. When it is read back to screen reader users it will be difficult for them to understand its purpose both in and out of context. This is only present in iOS. [By this Im assuming they are referring to all mobile devices]
Code ref(s):
Menu
Screen reader comments:
“There is a link present on the page ‘Menu black down pointing triangle’ that made no
sense to me when browsing both in and out of context.
Tested in VoiceOver for iOS.

Context would involve adding descriptive words to the before / after menu, however since we are only using the single sign out item in the menu, we have introduced a temporary fix to  hide the menu and always show the sign out link:
.js-enabled .govuk-header__menu-button {
display: none;
}
.js-enabled .govuk-header__navigation {
display: block;
}

Thanks for raising this @danlaceyhmrc. It seems that the code you've included is from GOV.UK template. GOV.UK Template is deprecated, and will only receive major bug fixes and security patches so there won't be a fix issued for this.
We would recommend migrating from GOV.UK Template to the Design System. We have published some guidance for this, including steps for migrating over gradually rather than in one go.

A 👍  from us. We've got a single link in the header (though have other nav below) and so the menu is an unnecessary extra click. We'll be disabling manually in the short term.
More details in this comment.

Another user raised this on support 08/01/2024 after receiving this as usability feedback from the Digital Accessibility Centre (DAC).
Here is a copy of the feedback:

On the rest of the pages the menu collapses and has a ‘Sign out’ link inside an unordered list. Users might not find having a menu or the list necessary unless there are more elements inside it, as it can also be long and verbose if it only contains one element.
Current code ref(s): REST OF PAGES:
body > header > div > div.govuk-header_content > nav  <button type="button" class="govuk-headermenu-button govuk-js-header-toggle" aria-controls="navigation" aria-label="Show or hide menu" aria-expanded="true">Menu</button>

 Sign out

Screen reader user comments: “On exploring this page, I found that the navigation region read as menu navigation region. This was a problem because I could not understand why the navigation region read as menu navigation region for. It would be helpful if the menu could be removed from the navigation region and also removed from the navigation region end. I found this issue using JAWS, VoiceOver.”
Screen reader user comments: “Upon attempting to toggle the navigation menu, the state of the menu appears to correctly toggle, yet I was unable to ascertain a change in the document. This caused some surprise, as I was anticipating the menu to show/hide a menu. Upon consulting a Support Officer, it appeared that this behaviour is replicated visually, suggesting that a menu has not yet been added to the template. I would expect the visibility of links to toggle accordingly upon changing the state of the navigation menu. The issue affects TalkBack.”
Examples of additional instances:
Additional instances of this issue may exist on other pages throughout the service; wherever this issue occurs, they too will need to be resolved.
Solution:
On the other pages there is only one element inside the menu and the list the link ‘Sign out’ can be left in the header on its own.
Example:  <button type="button" class="govuk-headermenu-button govuk-js-header-toggle" aria-controls="navigation" aria-label="Show or hide menu" aria-expanded="true">Menu</button>

 Sign out

This issue has a bit of overlap with the current work on navigation. The work on navigation is still in early stages, so it's probably worth fixing this while we consider navigation more thoroughly. However if this seems do build into a larger piece of work, we should probably make this part of the work for navigation.

Another thought, around breaking changes: to avoid this being a breaking change, should we introduce this as specific option for the Header component (as well as something people can set when using the template directly?) rather than have the Header automaticly not render a menu when there's only one navigation item (which may cause unexpected changes for services which currently have only one item in their menu)?

Good questions!
Making it an option makes sense to me.
I'd been assuming that we would just hide the menu button and permanently show the menu that is normally toggled by it.
Effectively it'd make the header fall back to the no-JS experience? So the design should already be fine, although it's probably not ideal any further improvements would likely come from the navigation epic.
Maybe this is a js (and corresponding Nunjucks) config that just disables the changes the JS makes, and some corresponding guidance that says something like 'If you only have 1 link in your menu you can disable collapsing on mobile by…'?


Minor streamwriter changes to allow compression

Streamwriter + compression changes for continued perf testing and k8s deployment

There's this tantalizing comment from one of the Apache Arrow folks that suggests that you can use streams to concurrently write/read here: https://stackoverflow.com/a/69771571 But none of my testing show that to be case so finalizing the buffer with each yield...

There's this tantalizing comment from one of the Apache Arrow folks that suggests that you can use streams to concurrently write/read here: https://stackoverflow.com/a/69771571 But none of my testing show that to be case so finalizing the buffer with each yield...

Yep, I saw this too.


Clean up some debt from the Reflection Restoration work

Remove a couple of trivial helpers that were inserted
to make the job easier.

Make CloneTypeArray() allocate an actual Type[] instead
of returning EEType$$BLAH_BLAH_BLAH$$RuntimeTypeTemporary[].
In theory, it shouldn't matter because of type invariance,
but since we hand this out to api callers, there's
no point in inviting trouble.

Oh... no write access. Back to TFS then...

@AtsushiKan I am not sure why you do not have write access via group membership ... but I made you explicit collaborator with write access, so you should have it now. Let me know if it still does not work... .


db hint

check out the database architecture within pg-promise-demo, it may be easier to use ;)

@vitaly-t I did look at the demo app. And I think my current design mirrors the layout that your propose in the examples. In the last 5 days, I'v evolved from pg to pg-promise to knex back to pg and finally pg-promise. At the same time, learning a great deal about Promises in Javascript, translating into async / await. Things are a bit of a mess. I pushed to github only to see if travis-ci worked.
I appreciate how proactive you are on Stack Overflow and Github. I am persuaded by your argument that promisifying pg does no good at a high level. Though I can't find much documentation about how node-postgres (or pg-promise) handle connection pooling. (I'm used to the very detailed documentation of SQLAlchemy.) For example, if I import and instantiate pgp in different files, is this sharing a pool "under the hood." When is a connection released back to the pool?
A second question is how to handle many-to-many relationship joins. I'm not familiar enough with SQL to know if I can join a subquery for M2M, or if it's preferred to issue a second query (as SQLAlchemy does). In the latter case, I'm not understanding how pg-promise uses transactions. When I wrap two queries in a db.tx and a Promise.all, it's not working as I expected. On the other hand, since I'm only issuing two simple queries, maybe I shouldn't be using a transaction block. In any case, there are very few examples in the docs of how to handle complex relationships. I've got several adjacency joins (or what SQLAlchemy calls polymorphic).
Finally, I'm curious about your decision to bundle QueryFiles with pg-promise. Coming from Python, I'm used to larger libraries. However, node developers seem content to distributed "packages" of ~10 LOC. Considering that pg-monitor is a separate package, why not distribute QueryFiles independent of pg-promise?
And, not that this is your job, but if you have specific suggestions or criticisms, I'm happy to listen.

That's a lot of questions :)
I've tried to document everything, the the project's website. If you are stuck on something - use StackOverflow ;)

Though I can't find much documentation about how node-postgres (or pg-promise) handle connection pooling

Yes, there is little about it within the node-postgres driver, and pg-promise is simply using what's there. Reading the code in node-postgres driver is one good approach. I cannot make any improvements in node-posgres, it is not my project, and the author isn't very receptive, to say the least, I've tried, he banned my account.

I'm not understanding how pg-promise uses transactions.

There are many examples for correct transaction usage, starting with Transactions.

I'm curious about your decision to bundle QueryFiles with pg-promise

QueryFiles was designed specifically as part of the library, it has no value outside of the query.
If there were ongoing issues, it would have some weight, but given that there are 0 bugs known, no point now separating things just for the sake of doing it.
I did separate many things as it is - spex and pg-minify, because they are reusable.

Thanks for the details. I ended up refactoring things to look more like the pg-promises-demo. It just took me awhile to get there.

As for promise.all, and why you can't use it: Why use method batch instead of promise.all?

Also, there a few new things that pg-promise-demo doesn't cover at all. Primarily - namespaces helpers and utils.

I think if connection pooling was better documented, and perhaps better understood, the need for a lower level promise solution -- as you've advocated for -- would be more apparent. Personally, I wish I had to the time to understand all this better.

@lmergner you cab write much better code than here: https://github.com/lmergner/contrivers-cms/blob/master/api/routes.js
by using the methods and types available in the helpers namespace ;)


[BUG] Raspberry Pi OS Bookworm on Pi 5: urllib3 or chardet/charset_normalize doesn't match a supported version

The Issue
Attempting various depthai_sdk/examples results in a fatal warning:
(vdepthai) pi@WaLiPi5:~/wali_pi5/systests/Oak-D-Lite/vdepthai/depthai/depthai_sdk/examples/PointcloudComponent $ python3 pointcloud.py
/home/pi/wali_pi5/systests/Oak-D-Lite/vdepthai/lib/python3.11/site-packages/requests/__init__.py:102: RequestsDependencyWarning: urllib3 (1.26.12) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "
Closing OAK camera
Traceback (most recent call last):
  File "/home/pi/wali_pi5/systests/Oak-D-Lite/vdepthai/depthai/depthai_sdk/examples/PointcloudComponent/pointcloud.py", line 4, in <module>
    color = oak.camera('color')
            ^^^^^^^^^^
AttributeError: 'OakCamera' object has no attribute 'camera'

Installed versions are:
dpkg -l | grep urllib
ii  python3-urllib3                      1.26.12-1                           all          HTTP library with thread-safe connection pooling for Python3

dpkg -l | grep chardet
ii  libuchardet0:arm64                   0.0.7-1                             arm64        universal charset detection library - shared library
ii  python3-chardet                      5.1.0+dfsg-2                        all          Universal Character Encoding Detector (Python3)

dpkg -l | grep normalizer
ii  python3-charset-normalizer           3.0.1-2                             all          charset, encoding and language detection (Python 3)

----------------
log_system_information.py output:

python3 log_system_information.py
{
    "architecture": "64bit ELF",
    "machine": "aarch64",
    "platform": "Linux-6.1.0-rpi7-rpi-2712-aarch64-with-glibc2.36",
    "processor": "",
    "python_build": "main Mar 13 2023 12:18:29",
    "python_compiler": "GCC 12.2.0",
    "python_implementation": "CPython",
    "python_version": "3.11.2",
    "release": "6.1.0-rpi7-rpi-2712",
    "system": "Linux",
    "version": "#1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24)",
    "win32_ver": "",
    "packages": [
        "blobconverter==1.4.2",
        "boto3==1.34.20",
        "botocore==1.34.20",
        "charset-normalizer==2.0.12",
        "depthai==<IP_ADDRESS>",
        "depthai-sdk==1.9.4",
        "distinctipy==1.3.4",
        "ffmpy3==0.2.4",
        "jmespath==1.0.1",
        "lz4==4.3.3",
        "marshmallow==3.17.0",
        "mcap==1.1.1",
        "mcap-ros1-support==0.0.8",
        "numpy==1.26.3",
        "opencv-contrib-python==<IP_ADDRESS>",
        "pip==23.3.2",
        "python-dateutil==2.8.2",
        "pytube==15.0.0",
        "PyTurboJPEG==1.6.4",
        "pyusb==1.2.1",
        "PyYAML==6.0.1",
        "Qt.py==1.3.8",
        "requests==2.26.0",
        "rosbags==0.9.11",
        "ruamel.yaml==0.18.5",
        "ruamel.yaml.clib==0.2.8",
        "s3transfer==0.10.0",
        "scipy==1.11.4",
        "sentry-sdk==1.5.1",
        "setuptools==66.1.1",
        "types-pyside2==<IP_ADDRESS>.6",
        "xmltodict==0.13.0",
        "zstandard==0.22.0"
    ],
    "usb": [
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "Super"
        },
        {
            "port": 2,
            "vendor_id": "0x4c4a",
            "product_id": "0x4155",
            "speed": "Full"
        },
        {
            "port": 1,
            "vendor_id": "0x03e7",
            "product_id": "0x2485",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0003",
            "speed": "Super"
        },
        {
            "port": 2,
            "vendor_id": "0x046d",
            "product_id": "0xc21f",
            "speed": "Full"
        },
        {
            "port": 0,
            "vendor_id": "0x1d6b",
            "product_id": "0x0002",
            "speed": "High"
        }
    ],
    "uname": [
        "Linux WaLiPi5 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64"
    ]
}

Minimal Reproducible Example
(vdepthai) pi@WaLiPi5:~/wali_pi5/systests/Oak-D-Lite/vdepthai/depthai/depthai_sdk/examples/PointcloudComponent $ more mre.py
from depthai_sdk import OakCamera
with OakCamera() as oak:
color = oak.camera('color')
(vdepthai) pi@WaLiPi5:~/wali_pi5/systests/Oak-D-Lite/vdepthai/depthai/depthai_sdk/examples/PointcloudComponent $ python3 mre.py
/home/pi/wali_pi5/systests/Oak-D-Lite/vdepthai/lib/python3.11/site-packages/requests/init.py:102: RequestsDependencyWarning: urllib3 (1.26.12) or chardet (5.1.0)/charset_normalizer (2.0.12) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({})/charset_normalizer ({}) doesn't match a supported "
Closing OAK camera
Traceback (most recent call last):
File "/home/pi/wali_pi5/systests/Oak-D-Lite/vdepthai/depthai/depthai_sdk/examples/PointcloudComponent/mre.py", line 4, in
color = oak.camera('color')
^^^^^^^^^^
AttributeError: 'OakCamera' object has no attribute 'camera'
Expected behavior
execute with no warning/error
Attach system log

Provide output of log_system_information.py

Additional context
(Do not see the warning on Ubuntu 22.04 but same OakCamera object has no attribute 'camera' error does occur - separate issue it appears.)

Hi @slowrunner
I think the syntax was oak.create_camera() which was changed to oak.camera() in 1.12 (not sure). So, to fix this, update the SDK to a newer version.


Stop producing macOS 10.14 packages

We support N-2 macOS releases which is 12, 11, and 10.15 now.
Signed-off-by: Tim Smith<EMAIL_ADDRESS>

hold off on merging this one until we try to build it first

yep, i'm deliberately letting you merge it when ready.


Include HPC diagnostics on AlmaLinux HPC 8.6

Please can you add the script to the image as in Ubuntu 20.04 hpc image? thanks!

@NachoMtnz  The latest marketplace image with the URN almalinux:almalinux-hpc:8_6-hpc-gen2:8.6.2023041401 should have diagnostics installed at /opt/azurehpc/diagnostics/gather_azhpc_vm_diagnostics.sh


Fix uncaught HTTP exception

should always enqueue the callback block

Not sure I understand why this change is needed, @tcard over to you

@mattheworiordan I fixed it because it was raising an exception when a request was returning 500 (see here). It was calling the callback (here) without enqueuing the block on the current loop.
BTW, the sandbox seems to be unstable.

BTW, the sandbox seems to be unstable.

Yes, we are oddly getting an unstable sandbox quite frequently.  I will ask Paddy to fix it now, sorry

And with this bug (all night on this one 😅) I found out that the [xcpretty](https://github.com/supermarin/xcpretty) ignores abnormal failures, consequently the log hangs and Travis kills the process. I reproduce it successfully: https://github.com/ricardopereira/CrashTestSuiteExample.

And with this bug (all night on this one 😅) I found out that the xcpretty ignores abnormal failures,

Well done finding that one!

LGTM


Option for not updating header after resolving GIT merge conflict

Hi, after I merge or cherry-pick, I sometimes have conflicts and after resolving them, "modified by" headers also get updated, but I do not want that.
Is it possible to add an option for disabling headers update when branch is in such "merging" states (for example when I'm resolving cherry pick conflicts, branch name is "|CHERRY-PICKING")
Or does something like that already exists?
Thanks!

Hi,
I am sorry but there is nothing currently in the extension that would allow that. Unfortunately VSC only tells us that the file is being saved, but not why - so I have no idea if the save is as a result of a merge.
Happy for someone to propose a pull request to the extension if they can figure a way to implement this, but I don't think it is achievable.
Regards
David

Hi
after file is saved, it can be checked if git repository is in merge state by firing shell command https://stackoverflow.com/questions/30733415/how-to-determine-if-git-merge-is-in-process.

Hi,
That will not work as the header is updated during the save, so by the time we get here the "modified by" is already updated.
A mute point (as during save is the only opportunity that VSC exposes for the extension to track changes) but if it worked after the file was saved it would put the extension into an endless loop as each save would then cause a re-triggering of the extension.
The solution in your link only tells you if a merge is happening not whether the file being saved is part of that merge. I kind of agree with one of the commenters on the selected answer too that this method is a rather smelly hack.
Also, firing this off as a shell command is likely to cause VSC to disable the extension. VSC only allows a brief time (a matter of milliseconds) for an extension to perform an action. If it takes longer it is disabled, and shell execution can take a while to complete.
Also, as I mentioned before, this relies on git being installed.
I think the only way to do this would be to tap into VSCs support for version control systems but I am not sure if that will give you what you want. I am happy for you to propose a solution via a pull request, but it will have to (a) be cross-platform; (b) cope with all version control systems supported by VSC; (c) able to be disabled via configuration; and (d) not adversely affect performance of the extension.
Regards
David

Hi
Thanks for taking the time to explain. Unfortunately, I don't have experiences building VSC extensions so I won't tackle the problem. Workaround for me is then using other tool for handling merge conflicts.
Cheers,
J


feat(CompiledRouter): Add an intermediate AST step to the compiler

Rather than compiling the routing tree directly to Python code, first generate an AST and then use it to produce the code. This provides several benefits, including:

It makes the compilation process easier to reason about.
It makes it easier to keep track of indentation and whitespace.
It sets us up for being able to make transformations that we will need to do to support URI template filters, etc. in the future.

Note: I checked the generated code against what was output previously to ensure they matched. Also, all the tests pass, but we will probably want to have an extended beta/rc cycle for the next release to ensure no bugs slip through.


add mediapad

so should i do that and do another pull request? i was thinking of making the middle transparent so that you can see the board inside, how would i do that but keep the top edge white, if that's even possible? also can i change my pcb colour to purple if possible? tysm!!


fix: fixing stuff

:tada: This PR is included in version 0.13.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Quick question

The give kits plug in says it works but it shoots errors when u type them ingame. Is there a fix? Everything is upto date

Thats a plugin, this is the rocket bug tracker.


Dictionary.erase() not working : could be a parse_json() bug

Related topic : http://www.godotengine.org/forum/viewtopic.php?f=11&p=11433
Problem :
Erasing key from a dictionary extracted from a JSON file seems not to be working.
How to reproduce :
Create a new empty project, add a "Control node" and attach a new script to it then past the following script :

extends Control

func _ready():
	var strJSON = '{"last edited":"0", "script":{"1%3a%20Demo-tan":{"1%3a%20Virtual%20Realm":{"3":{}, "4":{}, "5":{}, "0":{"0":"This%20is%20an%20example%20text"}, "1":{"0":"demotan-helpful"}, "2":{}}, "2%3a%20Thinking%20Room":{"3":{"0":"Yes%2c%20this%20feature%20looks%20sufficient."}, "4":{"0":"Where%27s%20the%20action%3f%21"}, "5":{"0":"Choices%20are%20handled%20in%20game%20code."}, "0":{"0":"Am%20I%20supposed%20to%20show%20you%20the%20question%20example%20here%3f"}, "1":{"1":"demotan-confused"}, "2":{"0":"I%20think%20so...%3f"}}}, '
	strJSON += '"2%3a%20Demo-kun":{"2%3a%20Earth%20%28dining%20hall%29":{"3":{}, "4":{}, "5":{}, "0":{"0":"For%20now%20portraits%20have%20to%20be%20added%20manually"}, "1":{"1":"demokun-relieved"}, "2":{}}, "1%3a%20Virtual%20Realm%20%28closet%29":{"3":{}, "4":{}, "5":{}, "0":{"0":"Questions%20are%20rather%20strained%20for", "1":"If%20the%20answers%20are%20left%20blank."}, "1":{"0":"demokun-helpful"}, "2":{}}}}, "portraits":{"3":"demotan-warning", "0":"demotan-helpful", "1":"demotan-confused", "2":"demokun-helpful"}}'
	var dictio = {}
	dictio.parse_json(strJSON.percent_decode())

	printt("SSIZE", dictio.size())
	for i in dictio["script"].keys():
		print(i)
	print("\n")

	print(dictio["script"])
	print("\n")

	print("DEBUT1")
	print(dictio["script"]["2: Demo-kun"])
	print("\n")

	dictio["script"].erase("2: Demo-kun")

	print("DEBUT2")
	print(dictio["script"]["2: Demo-kun"])
	print("\n")

	dictio["script"].erase("2: Demo-kun")
	dictio["script"].erase("2: Demo-kun")

	print("DEBUT3")
	print(dictio["script"]["2: Demo-kun"])
	print("\n")

	pass

Output:
SSIZE	3
2: Demo-kun
1: Demo-tan

(1: Demo-tan:(1: Virtual Realm:(0:(0:This is an example text)), (1:(0:demotan-helpful)), (2:), (3:), (4:), (5:)), (2: Thinking Room:(0:(0:Am I supposed to show you the question example here?)), (1:(1:demotan-confused)), (2:(0:I think so...?)), (3:(0:Yes, this feature looks sufficient.)), (4:(0:Where's the action?!)), (5:(0:Choices are handled in game code.)))), (2: Demo-kun:(1: Virtual Realm (closet):(0:(0:Questions are rather strained for), (1:If the answers are left blank.)), (1:(0:demokun-helpful)), (2:), (3:), (4:), (5:)), (2: Earth (dining hall):(0:(0:For now portraits have to be added manually)), (1:(1:demokun-relieved)), (2:), (3:), (4:), (5:)))

DEBUT1
(1: Virtual Realm (closet):(0:(0:Questions are rather strained for), (1:If the answers are left blank.)), (1:(0:demokun-helpful)), (2:), (3:), (4:), (5:)), (2: Earth (dining hall):(0:(0:For now portraits have to be added manually)), (1:(1:demokun-relieved)), (2:), (3:), (4:), (5:))

DEBUT2
(1: Virtual Realm (closet):(0:(0:Questions are rather strained for), (1:If the answers are left blank.)), (1:(0:demokun-helpful)), (2:), (3:), (4:), (5:)), (2: Earth (dining hall):(0:(0:For now portraits have to be added manually)), (1:(1:demokun-relieved)), (2:), (3:), (4:), (5:))

DEBUT3
(1: Virtual Realm (closet):(0:(0:Questions are rather strained for), (1:If the answers are left blank.)), (1:(0:demokun-helpful)), (2:), (3:), (4:), (5:)), (2: Earth (dining hall):(0:(0:For now portraits have to be added manually)), (1:(1:demokun-relieved)), (2:), (3:), (4:), (5:))

As you can see, erasing seems not to be working, even by trying to erase() twice as stated in the forum topic.
Here is the corresponding JSON script with indentation:
{
	"last edited":"0",

	"script":{
		"1%3a%20Demo-tan":{
			"1%3a%20Virtual%20Realm":{
				"3":{},
				"4":{},
				"5":{},
				"0":{"0":"This%20is%20an%20example%20text.%20%0aThe%20bottom%20displays%20the%20example%20%0aas%20it%20should%20look%20at%202x%20zoom."},
				"1":{"0":"demotan-helpful"},
				"2":{}
			},
			"2%3a%20Thinking%20Room":{
				"3":{"0":"Yes%2c%20this%20feature%20looks%20sufficient."},
				"4":{"0":"Where%27s%20the%20action%3f%21"},
				"5":{"0":"Choices%20are%20handled%20in%20game%20code."},
				"0":{"0":"Am%20I%20supposed%20to%20show%20you%20the%20question%20example%20here%3f"},
				"1":{"1":"demotan-confused"},
				"2":{"0":"I%20think%20so...%3f"}
			}
		},
		"2%3a%20Demo-kun":{
			"2%3a%20Earth%20%28dining%20hall%29":{
				"3":{},
				"4":{},
				"5":{},
				"0":{"0":"For%20now%20portraits%20have%20to%20be%20added%20manually%20as%20nodes%20before%20compilation%21%0aLoading%20and%20saving%20portraits%20is%20not%20yet%20supported%2c%20but%20there%20are%20plans%20to%20change%20this."},
				"1":{"1":"demokun-relieved"},
				"2":{}
			},
			"1%3a%20Virtual%20Realm%20%28closet%29":{
				"3":{},
				"4":{},
				"5":{},
				"0":{"0":"Questions%20are%20rather%20strained%20for%20size%2c%20so%20it%20is%20best%20to%20be%20succinct%20and%20use%20the%20preview%20to%20gauge%20how%20long%20the%20message%20is.", "1":"If%20the%20answers%20are%20left%20blank%20it%20will%20stay%20in%20message%20mode%2c%20but%20for%20any%20that%20are%20filled%2c%20it%20will%20go%20into%20question%20mode.%20It%20will%20only%20display%20the%20answers%20you%20have%20filled%20out."},
				"1":{"0":"demokun-helpful"},
				"2":{}
			}
		}
	},

	"portraits":{
		"3":"demotan-warning",
		"0":"demotan-helpful",
		"1":"demotan-confused",
		"2":"demokun-helpful"
	}
}

Another excellent example from Hammer Bro. on the forum that demonstrates that the parse_json method could be in cause.
func _ready():
	# Create a dictionary parsed from JSON values.
	var json_dictionary = {}
	json_dictionary.parse_json('{"outer_key" : {"inner_key" : "value"}}')
	# Create the same dictionary manually.
	var dictionary = {"outer_key" : {"inner_key" : "value"}}
	# Demonstrate that they appear the same.
	printt("json_dictionary", json_dictionary)
	printt("dictionary\t\t", dictionary)
	print("")
	# Try to change the value of outer_key to nothing by erasing its inner_key.
	json_dictionary["outer_key"].erase("inner_key")
	dictionary["outer_key"].erase("inner_key")
	printt("json_dictionary", json_dictionary)
	printt("dictionary\t\t", dictionary)
	print("")
	# Notice the discrepancy: dictionary behaves as expected, json_dictionary does not.

Workaround proposed by Hammer Bro again :
const DICTIONARY_TYPE = typeof({})

# Recreate the structure of a dictionary, maintaining references to all leaf-level values.
func copy_dictionary(dictionary):
   var output = {}
   for key in dictionary.keys():
      var value = dictionary[key]
      if typeof(value) == DICTIONARY_TYPE:
         output[key] = copy_dictionary(value)
      else:
         output[key] = value
   return output

So that in previous code, one need to call :
    json_dictionary.parse_json('{"outer_key" : {"inner_key" : "value"}}')
    json_dictionary = copy_dictionary(json_dictionary)

Basically, this workaround copies the content of the dictionary obtained by parse_json() into a new dictionary structure.

:+1:

Nice work, I'll be sure to test this during February using the 2.0 beta you just released.


Why "Classes"?

In this template:
https://github.com/iamtabrezkhan/awesome-react-generator/blob/3c06c30d3f292ac7eec0efb11be7f5e090e9ae80/lib/classes/component.js#L28
The css module is imported with the name Classes In the CSS modules docs they use the word styles. Why was the name Classes chosen?
To keep consistent with more people's code, I propose we change it to styles as a default and add an option to change the name.

Hi @ecumene,
I chose the name Classes because I personally use this. But yes, what you are proposing makes much more sense. We can change from Classes to styles.
Feel free to make a PR for the same.
// cc @shadab14meb346

I can do the PR for it. By default it will be styles but what do you guys suggest the option should be to change the name like an example--moduleName Classes or something else.


Since two weeks my app in shown upside down

Any hints where I should have a look. I haven't read about any changes in areas which would explain this.
My app in a landscape only app. Playing with the values in
mode.operationMode = WOCOperationModeTablet;
mode.presentationTransform= UIInterfaceOrientationLandscapeRight;

does not change anything.
Thanks for any idea
Markus

Possibly related to the change in ~ipad bundle loading.
Does the Info.plist of your target contain something like:
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationLandscapeRight</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
    </array>

(my app is set up as portrait on iphone and landscape on iPad)
Try changing it too:
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
       <string>UIInterfaceOrientationPortrait</string>
   </array>

I also have a landscape only tablet app. I've found that the Winobjc handling of UIInterfaceOrientationLandscapeRight (to just apply a rotation transform), does not work properly (resulting in improperly rotated app).
However, UIInterfaceOrientationPortrait has worked since the beginning (with my landscape app).
So possibly, with the change in bundle loading, winobjc is now picking up the ~ipad specific interface orientation from your plist and applying the rotation transform which causes problems.
However, I would expect that if the issue is due to ~ipad resource loading, removing the
mode.operationMode = WOCOperationModeTablet;
should resolve the issue - so perhaps there's something else going on.
fyi, this is my setup for a landscape only tablet app that seems to be working fairly well:
    mode.fixedWidth = 1024.0f;
    mode.fixedHeight = 768.0f;
    mode.fixedAspectRatio = 0.0f;
    mode.magnification = 1.0f;
    mode.autoMagnification = YES;
    mode.operationMode = WOCOperationModeTablet;

(with the UISupportedInterfaceOrientations set in the plist as UIInterfaceOrientationPortrait)

@mgoemmel, did you have the chance to try the suggestion from ehren?
Thanks.

I've tried it, but it doesn't work. It seems that there is a problem in the framework. But I didn't find time so far to investigate into it. The last git pull version did not even run my app, so I have to look into this new problem first. I will check it during the next 2-3 days and will add my result here.
Thanks for your interest!
Markus

Well, after checking again, it works when I set
mode.presentationTransform= UIInterfaceOrientationLandscapeLeft;
So all is well here. You can close this thread.
Thanks
Markus

Cool. Thank you for trying this and sending an update, closing now.


allow loading jinja templates from filesystem

This PR allows for referencing jinja templates by filesystem.
This mechanism also allows for template inheritance.
Existing embedded templates are unaffected.
Readme/Contributing mentions writing tests, though there are no existing tests relating to jinja.
To use, in rule yaml:
alert_text_type: "alert_text_jinja"
jinja_template_path: "path/to/template"

Thanks for the contribution!


freebsd/sys/PANDABOARD: No such file or directory *** [buildkernel] Error code 2

Freebsd is branch master from freebsd github repo
My pandaboard.sh file
#
# SAMPLE CONFIGURATION
#
# Copy this to another file and use that when running Crochet, e.g.
#  $ sudo /bin/sh crochet.sh -c <myconfig>
#

# Note: Only board_setup is actually required, assuming /usr/src has
# suitable FreeBSD sources.  Everything else below is optional.

# REQUIRED:
# Uncomment one to choose the default configuration for your board.

#
# Don't see your board here?  board/NewBoardExample has details for
# how to add a new board definition.  If you need help, ask.  If you
# get it working, please consider contributing it.
#
# Read board/<board-name>/README for more details
# about configuring for your particular board.
#
#board_setup Alix
#board_setup BananaPi
#board_setup BeagleBone
#board_setup Cubieboard2
#board_setup Chromebook
#board_setup GenericI386
board_setup PandaBoard
#board_setup RadxaRock
#board_setup RadxaRockLite
#board_setup Soekris
#board_setup RaspberryPi
#board_setup RaspberryPi2
#board_setup VersatilePB
#board_setup ZedBoard
#board_setup Wandboard
#

# Size of the disk image that will be built.  This is usually the same
# size as your memory card or disk drive, but it can be smaller.
# Each board setup above defines a default value, but the default is
# deliberately chosen to be just barely big enough to hold a minimal
# FreeBSD system.
#
# 'mb' = 10 ^ 6,  'gb' = 10 ^ 9, 'mib' = 2 ^ 20 and 'gib' = 2 ^ 30
#
# From 2%-10% of the flash on a typical memory card is
# reserved for the hardware controller, so the filesystem
# image size needs to be a bit smaller than the card size:
#
# Suggested: option ImageSize
#option ImageSize 100mb # for kernel-only images
#option ImageSize 1950mb # for 2 Gigabyte card
#option ImageSize 3900mb # for 4 Gigabyte card

#
# How to Customize Your Build
#
# Crochet supports a variety of customization approaches:
#
# 1) "options" provide canned functionality.  If there is not
#   an option that provides what you want, consider contributing
#   a new one.  There's a template in option/Sample that explains
#   how to write a new one.  Note that board definitions can include
#   their own options; a few of the options below are only defined
#   for certain boards.
# 2) There are a large number of shell variables that control
#   how various internal features work.  A very few are described
#   below; you can find many more by skimming the source code.
#   (Variables beginning with '_' should not be touched.)
# 3) "overlay" files are simply copied to the image as-is.  Crochet
#   looks in a couple of standard places; you can just add the file
#   you want and it will get copied for you.
# 4) Functions beginning with "customize_" are provide for user
#   customization.  The default definitions are empty; feel free to
#   override them.  There are examples at the end of this file.
# 5) Crochet internally uses a "strategy list" of shell functions that
#   will be run.  The board definitions and options all add items to
#   the strategy list; you can also define your own functions and
#   add them directly to the strategy list using strategy_add.
#   Read the comments in lib/base.sh for details of how this works.
#
# If none of the above mechanisms support your requirements, ask
# and we'll see if we can add something else.
#

# "Growfs" adds a startup item that will use "growfs" to grow the
# UFS partition as large as it can.  This can be used to construct
# small (e.g., 1GB) images that can be copied onto larger (e.g., 32GB)
# media.  At boot, such images will automatically resize to fully
# utilize the larger media.  This should be considered experimental:
# FreeBSD's resize logic sometimes doesn't take effect until after a
# couple of extra reboots, which can make this occasionally perplexing
# to use.
#
#option Growfs

# Enable emailed status notifications.
# This can also be enabled via the -e command-line flag.
#
#option Email<EMAIL_ADDRESS>
# Compress the final image.
# Takes an optional argument of xz or gzip. Defaults to xz.
#
#option CompressImage <xz|gzip>

# Same as 'CompressImage gzip'
#option GzipImage

# Create a user account with the specified username.
# Password will be the same as the user name.
#
#option User <username>

# Takes a size argument (e.g., "768mb") and adds a swap file
# to the UFS partition of the indicated size.  This also adds
# the appropriate rc.conf and fstab entries to use the swap file.
# The size argument is required.  There are two optional arguments:
#   deferred - swap file will be created on first boot; this
#          works well in conjunction with Growfs above
#   file=/swapfile0 - Set the filename of the swap file.  The default
#          name is /swapfile0.
#
#option SwapFile <size> [deferred] [file=/swapfile0]

# Uses "portsnap" to download an up-to-date ports tree and
# install it on the image.
#
#option UsrPorts

# Copy the existing /usr/ports tree on the build system
# from <path> into the image.  The copy logic does not
# copy distfiles, work directories, or SVN checkout
# information.
#
#option UsrPorts <path>

# Copies the src tree that was used to build this image to /usr/src
# on the image.
#
#option UsrSrc

# Partition the system in a way similar to NanoBSD.
# The arguments and default values are:
#
#    + The device that the system will use to mount it's disks.
#      Default: /dev/mmcsd0
#    + The size of the OS partition(s).  Default: 1g
#    + The number of OS partitions.  Can be 1 or 2.  Default: 2
#    + The size of the /cfg partition.  Default: 32m
#
# This option will also install nanobsd specific tools into /root/bin/
#
#option NanoBSD '/dev/sd0' 1g
#option NanoBSD /dev/mmcsd0 1g 2 16m

# Enable NTP daemon
#option Ntpd

# Each board picks a default KERNCONF but you can override it.
#
#KERNCONF=MYCONF

# FreeBSD source that will be used for kernel, world, and ubldr.
# This directory doesn't need to exist yet.  When you run the script,
# it will tell you how to get appropriate sources into this directory.
# (I find FREEBSD_SRC=${TOPDIR}/src to be useful.)
#
FREEBSD_SRC=../freebsd/

# You will probably never override this, but you may need to
# understand it: WORKDIR holds all of the created and temporary files
# (in particular, the FreeBSD "obj" is redirected here).  It also
# holds a lot of log files: If something goes wrong, there's probably
# a record here.
#
# After successful world or kernel builds, a marker is put in this
# directory; subsequent runs of this script check for the marker and
# avoid rebuilding.  This makes it easy to tinker with the image
# layout and build without having to wait on all of FreeBSD to build
# every single time.
#
# In particular: If you need to do a clean build of everything from
# scratch, remove the contents of $WORKDIR first.
#
#WORKDIR=${TOPDIR}/work

# The name of the final disk image.
# This file will be as large as IMAGE_SIZE above, so make
# sure it's located somewhere with enough space.
#
#IMG=${WORKDIR}/FreeBSD-${KERNCONF}.img

# Unset this to suppress installworld.  This is
# useful when experimenting with boot and kernel
# startup, since it greatly speeds up the image
# generation.  Set IMAGE_SIZE to 50 * MB or even smaller
# to really shorten your build/test cycles.
#
#FREEBSD_INSTALL_WORLD=y

# Extra arguments for FreeBSD build stages.
#
# Each board definition specifies certain options for the world and
# kernel builds.  Note that these are recorded in ${WORKDIR} when
# Crochet runs a build; subsequent Crochet runs will skip the
# corresponding build if the options are unchanged.
#
# You can add your own options to any single build phase:
#
#FREEBSD_BUILDWORLD_EXTRA_ARGS=""
FREEBSD_INSTALLWORLD_EXTRA_ARGS="-DNO_ROOT "
FREEBSD_BUILDKERNEL_EXTRA_ARGS="-DNO_ROOT "
FREEBSD_INSTALLKERNEL_EXTRA_ARGS="-DNO_ROOT "

# You can specify options for both buildworld and installworld:
#
#FREEBSD_WORLD_EXTRA_ARGS=""

# You can specify options for both buildkernel and installkernel.
#
#FREEBSD_KERNEL_EXTRA_ARGS=""

# You can specify options used for all four of the above:
#
#FREEBSD_EXTRA_ARGS=""

# Build jobs.  The number of make jobs to run in parallel.
# Defaults to: $(sysctl -n hw.ncpu)
#WORLDJOBS="4"
#KERNJOBS="4"

# You can specify a custom src.conf or make.conf; the defaults are:
#
#SRCCONF="/dev/null"
#__MAKE_CONF="/dev/null"

# For example, I find each of the following quite useful at times:
#
FREEBSD_EXTRA_ARGS="-DNO_CLEAN"
FREEBSD_KERNEL_EXTRA_ARGS="-DKERNFAST"

# OVERLAY FILES
#
# Most customization simply consists of putting extra
# files onto the image.
#
# After the board logic has populated the FreeBSD system, the contents
# of ${BOARDDIR}/overlay, ${TOPDIR}/overlay, and ${WORKDIR}/overlay
# are copied on top of the image in that order.  For example, you can
# put a custom passwd or fstab file into ${TOPDIR}/overlay/etc and it
# will be picked up automatically.  Similarly, if you need to
# dynamically create a certain file, you can do that here (config.sh
# is a /bin/sh file and you can use arbitrary shell logic) and put the
# result into ${WORKDIR}/overlay

# STANDARD customize_ FUNCTIONS
#
# There are a few standard functions beginning with customize_
# that are specifically provided for you to override.  These
# are never defined by Crochet.
#
# Most board definitions work with two partitions (for some boards,
# these are in different image files):
#  * A boot partition holds the various boot loaders.  This varies
#    significantly by board.
#  * A FreeBSD partition holds the FreeBSD world (and usually kernel).
#    Board definitions should keep this as standard as possible.
#
# The following functions are run after the default board setup has
# run, so you can feel free to delete or rearrange files on the image
# as you see fit.
#
# WARNING: Unlike some other system-building scripts, these do *not*
# run in a chroot or jail.  (It can't because we're cross-building.)
# For example, if you want to add an account, be sure to modify
# etc/passwd and not /etc/passwd!
#
# Some useful shell variables:
#   ${WORKDIR} is the full path to the 'work' directory
#       which you can use for intermediate files
#   ${TOPDIR} is the current directory in which crochet is located
#
# The lib/*.sh files also define a number of functions
# that you may find useful here.
#
# # Runs after boot partition is built.
# # The current working directory is at the root of the mounted
# # boot partition.
#customize_boot_partition ( ) {
#}
#
# Note that the following runs even if FREEBSD_INSTALL_KERNEL
# and FREEBSD_INSTALL_WORLD are not enabled.
#
# # Runs after FreeBSD partition is built and populated.
# # The current working directory is at the root of the mounted
# # freebsd partition.
#customize_freebsd_partition ( ) {
#}

# For example, here's one way to add an entry to the default /etc/fstab:
#
#customize_freebsd_partition ( ) {
#  echo "md /tmp mfs rw,noatime,-s30m 0 0" >> etc/fstab
#}

# If you can't do what you want with the above, try this:
# customize_post_unmount is called after the image is fully created
# and unmounted.  $1 is the filename of the constructed image file.
# You can remount, resize partitions, change partition options, etc.
# If you do anything interesting with this, please let me know.
# I've used it for things like compressing the image file
# and for creating distribution bundles that have a disk image
# and other associated files.

# Adding Strategy Items
#
# Internally, Crochet's configuration works by constructing
# several lists of shell functions to run.  These lists
# comprise Crochet's "strategy".  Once the configuration is
# complete, these lists are sorted and the shell functions
# in them are run to actually carry out the image creation.
#
# You can add new items to the strategy from directly within
# your config.sh file.  This allows you to alter almost
# any part of Crochet's internal operation.  However, be aware
# that the strategy mechanism may change in future versions
# of Crochet, so you should generally only use this for
# things that are difficult or impossible to do in any other
# way.  Please let the Crochet maintainers know about this;
# they are always looking for more information about how
# Crochet is being used.
#

Crochet message:
./crochet.sh -c pandaboard.sh
Starting at Sat Jun 4 19:14:24 CEST 2016
Loading configuration from pandaboard.sh
Board: PandaBoard
Source version is: 8cfacdd
Building FreeBSD version: 11.0
Image name is:
    /usr/home/localuser/PROJECT/crochet/work/FreeBSD-armv6-11.0-PANDABOARD-8cfacdd.img
Building FreeBSD version: 11.0
Object files are at: /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6../freebsd/
Found suitable FreeBSD source tree in:
    ../freebsd/
Found FreeBSD xdev tools for armv6
Found U-Boot sources in:
    /usr/home/localuser/PROJECT/crochet/u-boot-2012.07
Using FreeBSD armv6 world from previous build
Building FreeBSD armv6-PANDABOARD kernel at Sat Jun 4 19:14:27 CEST 2016
    (Logging to /usr/home/localuser/PROJECT/crochet/work/_.buildkernel.armv6-PANDABOARD.log)
Failed to build FreeBSD armv6-PANDABOARD kernel.
Log in /usr/home/localuser/PROJECT/crochet/work/_.buildkernel.armv6-PANDABOARD.log

bmake[1]: stopped in /usr/home/localuser/PROJECT/freebsd
1 error

bmake[1]: stopped in /usr/home/localuser/PROJECT/freebsd
*** [buildkernel] Error code 2

make: stopped in /usr/home/localuser/PROJECT/freebsd
1 error

make: stopped in /usr/home/localuser/PROJECT/freebsd

logfile /usr/home/localuser/PROJECT/crochet/work/_.buildkernel.armv6-PANDABOARD.log
--- buildkernel ---
--- buildkernel ---
--------------------------------------------------------------
>>> Kernel build for PANDABOARD started on Sat Jun  4 19:14:27 CEST 2016
--------------------------------------------------------------
===> PANDABOARD
mkdir -p /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/sys
--------------------------------------------------------------
>>> stage 2.3: build tools
--------------------------------------------------------------
cd /usr/home/localuser/PROJECT/freebsd; TOOLS_PREFIX=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp MAKEOBJDIRPREFIX=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp  INSTALL="sh /usr/home/localuser/PROJECT/freebsd/tools/install.sh"  PATH=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/sbin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/bin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin  WORLDTMP=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp /usr/home/localuser/PROJECT/crochet/work/obj/usr/home/localuser/PROJECT/freebsd/make.i386/bmake  -f Makefile.inc1  DESTDIR=  BOOTSTRAPPING=1001000  SSP_CFLAGS=  MK_HTML=no -DNO_LINT MK_MAN=no  -DNO_PIC MK_PROFILE=no -DNO_SHARED  -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no kernel-tools
--- kernel-tools ---
mkdir -p /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/usr
mtree -deU -f /usr/home/localuser/PROJECT/freebsd/etc/mtree/BSD.usr.dist  -p /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/usr >/dev/null
--------------------------------------------------------------
>>> stage 3.1: building everything
--------------------------------------------------------------
cd /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/sys/PANDABOARD; MAKEOBJDIRPREFIX=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6  MACHINE_ARCH=armv6  MACHINE=arm  CPUTYPE= GROFF_BIN_PATH=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/bin  GROFF_FONT_PATH=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PATH=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/share/tmac CC="cc " CXX="c++  "  CPP="cpp "  AS="as" AR="ar" LD="ld" NM=nm  OBJDUMP=objdump OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size"  INSTALL="sh /usr/home/localuser/PROJECT/freebsd/tools/install.sh"  PATH=/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/sbin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/usr/bin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/legacy/bin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/usr/sbin:/usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/tmp/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin /usr/home/localuser/PROJECT/crochet/work/obj/usr/home/localuser/PROJECT/freebsd/make.i386/bmake  -D NO_CLEAN -D KERNFAST -D NO_ROOT -j 2 -J 15,16 -m /usr/home/localuser/PROJECT/freebsd/share/mk  KERNEL=kernel all -DNO_MODULES_OBJ
cd: /usr/home/localuser/PROJECT/crochet/work/obj/arm.armv6/usr/home/localuser/PROJECT/freebsd/sys/PANDABOARD: No such file or directory
*** [buildkernel] Error code 2

bmake[1]: stopped in /usr/home/localuser/PROJECT/freebsd
1 error

bmake[1]: stopped in /usr/home/localuser/PROJECT/freebsd
*** [buildkernel] Error code 2

make: stopped in /usr/home/localuser/PROJECT/freebsd
1 error

make: stopped in /usr/home/localuser/PROJECT/freebsd

Please try without using these options:
FREEBSD_INSTALLWORLD_EXTRA_ARGS="-DNO_ROOT "
FREEBSD_BUILDKERNEL_EXTRA_ARGS="-DNO_ROOT "
FREEBSD_INSTALLKERNEL_EXTRA_ARGS="-DNO_ROOT "
FREEBSD_EXTRA_ARGS="-DNO_CLEAN"
FREEBSD_KERNEL_EXTRA_ARGS="-DKERNFAST"

OK, now it works.


feat(Template API): Add support for Templates in Configuration API

PR summary

PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 1.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Implement a CDS Custom Entity and Query Implementation Class

Tutorial URL: https://developers.sap.com/tutorials/abap-environment-a4c-create-custom-entity.html
Step 5: Implement SELECT method in query implementation class - 4. Set return data.
In addition to return the data also the Count must be returned:
      io_response->set_total_number_of_records( lo_response->get_count(  ) ).

Otherwise I've got this dump:
Error occurred during execution of query provider 'ZCL_TRAVELS_GW2'
The exception is related to the previous exception "CX_RAP_QUERY_RESPONSE_NOT_SET" that occurred in
program "CL_RAP_ABQI_ADAPTER===========CP", in line 46 of include "CL_RAP_ABQI_ADAPTER===========CM005". The reason for this exception
was:
Unmanaged query API violation: Requested response not set via method IF_RAP_QUERY_RESPONSE~SET_TOTAL_NUMBER_OF_RECORDS

OK, thanks - my version was working for me at the time. (I can't test it currently, since I the systems I used are now gone.)
However, yours is more robust, so I have added it to the tutorial.
Thanks a lot for all this feedback. The changes should appear soon.
BR Julie.

Thank you for your feedback. The issue seems to be resolved, so I am closing the issue.
If you still have questions, feel free to reopen the issue.

Hi WoutAvelon,
I am sorry for the delay. I will test this and contact you.
I tested the class but in an earlier version.
Best wishes,
Julie.

Thank you for your feedback. We haven't heard from you in a while, so we are closing the issue.
If you still have questions, feel free to reopen the issue.


Fix ZipEntry name mismatch when attempting to update a directory entry

I certify that I own, and have sufficient rights to contribute, all source code and related material intended to be compiled or integrated with the source code for the SharpZipLib open source product (the "Contribution"). My Contribution is licensed under the MIT License.

Closing due to lack of response.


Fix all typescript errors when compiled in strict mode #4

For #611 part 4

Ignore CI errors, they are not from changed files, part 5 corrects those errors. @DonJayamanne

Ignore CI gulp errors, they are not from changed files, part 5 corrects those errors. @DonJayamanne @d3r3kk


[bugfix, enhancement] enable proper GPU offloading with fp64 support when DPCtl unavailable

Description
This corrects a circular import issue with onedal.utils.validation when trying to create interfaces to the onedal backend in that file, the _device_offload imports from validation, and trying to use policy in the validation file will make a loop.  By moving the check to C++, it creates a better interface, and removes the need for the _device_offload import in _policy.py entirely.

PR should start as a draft, then move to ready for review state after CI is passed and all applicable checkboxes are closed.
This approach ensures that reviewers don't spend extra time asking for regular requirements.
You can remove a checkbox as not applicable only if it doesn't relate to this PR in any way.
For example, PR with docs update doesn't require checkboxes for performance while PR with any change in actual code should have checkboxes and justify how this code change is expected to affect performance (or justification should be self-evident).
Checklist to comply with before moving PR from draft:
PR completeness and readability

[x] I have reviewed my changes thoroughly before submitting this pull request.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have updated the documentation to reflect the changes or created a separate PR with update and provided its number in the description, if necessary.
[x] Git commit message contains an appropriate signed-off-by string (see CONTRIBUTING.md for details).
[x] I have added a respective label(s) to PR if I have a permission for that.
[x] I have resolved any merge conflicts that might occur with the base branch.

Testing

[x] I have run it locally and tested the changes extensively.
[x] All CI jobs are green or I have provided justification why they aren't.
[x] I have extended testing suite if new functionality was introduced in this PR.

Performance

[x] I have measured performance for affected algorithms using scikit-learn_bench and provided at least summary table with measured data, if performance change is expected.
[x] I have provided justification why performance has changed or why changes are not expected.
[x] I have provided justification why quality metrics have changed or why changes are not expected.
[x] I have extended benchmarking suite and provided corresponding scikit-learn_bench PR if new measurable functionality was introduced in this PR.

/intelci: run

/intelci: run

/intelci: run

/intelci: run

Rerun: http://intel-ci.intel.com/ef9fb16c-f83c-f13a-bcb3-a4bf010d0e2d

Note to reviewers: we must figure out what to do with the deselections before merging this PR.  Some of these issues are only 32 bit GPU relevant.

Note to reviewers: we must figure out what to do with the deselections before merging this PR. Some of these issues are only 32 bit GPU relevant.

Could you please bring more details about the issue?

Note to reviewers: we must figure out what to do with the deselections before merging this PR. Some of these issues are only 32 bit GPU relevant.

Could you please bring more details about the issue?

Intel Max GPUs support fp64 computation. The dummy sycl queue assumes all gpus cannot compute using doubles.  The dummy sycl queue is used when DPCtl is not installed, which is the case in testing sklearn conformance with GPU.  This down conversion from double to float is causing results to be less precise and leading to many of the deselected gpu tests. I think there will be a follow-up PR which will differentiate GPU deselections based on hardware characteristics, at the moment I will leave all deselections.

/intelci: run

It seems that the previously implemented get_device_id isn't conformant with DPCtl, and checks on filter_string will be commented out in this PR for comparisons.


[Automation] Generate Fluent Lite from servicenetworking#

[Automation] Generate Fluent Lite from servicenetworking#

API change check
API changes are not detected in this pull request.


Disallow Unused Variables

Removed all unused variables in functions in the ./service folder
I didn't remove the arguments from the function calls, since code seems to be working OK just like that.

@panoschal Please review and let me know if you want me to remove the arguments from the function calls as well.

However, there are still some functions that have unused variables (see ./controllers). If removed, the server seems to crash/timeout. I guess they are used by oas3-tools somewhere hidden from us (?)

The metrics in Cyclopt seem OK!

Cholver is now a Class A project
All other unused variables (except the ones mentioned above) are removed.

Your suggestion doesn't seem to work!
Let's make another task for it, if needed.

Great, I see that the Cholver violation is now lifted


added index.html file

This was a practice for HTML; history holds a step-by-step learning process of various concepts of HTML.
It was also a practice for git pull, push, merge via VS Code.


JavaScript

JavaScript
User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read the information
Acccptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I can see the four topics I learned listed along with a suggestion on what I should study first

finished java


Hotfix search tooltip

Details
Fixing the behavior of getIcon when there is no report. Tooltip implementation requires the name so the login is passed as a defaultName to show the tooltip even when the method receives no report as parameter
Fixed Issues

$ https://github.com/Expensify/App/issues/21099
PROPOSAL: https://github.com/Expensify/App/issues/21099#issuecomment-1599809305
Tests

Login with a high traffic account
Go to search
Hover over the profile pictures of the user without previous chat history in the search list
Verify that the tooltip is displayed.

Offline tests

Same as tests

QA Steps

Same as tests

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
Tooltip working in whole search results.webm

Mobile Web - Chrome
N/A Tooltip only works in web
Search Working:

Mobile Web - Safari
N/A Tooltip only works in web
Search working:

Desktop
Desktop working 06 28.webm

iOS
N/A Tooltip only works in web

Android
N/A Tooltip only works in web
Search working:

@sobitneupane included all the required resources, I don't have a mac at the moment, could you help me with a test in iOS? I required I could try scaleway or macincloud.

@daordonez11 Can you please update your test steps

Login with a high traffic account
Go to search
Hover over the profile pictures of the user without previous chat history in the search list
Verify that the tooltip is displayed.

For sure done @sobitneupane !

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/luacmartins in version: 1.3.35-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.3.35-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.3.35-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


CAMEL-13741 - Allow to convert a Map to an Iterable

The conversion from Map to Iterable used to be handled by the converter CollectionConverter.toSet(Map<K,V>)
Now that ObjectConverterOptimised is used before searching for a converter the Map to Iterable converter need to be handled at ObjectHelper.createIterable() level.
Same as #3031 but for camel-2.x branch

I reverted on master

So @adessaigne please have a look at the broken tests on master, should be the same of 2.x https://builds.apache.org/view/C/view/Apache Camel/job/Camel JDK11/job/master/264/#showFailuresLink

For the moment I'm closing this one too.


google-cloud-redis docs point to https://cloud.google.com/

should be more specific; maybe https://cloud.google.com/memorystore/

Ah thank you!


Make the error message of changing decimal type the same as Spark's

Signed-off-by: remzi<EMAIL_ADDRESS>Related to #5196.
Rationale for this change
We want to throw the same error message as Spark.
Changes in this PR.

Make the error message of changing decimal type be consistent with Spark's.

I add some extra compution in cannotChangeDecimalPrecisionError to find which value causes the error, so that we could throw the same error message as Spark.

Update update_test_floor_ceil_overflow to check the error message more precisely.

So far I only check the exception type (java.lang.ArithmeticException before Spark 3.3.0 and SparkArithmeticException after 330). The content of error message is not checked because I don't find a good way to get the value of data_gen

build

CI error: https://github.com/NVIDIA/spark-rapids/runs/7067135922?check_suite_focus=true#step:2:5245,
which seems not related to this PR/

build

build

build

The failure seems not related to this PR: https://github.com/NVIDIA/spark-rapids/runs/7124317772?check_suite_focus=true#step:2:34524

@revans2 Please have a look. Thank you!

build

build

The failure test is not related to this PR.

build


CI jobs are not running

Description
e.g see PR https://github.com/apache/incubator-mxnet/pull/20324.   Jobs are stuck in the Expected — Waiting for status to be reported state.
Thoughts, @josephevans?

Jobs are now running again.  Closing this issue.


NO-JIRA: Bump library-go to latest master

Bump to pull in https://github.com/openshift/library-go/pull/1689

/retest

/retest

is kas-o the only operator we need to bump in order to pick up the fix ?


Error neovim when configure extend_lspconfig()

First of all, thank you for the work you do with this wonderful plugin :D
I upgraded from version 0.10.1-4 to 0.10.2-1, but when I opened a new instance of neovim I got an error message...
nvim: /usr/src/debug/neovim/neovim/src/nvim/message.c:2403: msg_croll_flush: Assertion `to_scroll >= 0` failed.

nvim --version
NVIM v0.10.2
Build type: RelWithDebInfo
LuaJIT 2.1.1725453128

I thought it was some other plugin or some deprecated option. But I was uninstalling some plugins to "debug" and see if there was a conflict with any, until I found the "lsp-zero" plugin.
From there I was debugging the configuration I have to see if there was any deprecated field or value if that was causing the problem, until I came across:
lsp_zero.extend_lspconfig({
	sign_text = {
		error = " ",
		warn = " ",
		hint = " ",
		info = " ",
	},
	float_border = "rounded",
	lsp_attach = lsp_attach,
	capabilities = lsp_capabilities,
})

Out of curiosity I commented out the entire code block to have it as the default configuration, and neovim worked. So there must be a bug or some option I have that is causing the error. I attach my LSP configuration:
local lsp_zero = require("lsp-zero")
local mason = require("mason")
local mason_lspconfig = require("mason-lspconfig")
local lspconfig = require("lspconfig")

-- Set default keymaps
local lsp_attach = function(client, bufnr)
	lsp_zero.default_keymaps({ buffer = bufnr }) -- Keymaps default
	-- Enable format on save
	lsp_zero.buffer_autoformat()
end

-- Enable folds with nvim-ufo
local lsp_capabilities = vim.tbl_deep_extend("force", require("cmp_nvim_lsp").default_capabilities(), {
	textDocument = {
		foldingRange = {
			dynamicRegistration = false,
			lineFoldingOnly = true,
		},
	},
})

lsp_zero.extend_lspconfig({
	sign_text = {
		error = " ",
		warn = " ",
		hint = " ",
		info = " ",
	},
	float_border = "rounded",
	lsp_attach = lsp_attach,
	capabilities = lsp_capabilities,
})

-- Set mason
mason.setup({})
mason_lspconfig.setup({
	ensure_installed = {
		-- LSP
		"emmet_language_server",
		"docker_compose_language_service",
		"dockerls",
		"jsonls",
		"lua_ls",
		"prismals",
		"pyright",
		"sqls",
		"tailwindcss",
		"ts_ls",
	},
	handlers = {
		-- without inlay_hints
		function(server_name)
			require("lspconfig")[server_name].setup({
			  on_attach = lsp_attach,
			  capabilities = lsp_capabilities,
			})
		end,
	},
})

My options neovim:
vim.g.mapleader = " "

local options = {
	number = true, -- Show numberline
	relativenumber = true, -- Show relative numberline
	tabstop = 2, -- Number of space in a tab
	shiftwidth = 2, -- Number of space inserted for indentation
	softtabstop = 2,
	expandtab = true, -- Enable the use of space in tab
	showtabline = 0, -- always display tabline
	smartindent = true, -- Smarter autoindentation
	swapfile = false,
	backup = false,
	undodir = os.getenv("HOME") .. "/.cache/nvim/undodir",
	undofile = true, -- Enable persistent undo
	hlsearch = false,
	incsearch = true,
	termguicolors = true, -- Enable 24-bit RGB color in the TUI
	scrolloff = 8, -- Number of lines to keep above and below the cursor
	signcolumn = "yes", -- Always show the sign column
	clipboard = "unnamedplus", -- Connection to the system clipboard
	fileencoding = "utf-8", -- File content encoding for the buffer

	breakindent = true, -- Wrap indent to match  line start
	completeopt = { "menuone", "noselect" }, -- Options for insert mode completion
	copyindent = true, -- Copy the previous indentation on autoindenting
	cursorline = true, -- Highlight the text line of the cursor

	fillchars = { eob = " ", fold = " ", foldopen = "", foldsep = " ", foldclose = "" }, -- nvim-ufo plugin
	foldcolumn = "1",
	foldlevel = 99, -- set high foldlevel for nvim-ufo
	foldlevelstart = 99, -- start with all code unfolded
	foldenable = true, -- enable fold for nvim-ufo
	history = 100, -- Number of commands to remember in a history table
	ignorecase = true, -- Case insensitive searching
	infercase = true, -- Infer cases in keyword completion
	laststatus = 3, -- globalstatus
	linebreak = true, -- Wrap lines at 'breakat'
	mouse = "a", -- Enable mouse support
	preserveindent = true, -- Preserve indent structure as much as possible
	pumheight = 10, -- Height of the pop up menu
	showmode = false, -- Disable showing modes in command line
	sidescrolloff = 8, -- Number of columns to keep at the sides of the cursor
	smartcase = true, -- Case sensitivie searching
	splitbelow = true, -- Splitting a new window below the current one
	splitkeep = "screen", -- Maintain code view when splitting
	splitright = true, -- Splitting a new window at the right of the current one
	timeoutlen = 500, -- Shorten key timeout length a little bit for which-key
	updatetime = 300, -- Length of time to wait before triggering the plugin
	virtualedit = "block", -- allow going past end of line in visual block mode
	wrap = true, -- Disable wrapping of lines longer than the width of window
	writebackup = false, -- Disable making a backup before overwriting a file
}

for k, v in pairs(options) do
	vim.opt[k] = v
end

Problem solved!
I use ui instead extend_lspconfig like this:
lsp_zero.ui({
	sign_text = {
		error = " ",
		warn = " ",
		hint = " ",
		info = " ",
	},
	float_border = "rounded",
	lsp_attach = lsp_attach,
	capabilities = lsp_capabilities,
})


Data type mismatches in model specification

Model specification as generated by ADRIA.model_spec(dom) and loaded through rs = load_results(path) do not have the same data types for the same columns.
This leads to issues particularly for analyses which may expect Symbols vs Strings and vice versa (see for example: https://github.com/open-AIMS/ADRIA.jl/pull/601#discussion_r1403820435)

Adding excerpts from the two model specifications.
Note the different data types
julia> ADRIA.model_spec(dom)[:, [:component, :fieldname, :val, :bounds, :default_bounds]]
253×5 DataFrame
 Row │ component           fieldname                          val         bounds                       default_bounds
     │ String              Symbol                             Real        Tuple…                       Tuple…
─────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1 │ EnvironmentalLayer  dhw_scenario                        1          (1.0, 51.0)                  (1.0, 51.0)
   2 │ EnvironmentalLayer  wave_scenario                       1          (1.0, 51.0)                  (1.0, 51.0)
   3 │ Intervention        guided                              0          (-1.0, 19.0)                 (-1.0, 19.0)

julia> rs.model_spec[:, [:component, :fieldname, :val, :bounds, :default_bounds]]
253×5 DataFrame
 Row │ component           fieldname                          val         bounds                             default_bounds
     │ String31            Symbol                             Float64     String                             String
─────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1 │ EnvironmentalLayer  dhw_scenario                        1.0        (1.0, 51.0)                        (1.0, 51.0)
   2 │ EnvironmentalLayer  wave_scenario                       1.0        (1.0, 51.0)                        (1.0, 51.0)
   3 │ Intervention        guided                              0.0        (-1.0, 19.0)                       (-1.0, 19.0)

what do you think about having one row with types for each col inside model_spec.csv ? Or do you have any other ideas?

Yes, that's one approach - to list the types in a comment directly above the column headers and make that part of the specification.
Alternatively, switch to Zarr format instead of CSV and put the metadata of column types somewhere in Zarr.
Or specify it in the ResultSet metadata (inside the datapackage.json file?)...
Personally I like the Zarr-based solution...

I also like the Zarr-based solution. I don't know what are the complications (can you elaborate?) but one problem I see is that is it harder to implement than just adding a commented row to the csv.

harder to implement than just adding a commented row to the csv

Yes easier, but doing that would open a whole lot of security implications. Because we'd be evaluating string as code to obtain the equivalent data types.
Actually, this is true for all the ideas above (but somewhat less so for Zarr).
Maybe I'm overthinking it. Let's sleep on it.

harder to implement than just adding a commented row to the csv

Yes easier, but doing that would open a whole lot of security implications. Because we'd be evaluating string as code to obtain the equivalent data types.
Actually, this is true for all the ideas above (but somewhat less so for Zarr).
Maybe I'm overthinking it. Let's sleep on it.

I was thinking: is it possible to just pass dom or, at least, a vector of types, as an argument to load_results? This function is being called in a lot of places so I'm not completely sure, but I see that two main places are inside combine_results and inside run_scenarios. I didn't find any call to combine_results inside ADRIA, how/where/when is this being used? But about run_scenarios, we have the domain there, we could pass the types as arguments to load_results.

I was thinking: is it possible to just pass dom or, at least, a vector of types, as an argument to load_results?

Do you remember what the motivation is behind keeping the Domain and ResultSets separate?

I was thinking: is it possible to just pass dom or, at least, a vector of types, as an argument to load_results?

Do you remember what the motivation is behind keeping the Domain and ResultSet separate?

Yes, you're right, sorry.

Maybe, if we're willing to drop support for any prior versions, the simplest solution is to take the expected types from within ADRIA itself.

I think now is a good time to implement changes that are important like this but have the cost of dropping support to prior versions. Soon we will release 1.0.0 (right?) anyway.
That said, what do you mean by "take the types from within ADRIA"? What I like about having the types saved somewhere within result set is that it allows us support other models/domains in the future. So far I'm leaning towards the Zarr-based solution.

I didn't find any call to combine_results inside ADRIA, how/where/when is this being used?

This was the first thing you worked on. I said not to delete the function because we still want to be able to merge ResultSets. Later we want to be able to add to an existing ResultSet and other things too.

Ok, I remember that.

That said, what do you mean by "take the types from within ADRIA"?

The model specification is defined by the composition of the various components (Intervention, CriteriaWeight, EnvironmentalLayer, Coral).
I think only EnvironmentalLayer requires Domain metadata to be created (e.g., the number of available trajectories), but have to check this.
Given we only want the data types, I guess it should be possible to create a model spec with just the default values and infer the types from that.
The Zarr-based approach has the same issue where we'd have to infer the correct types from a metadata string - running strings as code should be avoided. But again, maybe I'm overthinking it.


add info about js debugger

add info to user in js script to know how he can bebug is code with breakpoints

Thanks Abir, good idea


Prometheus gets 503 when scraping target behind haproxy

What did you do?
What did you expect to see?
What did you see instead? Under which circumstances?
We run pushgateway on mesos, and put it behind haproxy. curl and chrome can fetch the URL http://pushgateway.corp.quobyte.com:80/metrics with no problems (that's the one displayed in /targets), but prometheus shows a "server returned HTTP status 503 Service Unavailable" in /targets.
I'll dig deeper when I find time, but I thought I'll document the issue for others.
Environment

System information:
Linux 3.10.0-327.18.2.el7.x86_64 x86_64

Prometheus version:
0.19.2 / 23ca13c

Prometheus configuration file:

scrape_configs:
  - job_name: "pushgateway"
    target_groups:
      - targets:
        - pushgateway.corp.quobyte.com

Logs:

insert Prometheus and Alertmanager logs relevant to the issue here

Can you als curl the URL from the Prometheus node?

There is a trap in how Prometheus constructs tree host header and how
HAProxy handles it. I suppose you are using ACLs for host-based routing?
Could you try curl -v -H 'Host: pushgateway.corp.quobyte.com:80 http://pushgateway.corp.quobyte.com/ (note the port in the host header)?
The HTTP standard days they are equivalent, but because HAProxy doesn't
actually know the semantics of the host header you need to reflect that in
the ACL.

@matthiasr yes, this yields a 503. Adding an addtional URL with :80 in the Mesos label fixes it then:
 "labels": {
    "HAPROXY_GROUP": "external",
    "HAPROXY_0_VHOST": "pushgateway.corp.quobyte.com,pushgateway.corp.quobyte.com:80"
  },

Thank you very much for the hint! I hope this helps others if they run into the same issue.


I think there is an issue with the hide/show functionality of the tags feature.

two images to illustrate my issue。
first

second

when i hide tags:Body, only one element is hidden.
In my opinion, in practical work, if a tag is hidden, all elements associated with that tag should also be hidden.

Or there could be a place to configure the weight of hide and show tags.

No, that would change existing behaviour. The next person would say that if any of the tags of a shape are displayed then the shape should be displayed. We cannot change this.

Perhaps adding a setting would be a good solution, which won't change the existing behaviour.


Inline Tables

Parse and display tables from content in a horizontally scrolling view (like the table system in Slide Android)

Interesting, that sounds like a way to implement it that is sort of a short cut (because it's much easier to implement), but if it works that would be great. Do you mind attaching a screenshot of how it displays this content?

Here’s a screenshot of how it looks in Apollo: https://imgur.com/a/RJhyC0l
Apollo provides two views, where one is the normal horizontal scroll view (not optimal if it has a lot of columns), and one is the “list of lists” view (not optimal if the cells require to be at specific locations).

Oh interesting, that is actually loads easier to implement than what I was envisioning for this issue. Will add this in for the next update!

Done and done!

Nevermind, after over a weekend of work I actually implemented it the correct way :P