internal/pulseaudio causing crash

My config:
[module/vol2]
type = internal/pulseaudio
use-ui-max = true
interval = 1
format-volume = <ramp-volume> <label-volume>
;format-muted = <label-muted>
label-volume = %percentage%%
label-muted =  X
label-muted-foreground = #999

It works for a while but can consistently reproduce a crash by raising and lowering the volume a few times. The result is polybar terminating after the following output:

[ 210781.25 ] error    3 BadWindow    request   15 minor    0 serial 16560071: "BadWindow (invalid Window parameter)"
[ 210781.25 ] error    3 BadWindow    request   15 minor    0 serial 16560073: "BadWindow (invalid Window parameter)"

I have no problems with internal/volume though. Maybe this should be left in the documentation but marked as deprecated rather than removed from the wiki entirely.

Those errors don't look like they are related to pulseaudio in any way. They look like there was some errors when polybar interacts with Xorg.
Does this happen when you have only the pulseaudio module on the bar? Can you post the whole config where this happens.
What else does polybar print? Please post the whole output. At least warn: Termination signal received, shutting down... or a segfault message should also appear.

internal/volume is deprecated because it was renamed to internal/alsa. The module itself is still being used.


SwiftUI UI

New UI

the openssh toggle for the swift ui doesn’t work but it works on the normal ui

i need help from roothidedev, which he doesnt give me

well, i guess hes busy so thats ok :)

common haxi0 w

haxi0 is the goat


Fix nullptr clientModel access during shutdown

Fixing #800.
During shutdown, already queue events dispatched from the backend such
'numConnectionsChanged' and 0networkActiveChanged' could try to access
the clientModel object, which might not exist because we manually delete
it inside 'BitcoinApplication::requestShutdown()'.
This happen because boost does not clears the queued events if they arise
concurrently with the signal disconnection (see https://www.boost.org/doc/libs/1_55_0/doc/html/signals2/thread-safety.html).
From the docs:

"Note that since we unlock the connection's mutex before executing its associated slot, it is possible a slot will still be executing after it has been disconnected by a connection::disconnect(), if the disconnect was called concurrently with signal invocation."
"The fact that concurrent signal invocations use the same combiner object means you need to insure any custom combiner you write is thread-safe"

So, we need to guard clientModel before accessing it at the handler side.

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.

Concept ACK. I did my own research and I agree with @furszy's analysis if the problem.


UAVCAN GPS driver does not update system time yet

Testing with PX4 firmware tagged v1.6.2 on Pixhawk 2.1 with working GPS hardware providing valid time, eg:
nsh> listener vehicle_gps_position

TOPIC: vehicle_gps_position instance 0 #1
timestamp: 26954757
lat: 377600989
lon: -1224114390
alt: 31203
alt_ellipsoid: 1436
s_variance_m_s:   2.1113
c_variance_rad:   4.8381
fix_type: 3
eph:   8.5513
epv:  10.9430
hdop:   3.1699
vdop:   3.1699
noise_per_ms: 0
jamming_indicator: 0
vel_m_s:   0.8601
vel_n_m_s:  -0.1010
vel_e_m_s:  -0.6528
vel_d_m_s:  -0.5508
cog_rad:  -1.7243
vel_ned_valid: True
time_utc_usec:<PHONE_NUMBER>299637
satellites_used: 7

The system time is not being set correctly from the GPS time:
nsh> date
Sat, Jan 01 01:31:05 2000

This results in eg logger log file timestamps being incorrect.

More info:  Tested with UAVCAN GPS (Zubax GNSS 2.0)

It appears that the gps driver calls px4_clock_settime but the uavcan driver does not.  It might be more appropriate for a listener to the vehicle_gps_position uORB topic to set the time? Not sure.

Please just add the clock_settime() call to the UAVCAN GPS bridge. Awaiting the pull request :)

PR submitted. FYI, from what I can see, the existing GPS drivers are not one-shot: They set the system clock over and over, on every GPS packet-- see the calls to mktime in ubx.cpp, mtk.cpp, and ashtech.cpp
Going forward, it might be better to have a single module (Commander?) that subscribes to vehicle_gps_position and calls px4_clock_settime, rather than requiring duplicate code in every GPS driver. This would mean that we'd be limited to setting the system clock with microsecond accuracy (from the time_utc_usec field) but would remove the need to call mktime in multiple drivers.
However, there may be some complications of this I'm not aware of -- for instance, if you don't want vehicle_gps_position messages to dictate the system clock on HIL/SITL setups.


Stencil fullscreen mode, ::backdrop

Describe the bug
Hello. I am using Stencil. When I go into full screen mode I drag elements from Stencil to the graph window and during this dragging, the element itself is not visible. But when I release the left click, the element appears in the graph window.
If you do not use full screen, then everything is fine.
The whole problem is that when full screen mode is used, the browser adds the ::backdrop pseudo-element to the body, which does not show the div elements below. And while dragging an element into the window, it is just created below the ::backdrop pseudo-element. About the backdrop element https://developer.mozilla.org/ru/docs/Web/CSS/::backdrop
Your Example Website or App
https://codesandbox.io/s/dreamy-jackson-ol3b2k?file=/src/app.tsx
Steps to Reproduce the Bug or Issue

I go to the test page https://ol3b2k.csb.app/
click on the fullscreen button
drag and drop elements onto the graph
during dragging, the element is not visible, it is hidden.

Expected behavior
the element should be visible while dragging
Screenshots or Videos
recording (4).webm
Platform

OS: [Windows, Linux]
Browser: [Chrome]
Version: [109.0.5414.75]

Additional context
No response

hi,  you can refer to mdn
because this element is not in your element that used requestFullscreen()

Stencil

that's the thing, I can't control the "x6-widget-dnd dragging" class, it is created and deleted by the Stencil component.
All ant tips are also created, and they are also created at the bottom of the body and outside of my div.
And since it is created outside, it becomes outside the ::backdrop  pseudo-element and is therefore not visible.
It is necessary to edit the Stencil ant component.

then the "x6-widget-dnd dragging" class was removed after the drag was finished.

you can use the draggingContainer param

you can use the draggingContainer param

but, current x6 use position: absolute

so you need to make sure your position is not apper problem.

вы можете использовать параметр draggingContainer

но текущая позиция использования x6: абсолютная , поэтому вам нужно убедиться, что ваша позиция не является проблемой.

excellent thank you.
I added a draggingContainer for the stencil and fixed the position. With an absolute position, the work is incorrect.
  .x6-widget-dnd.dragging {
    position: fixed;
  }

Now another problem. I use the Tulbar component https://x6.antv.vision/zh/docs/api/ui/toolbar
And with a full screen, the hints are not displayed. An example here https://ol3b2k.csb.app/ or https://codesandbox.io/s/dreamy-jackson-ol3b2k?file=/SRC/App.TSX
recording (5).webm

Now another problem. I use the Tulbar component https://x6.antv.vision/zh/docs/api/ui/toolbar And with a full screen, the hints are not displayed. An example here https://ol3b2k.csb.app/ or https://codesandbox.io/s/dreamy-jackson-ol3b2k?file=/SRC/App.TSX
recording.5.webm

it it look at is problem for antd

you can try use the params with tooltipProps:  { getPopupContainer } for component that Item.

you can try use the params with tooltipProps: { getPopupContainer } for component that Item.

Thanks for your help, this is what I did:
      <Item
        name="zoomAdd"
        icon={<ZoomInOutlined />}
        tooltipProps={{
          getPopupContainer: (trigger) =>
            popupContainer
        }}
      />


fix some verbiage in draft design

Draft recently switched over from HTTP/Websockets to gRPC.

@bacongobbler,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Roll Flutter Engine from f794e6719d3c to 59c5237b360a (2 revisions)

https://github.com/flutter/engine/compare/f794e6719d3c...59c5237b360a
2024-04-23<EMAIL_ADDRESS>Roll Skia from a373bf46bffb to 0756b4606e6f (3 revisions) (flutter/engine#52323)
2024-04-23<EMAIL_ADDRESS>[Impeller] add test case for path that explicitly closes at origin. (flutter/engine#52314)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jimgraham@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Update all deps to latest

~Update all deps to latest to see if we pass CI, since dependabot has been stale for quite a bit now.~

Update CI to >1.21
Update docker images to latest (1.23)
Update all deps

Forgot to update Changes.md


How to access data inside of custom validation

Hi,
I need access the value of other field inside of the data equal a required_if, but in callback I don't have access this values.
Why not pass the input as the last param ?

I noticed that you have access to input in the this object
for example:
validatorjs.register(
  'equals',
  function equalsRule(value, requirement) {
    return value === this.validator.input[requirement];
  },
   'The :attribute must be equals to :requirement.'
);

where requirement is a field name

Hi @raiman264 Please how did you access the name of the second field? The :attribute property works but the :requirement does not

I noticed that you have access to input in the this object
for example:
validatorjs.register(
  'equals',
  function equalsRule(value, requirement) {
    return value === this.validator.input[requirement];
  },
   'The :attribute must be equals to :requirement.'
);

where requirement is a field name

What if we don't have access to "this" instance?

Hi @raiman264 Please how did you access the name of the second field? The :attribute property works but the :requirement does not

In your case it's easy
validation: 'min:3|formula-format: 3'
add your field name as the second param. for instance, above assume formula-format is a custom validation rule.
you can insert the field name you intend to access as '3' in the above example. then you will get  "requirement" = 3  in this case.


Cannot understant the code at README.md of pair-pm

Hi, I'm very confused by your code.
logit_A = output.logits[0, -1, token_id_A].item()
logit_B = output.logits[0, -1, token_id_B].item()

I guess the last dimension of the tensor output.logits would be same as the vocab_size.
But why token_id_A-th and token_id_B-th index element matter? (they are 32 and 33 respectively, seemingly random to me).
Also, I found that avg_prob_chosen (=np.mean(probs_chosen)) is exactly 0.5. How this can be?
Since the positions of two responses change as we iterate through for chosen_position in [0, 1]:, the sum of the probs is very unlikely to be 1, but it is...

Hi, thanks for your interest in the preference model.
The preference model is used to predict P(A | prompt) and P(B | prompt). The two lines of code compute the logit of decoding A and B, respectively and we only use these two logits.
Since we iterate through for chosen_position in [0, 1], the preferred response (labelled by the human) appears in A for the first time and B in the second time. Therefore, accordingly, the logit for choosing the correct one is taken as the logit_A (correct answer for the first round d) and logit_B (correct answer for the second round), respectively.
logit_chosen = [logit_A, logit_B][chosen_position]

A specific example is as follows. We have two responses, "GOOD" and "BAD" and the first one is labelled as preferred. For the first time, we format the prompt as
[CONTEXT] \n\n<turn> user\n Some question here... [RESPONSE A] GOOD. [RESPONSE B] BAD.

The preference model should decode A because the RESPONSE A should be preferred in this case. In the second round, the prompt is formatted as
[CONTEXT] \n\n<turn> user\n Some question here... [RESPONSE A] BAD. [RESPONSE B] GOOD.

The preference model should decode B because the RESPONSE B should be preferred in this case (so we take the logit_B in this case).

I understood. Thanks!
However, the fact that avg_prob_chosen == 0.5 is True still strikes me.

This happens more when we quantize the model (the default setting of reward bench) but it should not happen too frequently in practice.
Also I think I should put the technical report https://arxiv.org/pdf/2405.07863 in the readme where the detailed description of the preference modeling is provided.


Bug in GPG: argument --batch needed to build Dockerfile

There's currently a bug in GPG that breaks the Docker build process of your Dockerfiles. GPG encounters an error if there is no TTY present (such as during the docker build) and exits with error code 2.
The bug seems to be a non-trivial one, see the following acknoledgement:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913614#27
From the comment, there's this paragraph, which also provides the solution: by using the argument --batch GPG assumes a non-interactive environment and gets the keys without issues.

PS i do encourage everyone who is automating the use of gpg to use
--batch everywhere, as this forces GnuPG into a mode that is expected to
be used for automation (its "API", for lack of a better term, as opposed
to its "UI", which is its normal non-batch mode). And, FWIW, i agree
with Tianon that GnuPG should simply assume --batch if no tty exists,
but that's not the kind of change i can fit into debian stable, i think.

I just added the --batch argument on the latest Dockerfile (v0.17.0), but it may be worthwile to extend this to other versions as well.

Additional remark: I also had to add an additional keyserver, as all of the existing ones did not respond in time. But that's probably a temporary issue, or a problem on my end, so I did not want to include that in this pull request.
gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"

As all checks failed due to unresponsive key servers, I added the keyserver.ubuntu.com anyway, just to see if that solves the issue.

i did not have this issue on ubuntu 18.04.
in case you go with --batch flag you missed one place on line 27 (new file):
 && gpg --verify /usr/local/bin/gosu.asc \
should be
  && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \

Strangely, the one --batch you point out does not work. I had it in the first commit but removed it (see second commit "remove --batch for verification").
I had the on an Odroid HC1 with Ubuntu 18.0.4 LTS. I will double check and give an update.

GPG and the key server ecosystem has always been extremely unreliable to me. This does indeed seem to approve the responsiveness of the build. Thanks!

Applied to all images, removed gosu manual download (now in Debian repos) and merged https://github.com/ruimarinho/docker-bitcoin-core/commit/b92bb28bc52af6fcc86e14b23abe7f7c862ae682. Thanks!


cephfs: Cannot run systemd-run, assuming non-systemd OS

Hi,
i'm running cephfs via ceph-csi and on some nodes i get the following errror in the ceph-csi-cephfs-nodeplugin container:
I0218 03:20:47.221224       1 utils.go:202] ID: 103 GRPC response: {"usage":[{"available":104857600,"total":104857600,"unit":1},{"total":43645,"unit":2,"used":43646}]}
I0218 03:20:49.927809       1 utils.go:191] ID: 104 GRPC call: /csi.v1.Node/NodeGetCapabilities
I0218 03:20:49.927865       1 utils.go:195] ID: 104 GRPC request: {}
I0218 03:20:49.927936       1 utils.go:202] ID: 104 GRPC response: {"capabilities":[{"Type":{"Rpc":{"type":1}}},{"Type":{"Rpc":{"type":2}}},{"Type":{"Rpc":{"type":5}}}]}
I0218 03:20:49.928764       1 utils.go:191] ID: 105 GRPC call: /csi.v1.Node/NodeGetVolumeStats
I0218 03:20:49.928809       1 utils.go:195] ID: 105 GRPC request: {"volume_id":"0001-0024-01578d80-6c97-46ba-9327-cb2b13980916-0000000000000001-8cb28e6b-2366-11eb-b0b4-0a580a2a02cd","volume_path":"/var/lib/kubelet/pods/84d81409-4c10-4763-82a4-3c1c234424bc/volumes/kubernetes.io~csi/pvc-05cdecd4-8155-4e34-8bf0-1a9f221931e3/mount"}
I0218 03:20:49.935100       1 mount_linux.go:218] Cannot run systemd-run, assuming non-systemd OS
I0218 03:20:49.935119       1 mount_linux.go:219] systemd-run output: System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down
, failed with: exit status 1

I get this error on some nodes - on others not. Not sure what the error is related to or if it has any impact on provisioning volumes.
So my question is if the error is OK or if anything is going wrong here?
Thanks
Environment details

Helm chart version : v3.4.0 / v3.5.1
Kernel version : AlmaLinux 8.5 / 4.18.0-348.2.1.el8_5.x86_64
Mounter used for mounting PVC (for cephFS its fuse or kernel. for rbd its
krbd or rbd-nbd) : cephFS
Kubernetes cluster version : 1.20.6
Ceph cluster version : 14.2.22

@discostur this should not be a problem, it's coming from the kubernetes package we use for mount operation. this is just an info log.

@Madhu-1 ok thanks - will close this ;)

https://github.com/kubernetes/kubernetes/pull/111083 has been proposed as a change to the k8s.io/mount-utils package. It will address the scary logging for NodeGetVolumeStats procedure calls.


flutter application not running gives this error Execution failed for task ':android_intent:generateDebugRFile'.

error:
Launching lib\main.dart on ASUS X00TD in debug mode...
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':android_intent:generateDebugRFile'.

java.util.NoSuchElementException (no error message)

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 35s
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)
Flutter doctor -v:
D:\daq-dynamic>flutter doctor -v
[√] Flutter (Channel stable, 1.20.3, on Microsoft Windows [Version 10.0.18362.1082], locale en-IN)
• Flutter version 1.20.3 at C:\flutter
• Framework revision 216dee60c0 (3 weeks ago), 2020-09-01 12:24:47 -0700
• Engine revision d1bc06f032
• Dart version 2.9.2
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at C:\Users\jk\AppData\Local\Sdk
• Platform android-29, build-tools 29.0.2
• ANDROID_HOME = C:\Users\jk\AppData\Local\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 49.0.2
• Dart plugin version 193.7547
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code, 64-bit edition (version 1.49.1)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 3.14.1
[√] Connected device (1 available)
• ONEPLUS A3003 (mobile) • <IP_ADDRESS>:5555 • android-arm64 • Android 9 (API 28)
• No issues found!
please help me out in this issue.
Thanks.

Hi @jk-hub
Can you please provide flutter run --verbose logs, and  complete reproducible minimal code sample
Thank you

this issue is been resolved thanks I run flutter clean cache repair


substring not found

Hey!
I'm using the same code as mentioned in my previous issue. As before, it has been working with no issues for a few hours and then this error began popping up after I've renewed my sessionID after my previous one expired (side note: Is there a way to add a notification when your sessionID has expired and you need to grab a new one from the browser?).
(venv) z@z-MacBook-Pro InstagramUnfollow % python3 unfollow.py
Traceback (most recent call last):
  File "/Users/z/Documents/Code/InstagramUnfollow/unfollow.py", line 93, in <module>
    host = BaseHost(sessionID)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/z/Documents/Code/InstagramUnfollow/venv/lib/python3.11/site-packages/ensta/BaseHost.py", line 57, in __init__
    update_app_id(self)
  File "/Users/z/Documents/Code/InstagramUnfollow/venv/lib/python3.11/site-packages/ensta/lib/Commons.py", line 11, in update_app_id
    app_id_first_occurrence = self.homepage_source.index(app_id_occurrence_string)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: substring not found

Hey. I've fixed the bug. Does your code work now?


ValidateScript attribute throws exception when argument is explicitly set to $null

When using a parameter with a ValidateScript attribute, this throws an exception if the parameter is explicitly set to $null, which is unexpected. I didn't find it documented anywhere, so I guess it's a bug. Minimal working example below.
Steps to reproduce
function testfunc {
    param(
        [ValidateScript({ $true })]
        [psobject]
        $Arg
    )

    'Arg is null: {0}' -f ($null -eq $Arg)
}

Expected behavior
testfunc -Arg $null

Output:
Arg is null: True

Actual behavior
testfunc -Arg $null

Output:
Cannot validate argument on parameter 'Arg'. The argument is null, empty, or
an element of the argument collection contains a null value. Supply a collection
that does not contain any null values and then try the command again.

+ CategoryInfo          : InvalidData: (:) [testfunc], ParameterBindingValidationException

But without parameters:
testfunc

Output:
Arg is null: True

Environment data

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.17763
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Name                           Value
----                           -----
PSVersion                      5.1.17763.1007
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.1007
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

App

This is probably due to inherited behaviour for the ValidateScript attribute, but either we should document this or fix it. Not sure which is more appropriate here.

Since ValidateScript is inherited from ValidateEnumeratedArgumentsAttribute it is by-design.

Ok, thanks for letting me know. I think this by-design behaviour should still be documented somewhere, since it is somewhat unexpected. It implies that, as soon as you use a Validate* attribute (Script, Range, Set, Pattern, etc.), this implies ValidateNotNull, and AllowNull becomes impossible, and the use of these two attributes therefore has no effect.

And, thinking of my usecase now, it means that when null values are allowed, parameter validation has to be done using an if-statement (or similar), and throwing an exception, inside the main function code. Is that correct?

The cmdlet can have a history for the design. Perhaps somebody could add an information about this.

Is that correct?

You can implement custom attribute for your needs.

/cc @SteveL-MSFT @sdwheeler can/should this be moved to the docs repo?


Chapta error

Trying to scrape the Mediaworld site I get the error that no information is found.
Result
{'answer': 'It is not possible to get the list of all products, description and price from the discarded content because there is no product information within the content. The content contains error messages and user instructions, but does not provide any product information."}
Running the test with another scraper via laravel, I can see that the site returns this wording:
Dear visitor,
Unfortunately, this happened too fast for us. To continue and to see all offers from Mediamarkt, please complete the captcha below.
Please turn JavaScript on and reload the page.Please enable Cookies and reload the page.
Thanks
Code
`from scrapegraphai.graphs import SmartScraperGraph
import nest_asyncio
nest_asyncio.apply()
graph_config = {
"llm" : {
"model" : "ollama/llama3",
"temperature" : 0,
"format" : "json",
"base_url" : "http://localhost:11434",
},
"embeddings" : {
"model" : "ollama/nomic-embed-text",
"base_url" : "http://localhost:11434",
},
"verbose" : True,
}
smart_scraper_graph = SmartScraperGraph (
prompt = "List me the product with their price",
source = "https://www.mediaworld.it/it/brand/apple/iphone/iphone-15-pro",
config = graph_config
)
result = smart_scraper_graph.run()
print(result)`

@alby696 we don't have a CAPTCHA solver or support for dynamic content (see #279) yet

Hey @alby696 try setting "headless": False in the graph_config and it should work!


watcher: fix recursive test file matcher

The watcher used dir**/*.js as the recursive pattern when the initial pattern matched a directory. This should be dir/**/*.js instead. Before this fix tests were matched as sources, causing all tests to be rerun.

LGTM


Memtables are only half full

Describe the bug
When setting the num_extents memtable config option, the computation assumes that the extents are all full. However, for most workloads, they will be somewhere between half full and full. Empirically on a random insertion workload, I observed them to be roughly half full.
Reproduction steps
Add a `platform_log` in `trunk_memtable_incorporate` that prints a sum of the `req->output_pivot_kv_byte_count` statistic.

Expected behavior
Memtables should have roughly cfg->memtable_capacity bytes of data when full, by default this is 24MiB.
Additional context
I think the easier and maybe best fix is just to double the num_extents config option in mt_cfg. There will be some workloads where this will cause overfull memtables, such as sequential insertion workloads, but I think this is ok.

Closing, as I believe PR #390 fixed it.


Deploying javascript app with Aspire results in error during deploy step

Output from azd version
azd version 1.6.0 (commit f90c77f78899db817f56cde9eab4b9421ec15535)
Describe the bug
While deploying to azure with azd and Aspire Preview 3:
ERROR: failed packaging service 'angular': failing invoking action 'package', parsing source container image: empty image URL provided

To Reproduce
repo: https://github.com/timheuer/js-aspire
run azd init && azd up
Expected behavior
All services deploy

I have the same problem. It was working on the previous version of azd this morning, and after upgrading via brew (MacOS) I now get the error described here when attempting to deply a nodejs container.

@wbreza suspecting the recent changes Adds support to reference external or prebuilt image references #3269 might have caused this. Can you check with @ellismg ?

I see that a fix has been merged -- any word on when the fix will get released?

I see that a fix has been merged -- any word on when the fix will get released?

We have a release planned next week. If you want to try earlier, you can use the daily bits


JSONDecodeError

self.pdf_reader = readers.LayoutPDFReader(
self.api_url,
)
document = self.pdf_reader.read_pdf(final_location)
returns
Traceback (most recent call last):
File "", line 1, in
File "", line 21, in read_document
File "/Users/joncheng/opt/miniconda3/envs/owlbear/lib/python3.10/site-packages/llmsherpa/readers/file_reader.py", line 72, in read_pdf
response_json = json.loads(parser_response.data.decode("utf-8"))
File "/Users/joncheng/opt/miniconda3/envs/owlbear/lib/python3.10/json/init.py", line 346, in loads
return _default_decoder.decode(s)
File "/Users/joncheng/opt/miniconda3/envs/owlbear/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Users/joncheng/opt/miniconda3/envs/owlbear/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Looks like there's an issue with handling jsondecoding errors.
I just provided a local file path.

Switching to the docker image in this comment worked for me.


what is macos version

The version of macOS I use is macOS 14 Sonoma, but you can use the macOS 13 Ventura, too.


Plan to support XDP for best perf?

rt

what's XDP, how can I support that, what benefit can I get from it.


Update Snapshot url in runner file

Thanks for contributing to fastlane! Before you submit your pull request, please make sure to check the following boxes:

[x] Read the Contribution Guidelines
[x] We currently don't accept new actions, please publish a plugin instead, more information in Plugins.md

Before submitting a pull request, we appreciate if you create an issue first to discuss the change :+1:

Nice catch, thanks @jinjorge 👍


feat: add changelog

create CHANGELOG.md
automatically udapte changelog on npm version [release_type] command.

@lidel , I played around with this a bit longer than I planned yesterday, trying to get CID during changelog process, removing all manual steps. I think if we use a CAR with a single CID, we could remove the CID from the release notes, and then auto-generate them easier. what are your thoughts?

@lidel will do, but I think this update would be best decided after we discuss how to handle CIDs in the changelog. I moved this PR to a draft.

If we have a single CID that is always the latest webui release, then we don't need to copy the CID into release notes each time and can simply put it at the top of the README (or hardcode into changelog template).
If we don't, then adding the CID to release notes would require plugging into the existing workflows when generating the changelog (also do-able)

We should continue documenting CID for every release (we've been doing that for past releases).

i've decided to go an entirely better direction and use semantic-release for this since aegir and everything else is using it.
I've got the CID automatically adding to the release-notes (which semantic-release should add to the changelog automatically) via npx semantic-release -b feature/add-changelog --dry-run --no-ci  --debug:


The training cost

Hi, nice work!
Just curious about the type and number of GPU used for training, and the time needed for the original training phase.

Hi, the entire editing process is an inference process, it doesn't involve any training, the only training here is the 3DGS training. As we said in the README file, we use an NVIDIA RTX A5000 GPU (24G) for training (editing and train 3DGS). To fit a smaller GPU, you can also decrease the batch size and the number of reference frames, it should also work. Our batch size is 3, with 4 reference frames. So the entire training time is around 9mins if we edit 40 images, (which is a number that you can set in the hyperparameter, as introduced in the README file.) You can also decrease this number to speed up, should also work fine

Hi, thank you so much for your help!


"export 'default' (imported as 'compute') was not found in 'compute-scroll-into-view'

"scroll-into-view-if-needed":  "version": "2.2.31",
"compute-scroll-into-view": "version": "1.0.20",
ERROR in ./node_modules/scroll-into-view-if-needed/es/index.js 44:47-54
"export 'default' (imported as 'compute') was not found in 'compute-scroll-into-view'

This is fixed in scroll-into-view-if-needed@3 and compute-scroll-into-view@2


Update versions

Python 2.6 and 3.3 are both EOL and no longer receiving security updates from the core team.
2.6 was already dropped in https://github.com/jpvanhal/inflection/pull/20.
Also add 3.5 and 3.6.
Also replace function call with set literal, and fix a test that looks like it had a copy/paste mistake.

Thanks!


Increase publishTimeout to 60s

@leszko I just pushed a commit into your branch to fix upload-artifact@v3 issue

Thanks!


[BUG] mcmetadata.json in retrieve.js bad dates

Current Behavior
sometimes we filter "no date" and replace it with "-". in other cases (seen for type automation) we get "0001-01-01T00:00:00-06:00"
Expected Behavior
if no date is give, return "-"

example line item:
{"n":"New Journey - 9 December 2021 00.29 - 2021-12-08T173007.648",
"k":"7226ab3b-b6b0-485b-b007-c10d273d5ced",
"t":"automation",
"cd":"2021-12-08T17:30:07.663-06:00",
"cb":"David Venegas",
"ld":"0001-01-01T00:00:00-06:00",
"lb":"David Venegas"}

check out the ld value


Signal timer duration limit

About the PR
Signal Timers (for example Brig Timers on cells) now have a maximum duration. If any number higher than an hour is input, the countdown will start from 59:59 instead. Max duration is on a component and can be modified by individual prototypes, if necessary.
Why / Balance
(Technically, there already was a practical maximum, since the largest number that could be typed in was 99m 99s, which becomes 1h 40m. I am merely reducing that limit to an hour instead)
if the current remaining time is over 1h 0m 0s, the display shows hh:mm. This is arguably unintuitive, since people expect it to show mm:ss, and can just look like a short timer got stuck, unless you stare at it long enough to see the minutes change.
There is not really a reasonable usecase for a timer counting down from over an hour. Should that need legitimately arise in the future, or in a fork, MaxDuration can be increased in yaml to the original. But it will still be capped by the limitation of the input field.
This change also makes it possible to set more limitations on specific timers through yaml. For example making it so all brig timers can no longer be set to above a universal maximum sentence time.
Technical details
Maxduration is on the SignalTimerComponent. When the server receives the value that was input on the client, the lower of the two numbers is used to start the countdown.
Media

Requirements

[X] I have read and am following the Pull Request and Changelog Guidelines.
[X] I have added media to this PR or it does not require an ingame showcase.

Changelog

<!--
:cl: Errant
- tweak: Signal timers now have a maximum countdown duration, which can be specified in yaml. The default maximum is one hour, to prevent the displayed time from overflowing into hh:mm .

Seems reasonable to me


Update Source Development Kitchen components to use typography presets

What are you changing?

Updates Source Development Kitchen components to latest version of Source Foundations and replaces uses of typography API with typography presets.

Why?

The typography API is deprecated and will be removed in a future release.

Do you want to add a changeset to this one also?

Do you want to add a changeset to this one also?

I do, yes 😄 Also need to update the @guardian/source-react-components now that has been updated.


Removing messages from OME

Hi! How can we remove messages from OME-hosting servers, for example if customer request us to stop processing their data? Is there any way to delete messages so they are no longer available from the browser?

Szczegóły dokumentu
⚠ Nie edytuj tej sekcji. Jest ona wymagana dla docs.microsoft.com ➟ Dołączanie problemu w usłudze GitHub.

ID: d4c75d7b-eec1-720b-bc4d-91d3dfe72889
Version Independent ID: 0382d4b5-3fe2-f353-ce73-5d437d80b7bf
Content: Office 365 Message Encryption FAQ - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/ome-faq.md
Service: o365-seccomp
GitHub Login: @KCCross
Microsoft Alias: krowley

Hello, it is possible for Advanced Message Encryption only
Thank you

@Larryngolog - Thank you for submitting feedback.
From our understanding, the issue you raised has been answered by MaratMussabekov  so we will close this issue.
Thank you for your contribution to make the docs better! Much appreciated!


Fresh Routes still broken on Windows

I reported this first in #40
#40 says it was fixed by #64
I haven't tried Fresh since my original issue #40
I followed the docs to install latest and followed the instruction to only discover that the original issue is still there?
See below.

Installed latest on Windows
followed docs to init new  app 'my-app'
opened in  vscode
attempted to run, got ...errors...
checked the 'routes-gen.ts' file
import * as $0 from "./pagespp/pages/api/joke.ts";
import * as $1 from "./pagespp/pages/index.tsx";
import * as $2 from "./pagespp/pages/[name].tsx";

const routes = {
  pages: {
    "./pagespp/pages/api/joke.ts": $0,
    "./pagespp/pages/index.tsx": $1,
    "./pagespp/pages/[name].tsx": $2,
  },
  baseUrl: import.meta.url,
};

export default routes;

I removed all cache files, reinstalled deno, then installed Fresh.
This fixed the issue above, as now I see it is a completely different file configuration.
Now, I get the following error...
Watcher Process started.
Check file:///C:/Users/nhron/Desktop/fresh/my-app/main.ts
error: TS2304 [ERROR]: Cannot find name 'URLPattern'.
        const pattern = new URLPattern({
                            ~~~~~~~~~~
    at https://crux.land/api/get/2H5yPV.ts:145:29
Watcher Process finished. Restarting on file change...

I obviously had a stale version of fresh in my cache that was causing this issue.
I'll close this. Sorry!


Can we please have the gzip (at max compression) sizes next to the libraries?

In some cases, such as for example choosing a script based script/css loader, whichever is just smaller gzip wise is better, and right now I have to go though all of them in cdnjs, download and run gzip-size WHATEVER.js | pretty-bytes over and over. It would be nice if the max compression gzip size was there already.
Script loaders are not the only cases. For example let's say I need a date library for a specific case, I know all versions from X to Y of one I like have the feature and I don't care for anything else in the library; it makes sense to just get the smallest one, especially if later iterations just become extremely bloated in size.

cc @thomasdavis @ryankirkman

@srcspider Interesting idea. I can see it being a nice selection heuristic for most scripts that just require you to drop in a single script.
Let us have a look into it to see what we can do.

Sorry for the late reply. Not sure if I understand correctly, @srcspider did you mean that you want the libraries hosted on CDNJS can be gzipped with the largest compression level so you can have smaller files? If so, maybe we can not do that, CloudFlare is using there optimal gzip to compress the files on-the-fly, not the pre-compression, in fact, for png images, we already used the zopfli algorithm which is 100% compatible with gzip/DEFLATE but much smaller, but other files still not, maybe Cloudflare will support the next generation compreesion - Brotli in future, it'll have a better compress ratio.

And What about enabling Brotli compression?? 🤔🤔


Service analyzer improvements

Subject of the issue
The service analysis command is currently difficult to use. At the moment, I have detected the following issues:
Confusing error message
Running the service analyzer:
autonomy analyse service --public-id valory/oracle_hardhat

with consensus_threshold specified on the skill configuration, gives:
[2023-03-24 09:49:06,371][INFO] Validating service overrides
[2023-03-24 09:49:06,371][INFO] Validating (skill, valory/oracle_abci:0.1.0) from the service overrides
Error: ABCI skill validation failed; 'consensus_threshold' is a required property

That is because the service does not specify the consensus_threshold, but the message incorrectly reports that it is missing from the skill.
Configurations required in setup are reported as missing
If we go ahead and add the consensus_threshold in the service configuration, but do not place it under the setup, then it is reported as missing, instead of mentioning that the consensus_threshold was not found in the setup configuration.
Incorrectly reporting as missing
If we fix all the issues reported by the tool, then it incorrectly performs the cross-verification:
[2023-03-24 11:03:51,366][INFO] Cross verifying overrides between skill and agent
[2023-03-24 11:03:51,366][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (skill, valory/oracle_abci:0.1.0)
        Path: models
        Missing parameters: {'price_api', 'randomness_api', 'server_api'}

Too verbose
The tool is too verbose. Even though everything is correct in the configurations on price-oracle@e2519777a136213a9824bf8c6e0b96198b216945, the tool reports all the following:
[2023-03-24 11:03:51,361][INFO] Validating service overrides
[2023-03-24 11:03:51,362][INFO] Validating (skill, valory/oracle_abci:0.1.0) from the service overrides
[2023-03-24 11:03:51,362][INFO] Validating (connection, valory/ledger:0.19.0) from the service overrides
[2023-03-24 11:03:51,362][INFO] Validating agent overrides
[2023-03-24 11:03:51,362][INFO] Validating skill overrides
[2023-03-24 11:03:51,362][INFO] Cross verifying overrides between agent and service
[2023-03-24 11:03:51,363][INFO] Verifying the skill override with index 0
[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args
        Missing parameters: {'response_index'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.headers
        Missing parameters: {'$', 'c', '}', 'd', 'i', '{', 't', ':'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.parameters
        Missing parameters: {'pair', 'symbol'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args
        Missing parameters: {'tendermint_com_url', 'termination_sleep', 'reset_tendermint_after', 'multisend_address', 'validate_timeout', 'init_fallback_gas', 'tendermint_url', 'round_timeout_seconds', 'use_termination', 'max_healthcheck', 'tendermint_p2p_url'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args.setup
        Missing parameters: {'oracle_contract_address'}

[2023-03-24 11:03:51,364][INFO] Verifying the skill override with index 1
[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args
        Missing parameters: {'headers'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.parameters
        Missing parameters: {'ids', 'vs_currencies', 'symbol'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args
        Missing parameters: {'tendermint_com_url', 'termination_sleep', 'reset_tendermint_after', 'multisend_address', 'validate_timeout', 'init_fallback_gas', 'tendermint_url', 'round_timeout_seconds', 'use_termination', 'max_healthcheck', 'tendermint_p2p_url'}

[2023-03-24 11:03:51,364][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args.setup
        Missing parameters: {'oracle_contract_address'}

[2023-03-24 11:03:51,364][INFO] Verifying the skill override with index 2
[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args
        Missing parameters: {'response_index'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.headers
        Missing parameters: {'$', 'c', '}', 'd', 'i', '{', 't', ':'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.parameters
        Missing parameters: {'vs_currencies', 'ids', 'pair', 'symbol'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args
        Missing parameters: {'tendermint_com_url', 'termination_sleep', 'reset_tendermint_after', 'multisend_address', 'validate_timeout', 'init_fallback_gas', 'tendermint_url', 'round_timeout_seconds', 'use_termination', 'max_healthcheck', 'tendermint_p2p_url'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args.setup
        Missing parameters: {'oracle_contract_address'}

[2023-03-24 11:03:51,365][INFO] Verifying the skill override with index 3
[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args
        Missing parameters: {'response_index'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.headers
        Missing parameters: {'$', 'c', '}', 'd', 'i', '{', 't', ':'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.price_api.args.parameters
        Missing parameters: {'ids', 'vs_currencies', 'pair'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args
        Missing parameters: {'tendermint_com_url', 'termination_sleep', 'reset_tendermint_after', 'multisend_address', 'validate_timeout', 'init_fallback_gas', 'tendermint_url', 'round_timeout_seconds', 'use_termination', 'max_healthcheck', 'tendermint_p2p_url'}

[2023-03-24 11:03:51,365][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (service, valory/oracle_hardhat:0.1.0)
        Path: models.params.args.setup
        Missing parameters: {'oracle_contract_address'}

[2023-03-24 11:03:51,366][INFO] Cross verifying overrides between skill and agent
[2023-03-24 11:03:51,366][WARNING] (agent, valory/oracle:0.1.0) contains configuration which is missing from (skill, valory/oracle_abci:0.1.0)
        Path: models
        Missing parameters: {'price_api', 'randomness_api', 'server_api'}

[2023-03-24 11:03:51,366][WARNING] (skill, valory/oracle_abci:0.1.0) contains configuration which is missing from (agent, valory/oracle:0.1.0)
        Path: models.params.args
        Missing parameters: {'cleanup_history_depth_current', 'oracle', 'genesis_config', 'retry_attempts', 'drand_public_key', 'request_retry_delay', 'cleanup_history_depth', 'tendermint_max_retries', 'observation_aggregator_function', 'tendermint_check_sleep_delay', 'finalize_timeout', 'tx_timeout', 'history_check_timeout', 'retry_timeout', 'keeper_timeout', 'request_timeout', 'keeper_allowed_retries', 'sleep_time', 'service_id', 'max_attempts'}

Service is ready to be deployed.

This makes it extremely hard to understand if something is going wrong.
Not being able to run the command on CI defeats its purpose
We should add the tool to our workflows, otherwise, we can still end up deploying a problematic service by human error.

Another issue I just came across on the APY oracle service:
Error: Service config has an overrides which are not defined in the agent config; packages with missing overrides={PackageId(skill, valory/apy_estimation_abci:0.1.0)}

This does not report what is missing from the agent config, which ends up requiring manual investigation.
Moreover, the error says that the override is missing from the agent configuration, but the reported package is a skill. Which one is true?

Regarding the APY issue, as @angrybayblade correctly pointed, the skill override is incorrect and instead has to be:
public_id: valory/apy_estimation_chained_abci:0.1.0

Two points:

The analysis tool did not report this and failed to identify the reason. If we add this to the reported errors it is going to save a lot of time for the devs in the future.
Why did this only start failing after open-autonomy v0.10.0 release?

Warnings should be raised in cases when degenerate rounds are not chained.

[2023-04-01 21:43:14,049][INFO] Validating skill overrides
Error: ABCI skill model parameter validation failed; 'reset_pause_duration' is a required property
It's not telling me which skill...

Overall very helpful command though!

thon3.10/site-packages/aea/helpers/env_vars.py", line 144, in convert_value_str_to_type
raise KeyError(f"{type_str} is not a valid python data type")
KeyError: 'null is not a valid python data type'
This was not caught by the analyzer.

And one more that could have been spotted:
Error: Package loading error: An error occurred while loading skill valory/governatooorr_abci:0.1.0: Traceback (most recent call last):
File "/home/ubuntu/agent/vendor/valory/skills/abstract_round_abci/models.py", line 108, in _ensure
enforce(
File "/home/ubuntu/.local/lib/python3.10/site-packages/aea/exceptions.py", line 106, in enforce
raise exception_class(exception_text)
aea.exceptions.AEAEnforceError: 'use_termination' of type '<class 'bool'>' required, but it is not set in models.params.args of skill.yaml of valory/governatooorr_abci:0.1.0

All certificates have been issued.
`--aev` flag is deprecated and will be removed in v2.0.0, usage of envrionment varibales is default now.
[2023-04-02 09:48:16,379] [WARNING] [agent] The kwargs={'broadcast_to_server': False, 'history_end': None, 'observation_interval': 300} passed to params have not been set!
Error: Package loading error: An error occurred while loading skill valory/governatooorr_abci:0.1.0: Traceback (most recent call last):

  File "/home/ubuntu/agent/vendor/valory/skills/abstract_round_abci/models.py", line 342, in _ensure_setup
    check_type(key, value, type_)

  File "/home/ubuntu/agent/vendor/valory/skills/abstract_round_abci/utils.py", line 455, in check_type
    raise err

packages.valory.skills.abstract_round_abci.utils.AutonomyTypeError: Error in field 'safe_contract_address'. Expected type <class 'str'>, got <class 'list'> (value: ['0x0000000000000000000000000000000000000000'])

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "/home/ubuntu/agent/vendor/valory/skills/abstract_round_abci/models.py", line 344, in _ensure_setup
    enforce(

  File "/home/ubuntu/.local/lib/python3.10/site-packages/aea/exceptions.py", line 106, in enforce
    raise exception_class(exception_text)

aea.exceptions.AEAEnforceError: 'safe_contract_address' must be a <class 'str'>, but type <class 'list'> was found in `models.params.args.setup` of `skill.yaml` of `valory/governatooorr_abci:0.1.0`

Service analyser did not detect this:
https://github.com/valory-xyz/governatooorr/pull/14


updates to contribute page and adding validation page for feedback

Still issues with the validation page  sizing of the elements in columns. My links in the validation page to the pdf assets weren't working either

@giblet22 I suggest changing up the header image. Find something recent and put it here https://github.com/MissingMaps/missingmaps.github.io/blob/publish/app/assets/styles/_base.scss#L377

ok fixed the travis build issue. added in nvm support and upgraded to v7.


typo: misks -> disks

@nschonni : Thanks for your contribution! The author, @jboeshart, has been notified to review your proposed change.

Since the Windows and Linux articles just point to the same partial, maybe they should just be combined and redirected

Editorial fixes confirmed.


Slack doc typo?

http://airflow.readthedocs.org/en/latest/code.html#airflow.operators.SlackAPIOperator.execute

SlackAPIOperator calls will not fail even if the call is not unsuccessful. It should not prevent a DAG from completing in success

Is the double (triple?) negative a typo? If Slack is down, does this raise or continue?
Thanks!

@MaximilianR The docs need to be updated ... ill submit a PR. A dag will fail if Slack is down ... (Slack went down for us today .. I am guessing you experienced the same)

Somewhat unrelated but I had issue with their python client and submitted a PR to their repo that they merged but haven't release on Pypi yet...
PR here:
https://github.com/slackhq/python-slackclient/pull/48
I thought everyone would have had the same issue we had, didn't you?

@mistercrunch we have not encountered this issue. I will try to replicate though.

Which version of Airflow and the Slack client are you running?

Gone through all versions of Airflow and currently using slackclient (0.16)

Interesting, I'm not sure why we hit an error and you don't... You may want to try their trunk (branch master) and make sure it doesn't break your stuff.

Just to clarify: Right now python-slackclient don't try to catch http failures so the exception should just bubble up. Is this not working properly for you somewhere?

if issue persists please create Jira.


fix(PowerAutomate): Re-initialize connectorId on fetching operation manifest if it has changed

Please check if the PR fulfills these requirements

[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
We have some connectors that build on top of other connectors, eg. AI Builder connector is actually a CDS connector and overrides icon/display information to appear different. To make AIB actions show in a different group from CDS ones in search service, the connectorId is set to "aibuilder" when search service fetches AIB actions. On adding these actions to the flow, the re-fetched operation manifest gets CDS connectorId to fetch dynamic data and to use connections appropriately. However, operationInfo is only initialized once based on the connectorId fetched from search service, so our dynamic calls fail for the AIB actions (since it retrieves aibuilder instead of CDS connectorId). This change re-initializes operationInfo on fetching manifest if connectorId has changed.

What is the current behavior? (You can also link to an open issue here)
Fetched connectorId for some connectors is different during search and during operation use (add/edit/save). ConnectorId is only initialized once through initializeOperationInfo based on value fetched from search service operation. Due to this, dynamic calls fail since the connectorId needs to be different (but isn't) on fetching operation manifest and initializing operation.

What is the new behavior (if this is a feature change)?
OperationInfo is re-initialized after fetching operation manifest if connectorId has changed. This stores the correct connectorId from operationmanifest in the redux store instead of keeping the one from search service operation. Dynamic calls and operation initialization succeeds.

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Please Include Screenshots or Videos of the intended change:

As per latest discussion, the changes will be made in host service and in the connector.


done the required changes

Please accept this pull request and merge this in main branch

Sorry, could you mention the issue number that was assigned to you.

Please accept my pull request

sorry there's already a person who was assigned this issue. And fret not. If we don't get any pull request from that person by tom. We'll merge this up. But before that could you update ur repo. Cause there might be conflicts.

Sorry bud, we got the pull request already. Fret not we'll have many issues comin up.


feat: extended applyToEnvironment and perEnvironmentPlugin

Description
Start from this discussion for reference.
We need to allow users to use plugins that aren't prepared to be run concurrently for multiple environments (many rollup build plugins for example, that keep cross hooks state). This was easy with some of the previous iterations of the Environment API (for example when we could pass functional plugins, or when we had the environmentPlugins hook that added plugins after the current one).
This PR proposes an extension to the current design that I think feels more integrated. The applyToEnvironment hook currently only returns a boolean to decide if a plugin is active or not in an environment. The idea is to also allow return PluginOption from it, in which case, this plugins are used instead.
applyToEnvironment: (environment) => boolean | Promise<boolean> | PluginOption

We could make the PluginOption more strict, but I don't know if it is worthy.
The returned plugins are inserted replacing the current plugin. enforce will be ignored. If a user would like to rearrange them, they can use per hook order or a enforce in the plugin that has the applyToEnvironment.
We also ignore the config, configEnvironment, configureServer, configResolved hooks because these have already been called when applyToEnvironment is run.
We also ignore applyToEnvironment in these.
I took the opportunity to also allow this hook to be async.
There is also a new perEnvironmentPlugin helper (the makeEnvironmentAwarePlugin that @sapphi-red proposed).
With this PR, we can also remove two TODOs and support per-environment build.commonjsOptions and build.rollupOptions.plugins.
I renamed usePerEnvironmentState to perEnvironmentState and also expose it.

One thing to note about this design is that applyToEnvironment is resolved after the environment instance is created. This makes it easier to use the resolved environment.config to configure the per-environment plugins.
As I said in the description, with this approach, you can't return any kind of plugin from applyToEnvironment. The config, configEnvironment, configureServer, configResolved hooks won't be called. All rollup plugins would be ok, but a lot of Vite plugins that aren't environment aware won't work when used with this function.
If we want to support any non-environment-aware vite plugin, that could be done by adding several of them in the root plugins, each with applyToEnvironment(env) { return env.name === env_name }. This is easy to do if an app has two or three known environments. But doing it with a helper in a generic way is tricky. The problem is that we need to first call config in all plugins to know all environments. Maybe we could do that, then we can call a perEnvironment hook that returns a PluginOption:
  plugins: [
    {
      name: 'per-environment-plugin',
      perEnvironment(environment: PartialEnvironment) {
        // use environment.config if needed
        return nonShareableVitePlugin()
      }
    }
  ]

These could get config called after all other plugins (because we first need to know the names of all environments), and could get configEnvironment, and configResolved (configureServer also?).
We have two options to implement this:

All these plugins will be added to the main pipeline with the correct applyToEnvironment that returns true only for the correct environment.
We refactor the environment plugins init so it happens right after config has been called for all plugins, instead of doing it after creating the Environment instance.

Actually, if we do 2, then this hook could be directly applyToEnvironment, taking a PartialEnvironment and that would mean that we can have the API in this PR, but also be able to use it for non-environment aware vite plugins.
I'll make this PR a draft and try to do the refactoring so we can discuss with something concrete in the table.

We refactor the environment plugins init so it happens right after config has been called for all plugins, instead of doing it after creating the Environment instance.

I tried to implement this, but it doesn't work. If we call config and configEnvironment hooks in the plugins returned by applyToEnvironment(), then there are edge cases all around. We are using applyToEnvironment: environment => environment.config.xxx in some of our internal plugins for example. These conditions start depending on where the plugin is in the pipeline if the newly added plugins can further change the configuration. And if we call these hooks after all others, then the changed config will not have an effect over applyToEnvironment().
This is similar to why we never wanted to allow plugins to return other plugins in the config phase in a sense. So I think we should have clean phases:
config -> configEnvironment -> applyToEnvironment -> configResolved
applyToEnvironment receives the resolved config, and can decide what plugins to return based on the final configuration. Plugins returned from applyToEnvironment won't be able to re-configure the app.
Ideally, we should move applyToEnvironment to the config resolution phase and change the signature to take a PartialEnvironment. There is a problem with doing this right now if we don't use a shared config during build. To do it cleanly, we would end up resolving the plugins for all environments every time that we resolve the config (and during build, this happens once per environment). So we may need to accept that applyToEnvironment is called at Environment init to avoid this for now. We could already change the signature to be PartialEnvironment so we can later on refactor things to be clean if shared config is the default at one point. I think we can move forward with this PR, or the discussions related to it, and do these changes in other PRs.

Taking a step back, does it make sense to ditch extending applyToEnvironment, and introduce perEnvironmentPlugin instead? Or a step further, keeping things as is and only introducing supporting functions in plugins?
For example:
export default defineConfig({
  plugins: [
    // create a new plugin per environment. do we need to pass the environment name?
    // i think they can already retrieve that information from `this.environment`?
    // these kinds of plugins likely wouldn't care about environments if needed. if they did,
    // they could directly support shared instance in environments in vite instead
    () => nonSharedPlugin()
  ]
})

I think we've discussed this before in the past, and maybe it is the easier way to solve this problem. Maybe only enabling this behaviour if sharedConfigBuild before processing plugins.
If we don't want to plainly support functions (which could be (ab)use by third-party plugins), we could have perEnvironmentPlugin(() => nonSharedPlugin()) that labels it so it only works with that API.

I really like the idea of having functional plugins. They are the most ergonomic way to do per-environment plugins, by a fair margin. We implemented it and later on decided to remove because:

It could introduce breaking changes. There are plugins that are filtering config.plugins and expect all of them to be an object. Maybe we could accept these though and ask the ecosystem to adapt.
Functions don't let us add modifiers. For example, we can no longer have a name, the enforce, apply, etc, or later on other per-plugin option flags like the ones we have added in Vite 6. When we implemented it, we actually allowed these modifiers, by letting the user add the props to the function. The types work, and it is an option. We could also decide that enforce is no longer needed because we have order in hooks now.
I think the most important reason was that we didn't want to make it so easy to have per-environment plugins. We wanted to try to keep all plugins being shared in a unified pipeline. This PR changes that... so maybe you have a good point that we should re-evaluate.

I can work on a PR to see how functional plugins would look like with the current state of Vite 6. We would need to keep applyToEnvironment() => boolean too.

Ah, if we want to be able to use these plugins internally, that would be a breaking change as everybody will see functional plugins in their pipeline (for example if we want to add environment => environment.config.build.rollupOptions.plugins). If we go with functional plugins, one option would be to do a similar trick to what @sapphi-red did in rolldown/vite and have a internal-only way to add an object plugin that works like a functional plugin.

@bluwy I started implementing functional plugins, but I think it is easier to just check the implementation change from functional to environmentPlugins here:

https://github.com/vitejs/vite/pull/16732

I don't think we should go with functional plugins. If you check the PR, the types for PluginOption become more difficult and working with the array more cumbersome. But above this (and the potential extra breaking changes), we would be adding an easy way to do something we don't want people to do. I think we should go with the extended applyToEnvironment as proposed in this PR for Vite 6.

Pushed refactor: use PartialEnvironment in applyToEnvironmnet, so even without a refactoring, we are opening the door to move the applyToEnvironment hook call during the config resolution phase. The idea is that users shouldn't rely on the final Environment instance (or modify it, etc)
Also after feat: call configResolved hook on new plugins, the plugins returned from applyToEnvironment will get their configResolved hook called. I think this is important as it is a very common pattern to use this hook to cache the config (pre this.environment era).
I'm not sure if we should add support for this plugins to use configureServer. I think we can wait until someone gives us a good use case for that.

After further thought about this, I think your implementation still seem to be the best middleground. However, personally, I wouldn't support configResolved. Maybe we should highlight which hooks do not run for now, and then have users requesting certain hook support later if they need it?
I also think still that we should probably avoid supporting returning plugins from applyToEnvironment, at least hide it from the types. It feels to me that it's plugin author facing (which they should've refactored to be environment aware first), and it could be abused to return plugins unrelated to environments purposes.

However, personally, I wouldn't support configResolved. Maybe we should highlight which hooks do not run for now, and then have users requesting certain hook support later if they need it?

I think we need this hook. I agree with the sentiment (regarding other hooks like configureServer), but configResolved is the way to access configuration from plugins. I think we need to support this one from the start. The hook is experimental so we can later change it if we discover issues. For example, one possible problem could be if the same plugin is returned for several environments but I don't see why someone would do that.

I also think still that we should probably avoid supporting returning plugins from applyToEnvironment, at least hide it from the types. It feels to me that it's plugin author facing (which they should've refactored to be environment aware first), and it could be abused to return plugins unrelated to environments purposes.

The current applyToEnvironment() => boolean is also intended for final users as much as plugin authors. The idea is that they would add it as enforce:
{ ...plugin, applyToEnvironment(environment) => environment.config.foo }

So I think adding PluginOption changes the equation here. If we want to simplify this, maybe we could change the hook to just be swap(environment) => PluginOption. PluginOption also allows for falsy values, so maybe this is a simpler definition and nicer to use:
{ ...plugin, branch(environment) => environment.config.foo }

and
{
  name: 'per-environment-rollup-plugins',
  branch(environment) => environment.build.rollupOptions.plugins
}

Or other names like spread, swap, switch, substitute (rollup hooks are normally a single word, applyToEnvironment(environment) => environment... is a mouthful so I would be happy to find a better name).

I wouldn't support configResolved personally. I thought perEnvironmentPlugin was to give users a escape hatch to use (non environment-aware) rollup plugins. If the plugin author is happy to make the plugin Vite-friendly (like using configResolved hook and tweaking the behavior), then I think the plugin should be environment-aware.

Ok, I reverted the last commit, so configResolved isn't called now. I still think this is useful, but we can always add it later once we have more concrete use cases to justify it.

So I think adding PluginOption changes the equation here. If we want to simplify this, maybe we could change the hook to just be swap(environment) => PluginOption.

I'm thinking that we should disallow any way for plugins to add plugins in the first place, or at least not make it easy to do so. Regardless if it's exposed via applyToEnvironment or apply, I was thinking like what sapphi mentioned above, the API is only an escape hatch for non-env-aware-cache plugins, that would usually be applied from the end-user side.
If we make it part of the hooks, it makes it easy to use the escape hatch when instead what they should really do is to use the perEnvironmentState utility or refactor in some way to not tie to that. In any ways, that plugin library or its users could always use the perEnvironmentPlugin utility to patch things while the proper work is being done.
To be clear in case it got confusing, I think applyToEnvironment: () => boolean and perEnvironmentPlugin() makes sense, but not applyToEnvironment: () => PluginOptions for me. We could support that as an implementation detail, but not as public API.

Would you like to discuss this in the next Vite team meeting? If not, I think we could move forward with it

I'm ok with merging if we remove the types for returning plugins in applyToEnvironment, otherwise we can discuss this in the next team meeting or chat.

I think we shouldn't have only the helper function. We should follow the standard way hooks work in Rollup. We can discuss tomorrow then.


Do not render empty comments

Follow #28654
The comments might be empty, so the templates shouldn't (and couldn't) use it to render. When there is no comment, the UI should also be updated to empty, so returning an empty body is good enough.

And record a discussion from #28949 :

But the experience is very odd when I click the resolve the conversation and then the comment disapeared.

Even if it doesn't disappear by clicking "resolve the conversation", it would also disappear when you refresh the page.
Indeed it is a design problem. Maybe it should tell the user that "The outdated comment won't show" on the UI.

Note: I am commenting on my own initiative. Opinions expressed here are strictly mine.
Until now I think that my interactions with you were normal (not particularly friendly, but not harmful either). However I found your latest messages on my PR to be quite aggressive.  Even if I am, it would be appreciated if you formulated it nicely. For instance: “I think this fix is incomplete “ or “All cases are likely not being covered” (showing that the PR has some justification, but could be improved)
not helpful: you mentioned what was “not right” in a later message by laconically writing “missed a "origin" case” but not clearly stating what could be improved

Notice that in my messages, I tried to apply such principles:

Not harsh: “I believe that…”, “I am not sure..” (I didn’t wrote plainly “right” or “wrong” and I tried to let room for doubt, that I might be wrong)
Helpful: I tried to document the differences: “Returning an empty response (as upstream does) makes …”

I find your last sentence quite ironic:

I would suggest you not to follow Gitea's change because you believe you are right

The two parts of the sentence (before and after “because”) don’t have much to do with one another. And ironically you are the one who initially looked at my PR (“follow”) and believe that you are right (by writing plainly “fix is not right” twice).
Since you are talking about Gitea, I took the liberty of writing here and I will finish by quoting the Code of conduct of the Gitea Community (the interaction did not occur within the Gitea spaces, but anyway):

The Gitea contributors are committed to providing a friendly, safe and welcoming environment for all

I didn’t find the messages to be friendly or welcoming.

people with different social values and communication styles can talk about Gitea effectively, productively, and respectfully.

This interaction didn’t feel effective, productive or respectful…
I tried to give some concrete suggestions in the beginning of my message so that future interactions could be better aligned with those principles. If you intent to interact with me, I hope that you can take those suggestions into account.

You see, in your space, the first comment is "ps: the fix is not right ....",  the reason that I didn't say more is: because what I say there, I will be banned again immediately, what I say will be lost and waste time.
In Gitea space, I always review your PRs respectfully / productively / productively.

I think such discussion here is off-topic so this issue will be locked. I will also post this content into the original issue in your space, let's discuss it where it happened.


rewrite application update method

Current coverage is 63.37% (diff: 100%)

Merging #19 into master will decrease coverage by 1.85%

@@             master        #19   diff @@
==========================================
  Files            19         19
  Lines          1093       1368   +275
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            713        867   +154
- Misses          294        414   +120
- Partials         86         87     +1

Powered by Codecov. Last update 21ea507...10cd013


发布到 Maven Central

尽管 Mirai 主体已经发布到 Maven Central，但依赖项 kotlin-jvm-blocking-bridge 仍然是 JCenter-only 的
如果只使用 Maven Central，引用 Mirai 将出现错误

Could not find net.mamoe:kotlin-jvm-blocking-bridge:1.7.4.

Related:
mamoe/mirai#970
mamoe/mirai#981

Thank you for the reminder. Kotlin JVM Blocking Bridge is more complex to be published. It's on the schedule.

Kotlin JVM Blocking Bridge may be used internationally, so I will translate your issue into English. Thanks for understanding.


cellular processes in GO

Currently in GO the definition of a cellular process is quite fuzzy:
Any process that is carried out at the cellular level, but not necessarily restricted to a single cell. For example, cell communication occurs among more than one cell, but occurs at the cellular level.
This definition makes it very difficult to formalize the meaning of this term and historically we have not necessarily created cellular versions of every process in GO and we have not always created generic processes for their cellular counterparts. This has become problematic over time. Most recently discussed in this ticket, #12721
There have been at least two proposals about how to deal with cellular processes which should be discussed.

The distinction is not very relevant and we should merge the cellular terms into their generic parents. For those that do not have generic parents, change the terms to be more generic. This would mean that users will no longer be able to distinguish cellular from other levels of granularity. We have heard from at least a few users that they would like to be able to distinguish at this level.
Make the distinction explicit. Define 'cellular process' as a process that occurs in a cell. This means that things like cell-cell communication, synaptic transmission etc would no longer be cellular processes. This split would be similar to the split between single-organism processes and multi-organism processes, however would not give us an advantage of adding a disjoint relation because some organisms are single cells.

Tagging for further comment.
@cmungall @hdrabkin @ukemi @dosumis @paolaroncaglia @mcourtot @tberardini @thomaspd @balhoff

"cell-cell communication, synaptic transmission"
But I would imagine that some parts of these processes are in fact cellular?

But I would imagine that some parts of these processes are in fact cellular?

Some parts occur in cells.  But that's true of most BPs.  I doubt that neurobiologists would care much or even notice if we don't classify synaptic transmission as 'cellular'.

One possible issue for occurs_in : import into cells - starts on the outside.  Some of our axiomatization makes this explicit.  Another possibility, reasonable clear but harder to axiomatize:
A process occurring in or involving exactly one cell.

Is there a way to express the cardinality of only one cell?

Some parts occur in cells. But that's true of most BPs. I doubt
that neurobiologists would care much or even notice if we don't
classify synaptic transmission as 'cellular'.

I doubt most biologists of type X would care if we placed their terms
under high-level grouping class Y
That's not the use case. I'm not entirely sure what the use case for
having the term at all is. The only one I have gathered is the paint
use case. And here it would be bad to not have synaptic transmission
under CP.
Everyone should add use cases here:
https://docs.google.com/document/d/1QpfUY_LgeIryMj6EEAE05FXLE_894GalkerBU8dMuVU/edit#
I also just think it would be bonkers not to have ST under CP. IANAB but
seems massively unintuitive.

Is there a way to express the cardinality of only one cell?

Yes, in full DL, would not classify in Elk, and I don't think we can use
the ELshunt pattern
But I think this is going down the wrong path anyway. See the doc.

@cmungall can you point me to the "ELshunt pattern"? I couldn't find anything relevant with Google.

@cmungall can you point me to the "ELshunt pattern"? I couldn't find
anything relevant with Google.

Example here:
https://github.com/pato-ontology/pato/blob/master/src/ontology/pato_ext_notes.md

See https://docs.google.com/document/d/1QpfUY_LgeIryMj6EEAE05FXLE_894GalkerBU8dMuVU/edit#

There have been at least two proposals about how to deal with cellular processes which should be discussed.

There is actually another possibility.

Merge cellular X -> X
Keep a high level CP class, define according to the doc (intuitively: something that can be represented in a LEGO model)
Manually classify a handful of high level GO processes here: metabolism, ....

We discussed on ontology call, and we'd propose that cellular process (maybe clearer to rename it "cellular-level process" to distinguish from multicellular organism-level process) include both intracellular and intercellular processes.  We don't need to add sub-classes for intracellular and intercellular processes, for the time being.  But we can accept Chris's suggestion immediately above.

So I will rename the term. Do we want to do the merges as Chris suggests above? If we do that, very few classes will be at a cellular level. Clearly metabolism won't be one of them, but things like cell adhesion and cell-cell signaling will.

There is actually another possibility.

Merge cellular X -> X
Keep a high level CP class, define according to the doc (intuitively: something that can be > represented in a LEGO model)

??? Are there granularity limits to what we can put in a LEGO model?

Manually classify a handful of high level GO processes here: metabolism,

I predict TPV problems re-emerging regularly.   Maybe OK if we can rely on Val to be semi-automated TPV detector?

On 8 Dec 2016, at 9:57, David Hill wrote:

So I will rename the term. Do we want to do the merges as Chris
suggests above? If we do that, very few classes will be at a cellular
level. Clearly metabolism won't be one of them, but things like cell
adhesion and cell-cell signaling will.

This isn't the essence of my proposal. High level terms such as
metabolism would be manually placed under CP. I would argue all
metabolism is cellular.
This is inseparable from a larger refactor of the upper part of BP,
which I think is in order. Not ready to file a ticket for this yet, but
started fleshing this out here:
https://gist.github.com/cmungall/4ed28123c3db832a7d99cbdd8e8a5920

On 8 Dec 2016, at 12:31, David Osumi-Sutherland wrote:

There is actually another possibility.

Merge cellular X -> X
Keep a high level CP class, define according to the doc (intuitively:
something that can be > represented in a LEGO model)

??? Are there granularity limits to what we can put in a LEGO model?

You're quite right, we could use Noctua to connect together immune cells
to make a model of the immune system. I meant 'what we currently do in
LEGO models' but I admit this is not a good long term definition.
A better formulation would be a process that can be dissected into the
actions of molecules and cell parts.

Manually classify a handful of high level GO processes here:
metabolism,

I predict TPV problems re-emerging regularly.   Maybe OK if we can
rely on Val to be semi-automated TPV detector?

My intuition is that this can be avoided, and we can even have
disjointness axioms to help us (of course, we would still have part-of
cross-granular relationships).

I'm with Chris here. There should be a way to  define all  metabolism as cellular (I was trying to say this unsuccessfully in the previous ticket).
We know there are cases, like Peter's amino acid-liver example, where different cells perform part of a process at a tissue level. However, there is something fundamentally different about these processes which  occur at the level of a single cell, and a process like behavior or development which clearly has parts which don't happen at a cellular level. I think we still haven't hit on the criteria   to make this  clear.
@ukemi  do you have an example of a specific metabolism annotation which you think would seem odd annotated as a cell level process? Perhaps a hormone regulating a metabolic process (this still exerts it's effect in single cells so I wouldn't have a problem with this being cellular). Identifying some of the particular annotations of concern might help with the differentia for cell level.

Based on the eventual def, do you think that "protein localization" is also always a cellular process? can you think of any exceptions?
I also have a request. If we end up merging the  any cellular/non-cellular terms, can we keep the more specific cellular term ID (not a problem if we can't but lots of our internal QC checks and curation config files are pinned to cellular terms).

Hi @ValWood,
Re. “I also have a request. If we end up merging the any cellular/non-cellular terms, can we keep the more specific cellular term ID (not a problem if we can't but lots of our internal QC checks and curation config files are pinned to cellular terms).”
Unfortunately, in the very recent past merging terms and keeping the ID that should become secondary resulted in a Pandora’s box of downstream issues for various MODs (see https://github.com/geneontology/go-ontology/issues/12729 and https://github.com/geneontology/go-ontology/issues/12765 and). So I’m afraid we wouldn’t want to do that. Perhaps you could consider updating the PomBase internal QC checks and curation config files instead please, if we do go the merge route?

OK, we can do that, but we will need a list of  all the merges posting here (probably should go to the  GO list anyway as its a big change, whatever the resolution).
Although if the cellular distinction is preserved, the  cellular and non-cellular term for most merges will have equivalent intended meaning, so the ID which is kept should be arbitrary?
https://github.com/pombase/curation/issues/1221
https://github.com/pombase/canto/issues/1292#issuecomment-266306511

@ValWood the issues were stemming exactly from keeping what should have been the secondary ID - in this sense, it is not arbitrary which ID we keep.
And yes, editors normally record details of merges on tickets. In this case, it might be advisable to copy the entire diff or save it as a file and attach it here (one can link to the online svn diffs, but they're usually very slow in loading).

So are you saying that you no longer have secondary ID's? If so I totally missed that

We do continue to keep secondary IDs :-)

I'll be more precise: "so the ID which is kept should be arbitrary?" the ID which should be kept as primary is not arbitrary, and should be the one of the broader term; the ID of the narrower term, that will be merged into the broader term, will be kept as the secondary ID.

got it. although in the case of a merge they are presumably equivalent, so I don't fully understand it, but I will take your word for it;)

@jimhu-tamu

I would like to make some more progress on this.
Summarizing some previous docs

google document outlining need
outline of plan: https://gist.github.com/cmungall/4ed28123c3db832a7d99cbdd8e8a5920
my slides from Corvalis 28-37

I added this to the next ontology editors call.


Add support for multiple timezones in Datetime Logical Type

As a user of Woodwork, my data could have multiple timezones in 1 datetime column.
For example, a column could be Uber pickup datetimes (picked up in ET and PT).

This needs further investigation, but conversion of a column with multiple timezones to datetime64[ns] could prove to be problematic:
import pandas as pd

mixed_tz_series = pd.Series([
    pd.to_datetime("2018-03-01").tz_localize(tz="US/Pacific"),
    pd.to_datetime("2018-03-01").tz_localize(tz="US/Central"),
    pd.to_datetime("2018-03-01").tz_localize(tz="Europe/Vienna"),
])

mixed_tz_series.astype("datetime64[ns]")

ValueError: Tz-aware datetime.datetime cannot be converted to datetime64 unless utc=True

You can have a series of datetimes with different timezones if the series dtype is object.

Related pandas issue: https://github.com/pandas-dev/pandas/issues/46998


Move ConversationalMemoryClient to ml-client

As suggested in #1275, this client, which is currently only used by the RAG pipeline, can move to opensearch-ml-client so that it can be used by other applications.
@jngz-es @dhrubo-os do you guys think this should be merged with MachineLearningClient or are you thinking of a separate client.  By the way, MachineLearningClient currently gets built as a shadow jar and it is not meant for internal use.  The main thing I want to discuss here is whether or not we should have an external version of this memory client that makes it easy for applications to interact with memory.
Related: #1150

@minalsha @dbwiddis

Thanks @austintlee for tagging us to the issue. We really need to get this available to AI-Workflow soon. Can you please share an ETA for this work? Thank You

@jngz-es Given that the Memory API is still behind a feature flag (still an experimental feature), do you think it is OK to put them in the (external) client?  Also, if we want to move them into the ml client, do you think we can still make 2.11?
cc: @ylwu-amzn

^^ What PR #1417 does for this:

creates a new MemoryClient object accessed from the MLClient by mlClient.memory()
This memory client has the conversation memory APIs - createConversation, createInteraction, getConversations, getInteractions, deleteConversation
Use them by passing in the request objects, i.e. memoryClient.createConversation(new CreateConversationRequest()); this introduces a dependency on the opensearch-ml-memory subproject.

Essentially, it's just an extremely thin wrapper around Client.execute().
Questions:

should the memory client be its own "sub-client"? Instead we could simply put the APIs in the MLClient directly.
is this additional subproject dependency ok? Instead we would move the conversation transport request and response classes to opensearch-ml-common, which maybe we should do anyway.
are these the APIs we want to expose in the memory client? As I understand, there's work being done to create more complicated memory structures on top of the basic conversation memory, so we should be able to include those too, right? What do those APIs look like?

@jngz-es @ylwu-amzn @minalsha

@HenryL27 , for your questions

Let's put the APIs in the MLClient for now. I approved you PR.
I think we can move all the memory requests/response in the ml-common repo, which is consistent with all other transport APIs.
Let's merge the current APIs and add more incrementally. There are more APIs like search, update, and delete on the way.
This may introduce too much work in the ml-common. the opensearch-ml-common should be a fairly simple and small dependency that to be consumed by other apps.

@HenryL27 @Zhangxunmt what's the status of this issue?


Added Arabic language files

Complete translation of the language files to Arabic ..
Thanks to the old translation done by @mbdwey which helped me alot

Thanks for this.
I'm just not sure how to handle the default Laravel translations. @marktopper @fletch3555 any idea?
I'll merge this later when we find a solution for that.

I will go through this today and ensure that the translations work.

@MujtabaFR: Why have you added the auth.php, pagination.php, passwords.php and validation.php files?

@marktopper: I thought the translation of these files may be helpful, but I'm not sure if you want that or not.
I've tested the translated auth.php, passwords.php files at the login page and they were working fine

If we ship those files (auth, pagination, passwords, ...), then we should ship other languages as well.

Actually the files auth.php, pagination.php and passwords.php are useful and pretty easy to translate.
Only the file validation.php is large and not that useful to be translated.
Please do what's better for you, either skip the files, or ship them and wait the other languages to follow later

Please skip them, instead people can use this package to get the default Laravel language strings in their language.
https://github.com/caouecs/Laravel-lang

Ok @marktopper
Actually I didn't know that they were default Laravel files, and already translated .
Sorry for this misunderstanding and hope you mention the Laravel lang link in the documentation later so it will be clear for people how to properly translate there website
Now would you like me to delete the files auth.php, pagination.php, passwords.php and validation.php from the pull request ?

It is okay, I'm just glad you translated the voyager.php file.
Yes, please remove the other files from the pull request.
And sure, I will make sure to mention that link in the documentation, working on the translation/i18n/multi-lingual documentation as we speak.

Deleted them 👍

Thanks 👍

@marktopper Thanks


Logit Bias for exllamav2/tabbyapi

Is there any chance for Logit Bias to be implemented for a backend that runs exl2 models?
I would love to use Mikupad, but my preferred format is exl2, and there's no Logit Bias option for these backends that I can find.

It's now implemented as of commit https://github.com/lmg-anon/mikupad/commit/f63594a9d65d3f57ce8d948e697496ce0eac1981!

Thank you very much, and I really appreciate the quick implementation!


Regex unicode categories cause RangeError: Maximum call stack size exceeded

Unicode categories such as \p{L} or \p{P} cause RangeError: Maximum call stack size exceeded
Tested on Chrome 103.0.5060.134 and Edge 103.0.1264.71

I'm having the same issue using the regex: "[0-9]*" with greedy set to true. Greedy false seems to work fine.

@Skipperwastaken ,
Support for unicode categories is added.
See v5.0.8-beta.41


detectHotReloading before load webpack.mix.js

at webpack.mix.js
if (!mix.config.hmr) { // set configuration after detectHoreloading
    mix.webpackConfig({
        output: {
            publicPath: '', //  dynamic set __webpack_public_path_
            chunkFilename: 'js/[id]' + (mix.config.versioning ? '.[chunkhash]' : '') + '.js' // chunk js
        }
    })
}

What's your question again?

mix.config.hmr is false in webpack.mix.js,
because Mix.detectHotReloading() run after webpack.mix.js.
initialize(rootPath = '') {
        if (rootPath) this.Paths.setRootPath(rootPath);

        if (this.isUsingLaravel()) this.publicPath = 'public';

        // This is where we load the user's webpack.mix.js config.
        if (this.File.exists(this.Paths.mix() + '.js')) {
            require(this.Paths.mix());
        }

        this.manifest = new Manifest(
            path.join(this.publicPath, 'mix-manifest.json')
        ).listen(this.events);

        if (this.concat.any()) this.concat.watch();

        if (this.versioning) this.enableVersioning();

        this.detectHotReloading(); // after run webpack.mix.js,
    }

i want use mix.config.hmr that i can do some configuration in webpack.mix.js.
can we detect before run webpack.mix.js?

I also need this, as my copying images fails when running hmr

Mix hasn't been fully initialized at the time you check for mix.config.hmr, so you shouldn't do that.


azcopy on Linux, install is not as easy as potato.

Per the section at the beginning:

Installing AzCopy on Linux (v7.2 or later) is as easy as extracting a tar package and running the install script.

I was trying to install azcopy following the simple 3 lines instruction, into a Ubuntu 16.04 container, it seems too much was assumed to be around, in order to get azcopy installed and able to work:
apt update; apt upgrade -y
apt install wget rsync libunwind-dev libicu-dev

These commands need to be run before your 3 lines.
p.s. Why not package the azcopy binary into a single standalone executable with corert toolchain?

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

ID: e224df65-311e-166c-caff-918f47ad2f57
Version Independent ID: 21914f58-1720-39d9-acb7-ed8475cab9d4
Content: Copy or move data to Azure Storage with AzCopy on Linux
Content Source: articles/storage/common/storage-use-azcopy-linux.md
Service: storage
GitHub Login: @seguler
Microsoft Alias: seguler

Thanks for your feedback. Please upgrade to AzCopy v10 which is a single executable and does no longer require installation.
If you have any other feedback on AzCopy, please raise an issue at https://github.com/azure/azure-storage-azcopy

#please-close


fix docs: sessionPerBrowser -> sessionsPerBrowser

This typo makes it to find sessionsPerBrowser docs by browser search.

tnx!


bash: jenv: command not found in gitbash

It works fine when I use command prompt but in git bash I get below error:-
bash: jenv: command not found

This is a windows script. For linux bash I suggest to take a look at jenv.be.


TrueTypeParser Close Open Fonts

The TrueTypeParser opens fonts during parsing, however it never closes
these resources. This causes a slow file handle leak that causes
problems when processing large amounts of fonts.
This change wraps the font resource in a try-finally block to ensure
that the resource is closed after parsing has occurred.

I'm not sure if it'd be easy to do, but if you could come up with a unit test for this (failing on Tika trunk/master, passing with your patch applied), that'd be great to ensure we don't accidentally break it again at some point in the future!

I added a unit test that is able to reproduce the leak. I wouldn't necessarily suggest merging the test into master. It only works (tests anything) on unix systems, it will run on other systems.
As you said the issue is hard to test, being that is caused by the RAFDataStream in the FontBox library never being closed and there is no easy was to programmatically see which files the JVM has open.

@Gagravarr sorry for not waiting for you to take this.  I wanted to make sure to get it in before 1.15.
@icirellik thank you for this PR!  I followed your recommendation to remove the unit test.  We can add it back later if fellow devs want it.  Again, many thanks!

I opened https://issues.apache.org/jira/browse/TIKA-2370 to track this on our JIRA.


Fix u64 overflow when decoding

I have a scenario where I need to test an ID not knowing before hand if is a valid Sqid or not, and, in some cases when an ID looks valid, but results in elements bigger than the maximum u64 value, the decode() function panics! For example, with the ID 0J4AEXRN106Z0.
To fix this I made to_number() return an Option<u64> (instead of just u64), and only push the value on decode() in case of Some().
By the way, I’m adding support to Sqids to an upcoming version of my ID parser/debug CLI tool, have a look: https://github.com/racum/uuinfo

Wow, good job catching a panic, and thanks for all the changes! Also, thanks for adding sqids to uuinfo.
I've pushed a few cleanup items, thoughts?

Cool, I didn't know the checked_* operations, I think I need to read some std docs! :)
All looks good! 🚀


Update composer add support of PHP 5.6

This PR just add support of PHP 5.6 in composer.
Thanks for your work !

This is not needed as ^5.5means >=5.5.0 <6.0.0 See https://getcomposer.org/doc/articles/versions.md#caret-version-range-.

Ok sorry you're right. I had an installation problem, but that was something else !
Thank you !