Report soyo inverter status

Hi all
I use Esp-Soyosource-Controller in order to control 2 soyosource inverters with input from shelly3 em. I already made DBUS aware of the AC input for L1-3. Now I also would like to register both soyos (running on L1 and L2) as inverter/pvinverter via opendtu. The config.ini is set to use only templates and the respective config part looks like this:
Username =
Password =
DigestAuth = False
Host=192.168.x.y
CUST_SN = 12345678
CUST_API_PATH= data
CUST_POLLING = 2000
CUST_Total= none
CUST_Total_Mult = 1
CUST_Power= /WattsOut
CUST_Power_Mult = 1
CUST_Voltage=  none
CUST_Current=  none
Phase=L1
DeviceInstance=47
AcPosition=1
Name= Soyo1
Servicename=com.victronenergy.pvinverter

The idea is to use the json returned when calling 192.168.x.y/data
The json looks like
{ "L1L2L3" : "-4.51" , "ControllerName" : "SOYOSOURCE Controller" , "StartTime" : "Thu Jun 15 12:27:10 2023" , "NotAus" : "0" , "WaitSekunden" : "2" , "MaxPower" : "1000" , "SoyoCount" : "2" , "DCAmps" : "S>1" , "DCVolts" : "S>1" , "DCWatts" : "S>1" , "WattsOut" : "144"}
WattsOut carries the needed information. However, when I try to use CUST_Power= /WattsOut in the config, the received value is 0. The device is successfully registered with victron dbus but V/A/W value are all zero. But I would expect that due to setting of CUST_Power that I should see 144W in the victron console or the dashboard. If I ommit the leading slash (CUST_Power= WattsOut) it does not work at all. Could it be that the parser expects a nested structure and cannot use top level entries of the json?
Do you have any suggestion as of how to achieve what I am aming for?
Thank you
Gregor

let me check the code, yes I think we need a nested one...

Please try CUST_Power=WattsOut no space please. It should work:
>>> CUST_Power='WattsOut'
>>> CUST_Power.split("/")
['WattsOut']
>>> CUST_Power=' WattsOut'
>>> CUST_Power.split("/")
[' WattsOut']
>>>

Good idea! But unfortunately, it still does not work.
# Number ob Template Inverter to query
NumberOfTemplates=1

# Which DTU to be used ahoy, opendtu, template
DTU=template

[TEMPLATE0]
## Tasmota Example
##
## Username/Password leave empty if no authentication is required
Username =
Password =
DigestAuth = False
Host=192.168.x.y
CUST_SN = 12345678
CUST_API_PATH= data
CUST_POLLING = 2000
CUST_Total=none
CUST_Total_Mult = 1
CUST_Power=WattsOut
CUST_Power_Mult = 1
CUST_Voltage=none
CUST_Current=none
Phase=L1
DeviceInstance=47
AcPosition=1
Name= Soyo1
Servicename=com.victronenergy.pvinverter

dbus-spy output:
com.victronenergy.pvinverter.http_47
Ac/Energy/Forward                                              -
Ac/L1/Current                                                  -
Ac/L1/Energy/Forward                                           -
Ac/L1/Power                                                    -
Ac/L1/Voltage                                                  -
Ac/L2/Current                                                  -
Ac/L2/Energy/Forward                                           -
Ac/L2/Power                                                    -
Ac/L2/Voltage                                                  -
Ac/L3/Current                                                  -
Ac/L3/Energy/Forward                                           -
Ac/L3/Power                                                    -
Ac/L3/Voltage                                                  -
Ac/Out/L1/I                                                    -
Ac/Out/L1/V                                                    -
Ac/Power                                                       -
Connected                                                      1
CustomName                                                 Soyo1
Dc/0/Voltage                                                   -
DeviceInstance                                                47
FirmwareVersion                                              0.1
HardwareVersion                                                0

wget 192.168.x.y/data yields:
{ "L1L2L3" : "685.81" , "ControllerName" : "SOYOSOURCE Controller" , "StartTime" : "Fri Jun 16 04:29:44 2023" , "NotAus" : "0" , "WaitSekunden" : "2" , "MaxPower" : "1000" , "SoyoCount" : "2" , "DCAmps" : "S>1" , "DCVolts" : "S>1" , "DCWatts" : "S>1" , "WattsOut" : "533"}

Will have a look in the next days and then we fix it.

sounds great! thank you so much!

Check line 599 in dbus_service.py
elif self.dtuvariant == constants.DTUVARIANT_TEMPLATE:
            # logging.debug("JSON data: %s" % meter_data)
            power = float(get_nested(meter_data, self.custpower) * float(self.custpower_factor))
            pvyield = float(get_nested(meter_data, self.custtotal) * float(self.custtotal_factor))
            voltage = float(get_nested(meter_data, self.custvoltage))
            dc_voltage = float(get_nested(meter_data, self.custdcvoltage))
            current = float(get_nested(meter_data, self.custcurrent))

        return (power, pvyield, current, voltage, dc_voltage)

Every value goes to the "get_nested" function
def get_nested(meter_data, path):
    '''Try to extract 'path' from nested array 'meter_data' (derived from json document) and return the found value'''
    value = meter_data
    for path_entry in path:
        try:
            value = value[path_entry]
        except Exception:
            try:
                value = value[int(path_entry)]
            except Exception:
                value = 0
    return value

which returns 0 if there is a problem.
This is a good place to start debugging.

I indeed was just at this position when I read your post. I found out that self does not seem to have set custpower.

I added some log lines in line 600:
            logging.info("JSON data: %s" % meter_data)
            logging.info("custpower: %s", self.custpower)
            logging.info("nested power: '%s'", get_nested(meter_data, self.custpower));
            #logging.info("float power: %s", float(get_nested(meter_data, self.custpower));
            logging.info("power factor: %s", self.custpower_factor);
            logging.info("float power factor: %s", float(self.custpower_factor));

the one line I commented out seems to cause problems, hence, casting e.g. 200 to float does not work
output of above code:
2023-06-16 13:56:33,590 root INFO custpower: ['WattsOut']
2023-06-16 13:56:33,601 root INFO nested power: '278'
2023-06-16 13:56:33,602 root INFO power factor: 1
2023-06-16 13:56:33,603 root INFO float power factor: 1.0

Assigning the value of get_nested(meter_data, self.custpower) to a variable and casting it to float works well:
custpower = get_nested(meter_data, self.custpower)
custpower = float(custpower)
power = float(custpower * float(self.custpower_factor))

I'm sorry for the trouble. Exactly this type of problem is already fixed in my Pullrequest which is not merged yet. There all values goes to the function like this:
 @staticmethod
    def get_processed_meter_value(meter_data: dict, value: str, default_value: any, factor: int = 1) -> any:
        '''return the processed meter value by applying the factor and return a default value due an Exception'''
        get_raw_value = get_value_by_path(meter_data, value)
        raw_value = convert_to_expected_type(get_raw_value, float, default_value)
        if isinstance(raw_value, (float, int)):
            value = float(raw_value * float(factor))
        else:
            value = default_value

        return value

 Maybe we should keep that issue open for others.

For reference: This is the mentioned PR which is expected to fix the above problem: #85


DirSync

Should update the old references to DirSync. It isn't called that anymore.

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

ID: 1313c6f6-7fb6-4487-5a6a-495eb4d77ac9
Version Independent ID: f17ee402-dc00-c939-abfe-3afe2a3bee3a
Content: Step 7 - Delete a former employee's user account - Microsoft 365 admin
Content Source: microsoft-365/admin/add-users/remove-former-employee-step-7.md
Service: microsoft-365-business
GitHub Login: @kwekuako
Microsoft Alias: kwekua

@danmyhre Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/12150
Once the author approves, the changes will be live.
Thanks
Sri


fix(storage): include user-controlled metadata in upload requests

Issue #

https://github.com/aws-amplify/amplify-swift/issues/2744

Description

Background
User-defined metadata passed to Storage upload functions (uploadData / uploadFile) was not being included in PutObject/MPU requests to S3. This was fixed in AWS SDK for Swift, and subsequently in Amplify Swift v2.20.1. However, this introduced an issue with double prefixing metadata keys. While testing, another related issue was uncovered; both are addressed in this PR.
Issues Addressed

Amplify Swift and AWS SDK for Swift were both prepending x-amz-meta- to each metadata key-value pair's key. This leads to metadata defined as "foo": "bar" being transformed into "x-amz-meta-x-amz-meta-foo": "bar" (incorrect) instead of "x-amz-meta-foo": "bar" (correct).
Amplify Swift automatically chooses to use Multipart Upload instead of PutObject if the object (data / file) being uploaded is over a certain threshold (currently fixed to 5MB). User-defined metadata was being included in each UploadPart request and not being included with CreateMultipartUpload. S3 Multipart upload process documentation

If you want to provide any metadata describing the object being uploaded, you must provide it in the request to initiate multipart upload.

Changes

Stops prefixing each metadata key with x-amz-meta- allowing this to be handling once within AWS SDK for Swift.
Includes metadata in CreateMultipartUpload request / stops including it in each UploadPart request.
Adds E2E tests covering uploadFile / uploadData for below and above the MPU threshold.

General Checklist

[x] Added new tests to cover change, if needed
[x] Build succeeds with all target using Swift Package Manager
[x] All unit tests pass
[x] All integration tests pass
[x] Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)
[ ] ~Documentation update for the change if required~
[x] PR title conforms to conventional commit style
[x] New or updated tests include Given When Then inline code documentation and are named accordingly testThing_condition_expectation()
[ ] ~If breaking change, documentation/changelog update with migration instructions~

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

Codecov Report

Merging #3315 (37fce2b) into main (bdc9b4a) will decrease coverage by 0.09%.
The diff coverage is 63.63%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main    #3315      +/-   ##
==========================================
- Coverage   64.49%   64.40%   -0.09%
==========================================
  Files        1075     1075
  Lines       35891    35903      +12
==========================================
- Hits        23148    23125      -23
- Misses      12743    12778      +35

Flag
Coverage Δ

API_plugin_unit_test
67.07% <ø> (ø)

AWSPluginsCore
66.15% <ø> (ø)

Amplify
47.81% <ø> (-0.02%)
:arrow_down:

Analytics_plugin_unit_test
81.37% <ø> (ø)

Auth_plugin_unit_test
73.90% <ø> (-0.20%)
:arrow_down:

CoreMLPredictions_plugin_unit_test
59.44% <ø> (ø)

DataStore_plugin_unit_test
81.07% <ø> (ø)

Geo_plugin_unit_test
70.75% <ø> (ø)

Logging_plugin_unit_test
63.09% <ø> (ø)

Predictions_plugin_unit_test
37.29% <ø> (ø)

PushNotifications_plugin_unit_test
60.29% <ø> (ø)

Storage_plugin_unit_test
53.90% <63.63%> (-0.28%)
:arrow_down:

unit_tests
64.40% <63.63%> (-0.09%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Files
Coverage Δ

...in/Operation/AWSS3StorageUploadDataOperation.swift
80.48% <100.00%> (+0.74%)
:arrow_up:

...in/Operation/AWSS3StorageUploadFileOperation.swift
81.18% <100.00%> (+0.57%)
:arrow_up:

...gin/Support/Utils/StorageRequestUtils+Getter.swift
91.30% <ø> (-2.25%)
:arrow_down:

...upport/Internal/StorageMultipartUploadClient.swift
1.56% <0.00%> (-0.20%)
:arrow_down:

... and 9 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Bad performance when reading large array of strings.

keys(LazyJSON.value(json_file))

The above is asymptotically problematic when json_file contain large array of strings.
I run this code
for i in 1:5
    items = i * 10000000
    json_file = open("/tmp/json", "w")
    write(json_file, JSON.json(Dict("a"=> "a", "b"=>repeat(["test"], items))))
    json_file = open("/tmp/json")
    t = @elapsed collect(keys(LazyJSON.value(json_file)))
    println("$items $t")
end

And as you can see from the result it's far away from linear (the second column is in seconds and the first is the number of items in the array)
10000000 75.786150509
20000000<PHONE_NUMBER>06
30000000<PHONE_NUMBER>02
40000000 1305.421886045
50000000 2040.987945434
60000000 2977.542937743

Compared to JSON.parse which return
10000000 8.384795834
20000000 18.123253007
30000000 27.854969659
40000000 38.360378806
50000000 51.391322248
60000000 73.577127605

We did some profiling and it seems that most of the time is spent in
https://github.com/JuliaCloud/LazyJSON.jl/blob/53c63f0169b3c5441172a2d6bedd3735e1b9e04a/src/LazyJSON.jl#L478-L496

This package has not been touched in a long long time, and I don't think that there is anyone in the Julia community who understands its inner workings anymore.

Hi @Chakerbh,
The README suggests using mmap for large files.
This seems much faster:
julia> for i in 1:5
           items = i * 10000000
           json_file = open("/tmp/json", "w")
           write(json_file, JSON.json(Dict("a"=> "a", "b"=>repeat(["test"], items))))
           close(json_file)
           json_file = open("/tmp/json")
           s = String(Mmap.mmap(json_file))
           t = @elapsed collect(keys(LazyJSON.value(s)))
           println("$items $t")
           close(json_file)
       end
10000000 0.184056137
20000000 0.368260537
30000000 0.594284688
40000000 0.792973539
50000000 1.011099886

Even using LazyJSON.value(read(json_file)) is much faster than reading directly from the file stream.
The problem seems to be here on line 98 where data is read using readavailable:
https://github.com/JuliaCloud/LazyJSON.jl/blob/53c63f0169b3c5441172a2d6bedd3735e1b9e04a/src/IOStrings.jl#L92-L98
Printing out the number of bytes read at that point, it looks like readavailable only returns 32k at a time, even though there are many MB available. Bug in base?
I think the IOString.jl interface is intended for streaming from network sockets, it may be that readavailable behaves differently for network IO.
Anyway, if I replace line 98 with write(s.buf, read(s.io, 100_000_000; all=false)), then it is much faster:
julia> for i in 1:5
           items = i * 10000000
           json_file = open("/tmp/json", "w")
           write(json_file, JSON.json(Dict("a"=> "a", "b"=>repeat(["test"], items))));
           close(json_file)
           json_file = open("/tmp/json")
           t = @elapsed collect(keys(LazyJSON.value(json_file)))
           println("$items $t");
           close(json_file)
       end
10000000 0.673818205
20000000 0.817360912
30000000 1.864231564
40000000 2.132910674
50000000 2.84851389

However, if you are dealing with local files, use Mmap.

If you make a String from the mem mapped file you are copying the buffer. You want to use StringViews
s = StringView(Mmap.mmap(json_file))
j = LazyJSON.value(s)


Incosistent code formatting

Some packages in the repository are not consistently formatted across multiple users, resulting in their auto-rename.
See:
https://github.com/NethermindEth/juno/pull/1042/files#r1287539441
https://github.com/NethermindEth/juno/pull/1039#discussion_r1287262889

We use gofumpt for formatting. If using VSCode, see docs for changing the default formatter.

Doesn't seem to be the source. Swapped into gofumpt and the issue still exists.
I also tried disabling formatting on save and the rename happens anyway on ctrl+s.

What version of gofumpt are you using?

After external discussion, I came to the conclusion that this repository break's the go naming convention and that the behavior of aliasing is the correct one.
Golang official source: https://go.dev/blog/package-names

A Go package has both a name and a path. The package name is specified in the package statement of its source files; client code uses it as the prefix for the package’s exported names. Client code uses the package path when importing the package. By convention, the last element of the package path is the package name:

Logical example:
Context: package bar in dir /foo/foo.go
Imagine you are importing 50 packages in that circumstance, where the name differs from the directory, you would have no idea what identifiers come from where.
I haven't found a way to disable this behavior yet but it would be welcome to either accept aliasing or rename packages to follow their path. @joshklop

We use gofumpt to automatically enforce formatting rules, so manually aliasing won't work. If you feel strongly that packages should be named differently, please submit a PR with a brief explanation of the changes.


Add Azure Advisor

Hi @Benjiiim, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Benjamin Talmard). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

@Benjiiim : Thanks for your contribution to the Azure documentation! The author, @lbrader, has been notified to review your proposed change.

@Benjiiim Thanks for the Advisor update.  #sign-off


add TeatFlow.AssertNoReply and tests

To make sure the bot really ends.
Unexpected replies once happend in VA-Skill interactions in solutions project.

Pull Request Test Coverage Report for Build 95379

0 of 0   changed or added relevant lines in 0 files are covered.
17 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.3%) to 78.824%

Files with Coverage Reduction
New Missed Lines
%

/libraries/Microsoft.Bot.Builder/Adapters/TestFlow.cs
17
79.67%

Totals

Change from base Build 95237:
0.3%

Covered Lines:
13147

Relevant Lines:
16679

💛  - Coveralls


®[𝕏𝚆𝙰𝚃𝙲𝙷:⊱ᐯIᗪEOs]® Equatorial Guinea Viral Exclusive ᴠɪᴅᴇᴏ ʟᴇᴀᴋᴇᴅ 𝙻𝚒𝚗𝚔 On Social Media 𝕏𝘛𝘸𝘪𝘵𝘵𝘦𝘳 【ＸＸＸ NOWJ87B】

25 sec ago Equatorial Guinea ʟᴇᴀᴋᴇᴅ ᴠɪᴅᴇᴏ Viral On Social Media. ®[𝕏𝚆𝙰𝚃𝙲𝙷:⊱ᐯIᗪEOs]® Equatorial Guinea Viral Exclusive ᴠɪᴅᴇᴏ ʟᴇᴀᴋᴇᴅ 𝙻𝚒𝚗𝚔 On Social Media 𝕏𝘛𝘸𝘪𝘵𝘵𝘦𝘳 【ＸＸＸ NOWJ87B】
𝑾𝒂𝒕𝒄𝒉 🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅 𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤► 𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇 𝗄) 𝖶𝖺𝗍𝖼𝗁
🟢 ➤ ➤ ➤ 🌐 𝖢𝗅𝗂𝖼𝗄 𝖧𝖾𝗋𝖾 𝖳𝗈 𝗅𝗂𝗇𝗄 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺 𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇𝗄)
🔴 ➤► 𝖣𝖮𝖶𝖭𝖫𝖮𝖠𝖣👉👉 (𝖥𝗎𝗅𝗅 𝖵𝗂𝗋𝖺𝗅 𝖵𝗂𝖽𝖾𝗈 𝖫𝗂𝗇 𝗄)
Equatorial Guinea's latest video has taken the internet by storm, sparking widespread discussions across various social media platforms. The rising digital influencer, renowned for her captivating content—especially her recent Spiderman-themed video—has seen a significant boost in popularity, with fans eagerly anticipating the full release. Audiences are flocking to Instagram, X (formerly Twitter), and Discord to engage with her newest creation.
As excitement continues to grow, fans are actively sharing their thoughts online, highlighting how vital social media is in helping creators like Equatorial Guinea gain recognition. With her unique style and creative approach, she has made a notable impact on the digital scene, leaving her followers eager to see what she’ll do next.  The rising digital influencer, renowned for her captivating content—especially her recent Spiderman-themed video—has seen a significant boost in popularity, with fans eagerly anticipating the full release. Audiences are flocking to Instagram, X (formerly Twitter), and Discord to engage with her newest creation.
As excitement continues to grow, fans are actively sharing their thoughts online, highlighting how vital social media is in helping creators like Equatorial Guinea gain recognition. With her unique style and creative approach, she has made a notable impact on the digital scene, leaving her followers eager to see what she’ll do next.


Whatwg-fetch: Allow body.json typed result

Useful to avoid assertions and keep a consistent code

thanks mate!


⚠ Bofrost.be has degraded performance

In 2eedd47, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2178 ms

Resolved: Bofrost.be performance has improved in 32711e2 after 9 minutes.


Removed autofocus and made fields tabindex 1

Why are there so many code changes in client/app/attend/attend.html?

it's just a autoformatting thing that fixes spacing

rebased with master. Sorry Kiana


Selecting 'Save' pops up an error after closing the document in editor

Repro steps:
1.Drill down from Subscription ->Cosmos DB Account like '0713test'->database->collection->document, then select one document and make changes
2.Click 'x' to close the document, then make sure that pops up a dialog.
3.Select 'Save' -> 'Upload', then check the result.
Expect:
Succeed to save the file and without any error.
Actual:
Pop up an error dialog though the document can be saved successfully. Please see the below picture.

Some more details: This behaviour occurs when there's no other editor open.
When there's another editor open, the previous editor before that item has its contents replaced with the closed file's content. That was really funny actually.
I think that's because CosmosEditorManager.updateToCloud unconditionally calls .updateEditor for the activeTextEditor.
I'll try to send a pull request on that very soon by Sunday.

@tec-goblin Ok, thanks for your sharing and update.

Fixed in https://github.com/Microsoft/vscode-cosmosdb/pull/818


Changing default framework name to 'concord'

@mhausenblas nice catch, this should fix the confusing issue


EurekaNameSpace not used in eureka.region

Hello,
I've seen that the eureka.region property in DefaultEurekaClientConfig.class it's not tied to the namespace, and when using a different namespace there is the need to hardcode this property.
Regards,
Jaume

NetflixOSS » eureka » eureka-pull-requests #421 SUCCESS
This pull request looks good

Thank you for your PR. To be backward compatible, can you add a fallback logic, so if a property with a namespace does not exist, it should read "eureka.region" as previously.

Done! Do you want to join commits?

NetflixOSS » eureka » eureka-pull-requests #429 SUCCESS
This pull request looks good

Thanks!


Tabs container doesn't have internal padding

Widget: https://design.undp.org/?path=/story/components-ui-components-tabs--tabs
Space on the screenshot below is top margin of the content, but component should have its own padding.

@mrelevo , please verify

verified

verified in Storybook. Not working in Drupal  https://global-dev.acquia.undp.org/blog/1157


vite 0.11.3 does not work on windows

Describe the bug
Error details is found below in Logs. The last working version is vite 0.11.2

System Info

required vite version: 0.11.3
required Operating System: Window 10 Home
required Node version: Node 12.16

Logs
How to replicate

Install and run vite

npx create-vite-app test
cd test
npm i
npm i vite@latest
npm i -D cross-env

change package,json to use debug

cross-env DEBUG=vite:* vite
npm run dev

navigate to browser and you see the error

There is no error on the command line, only in browser
Reproduction
N.A.

Duplicate Of #69 Please Close The Issue

I'm having the same issue here.

@bekalshenoy, closing this, hopefully fix PR will settle it...


Create spotify_exemple_2.py

Script for test pychromecast with Spotify but with the manual entry of the token. Because the dependency spotify_token method don't work ( Spotify added a reCAPTCHA button).  To test because SpotifyController don't work for me...

If the old one no longer works, we should replace it instead of keeping it around.
CC @enriquegh

@enriquegh now you can see why I did not want that code in pychromecast. Too fragile

No worries. I've been burned before with the development of @home-assistant.


optional({ default: 'defaultValue' })

Add an option to optional() which allows a default value to be specified in case the key does not exist.

Can you be more specific?

Set a field as optional, and if the field doesn't exist, replace it with a default value. Maybe this should be implemented in a separate sanitizer instead?

Yeah, I'm thinking a sanitizer is the solution here. Don't want optional to do more than what's intended.
Can this be closed?


Bad tooltip positioning in bootstrap grid

When placing this inside a bootstrap grid, the tooltip positioning is wrong.  I believe I have a fix for it; would be willing to do a PR

I face the same issue.
Would you please share the solution you found with me ?
Thanks

I have the same issue. @daveconger can you share the fix, please?

@daveconger : Could you please share your solution. it would be very helpful.

I have fixed the issue by changing the tooltip attribute "position" from "absolute" to "fixed".
Replace timeknots.js line 32 :
Change
".style("position", "absolute")"
To
".style("position", "fixed")"

I would like the solution as well, champix fix changed the positioning for me but It's still in the wrong place.


Need API to download a single pack

A Python API is needed to enable downloading the pack containing support for a given full device name. If the pack is already installed and a newer version is available, then it should update that pack.

 142 + │         cache.cache_descriptors()
 143 + │         devices = [cache.index[dev] for dev in devices]
 144 + │         packs = cache.packs_for_devices(devices)
 145 + │         print("Downloading Packs: ")
 146 + │         for pack in packs:
 147 + │             print("  {}".format(pack))
 148 + │         raw_input("Press Control-C to quit; Press Enter to continue")
 149 + │         cache.download_pack_list(packs)

Something like this is what I have working on a branch. Whould this work for you?


Hotfix

same PR #9135

What is this? What bug are you trying to fix? Can you provide a repro of the bug?
Also keep in mind all tests must pass and new tests must be added

something like this:
class Some extends Array {
  add(v) { this.push(v) }
}

@Component
class CompoSuper extends Vue {
  @Prop(Array) items
  created(){ this.items.add(232) }  // << exception method .add() is undefined
}

test trouble with:

Unarchiving cache...
tar: root/project/vue/node_modules: Cannot mkdir: Permission denied```

O.o

If it's a bug, do you mind providing a runnable reproduction first?

@Justineo look pls in https://github.com/vuejs/vue/pull/9136#issuecomment-443766727

I feel like you have rushed this pr. If it's implementing that feature it would require proper testing of the actual feature request. Opening a pr with just Hotfix as a title is so
Confusing for us maintainers...

@posva u r right.
n look PR #9135


Big functions makes it difficult to parallelize compilation

Rust is adding support to compile and optimize at link time in parallel. Code units seems to be functions? or at least it can't parallelize in finer grain than functions.

Ideally (and I would argue may make code easier to maintain) that function can be broken up into smaller ones . Please see this awesome technical explanation.

it's one huge state machine so optimizing separate functions seems counter-intuitive IMO.
I guess you could try splitting it off into even more methods, for nested state machines - but we do this already to some extent. Codegen units aren't function-level, LLVM can't optimize functions in parallel, it was never designed with that in mind and there are too many hazards.
Also, aren't compile time mostly in macro expansion for this crate?

Related to macro expansion: there may be code-size vs performance tradeoffs to look at. The way I wrote the static Huffman decoding was with a lot of macro-generated code, for many combinations.
There's some commented out code for building a dynamic Huffman decoder with the appropriate data for the static one, getting that to the same level of performance would probably be a huge win.

@bvssvni can you make me the owner of inflate as well? Just tried to publish myself, didn’t work 😄

@nwin Done.

Ok, I published an update to the crate.


When click Hello Application shows Launching Hello Application... no response

When click Hello Application shows Launching Hello Application... no response

After click the application, first of the direction is not correct,

I have to change it manually to:

But, still, it doesn't show the app.

Hi I think this is caused by a misconfiguration of the server.servlet.context-path of ShinyProxy.
However, since this is quite an old issue, I'm going to close it.
Of course, if you still experience the issue, feel free to re-open it.


Using Codeforces API create one better UI for problems page

Codeforces provide API through which one can request data from their server. To make our site better we need to get best data related to the user need.

All commits done with [CF]


Cra2

added sharedholder

added sharedholder.js and gave it some style, also corrected some imports and export defaults


Simple "ping" health check for other BBs

Ticket to collect information about and implement simple health checks to Resource Health BB required for the upcoming release "Beta 2" (targeted by the end of year 2024).

Endpoints from BBs:
Data Access

[ ] Information received status
https://github.com/EOEPCA/data-access/issues/106

[ ] Check(s) implemented status

Resource Registration

[ ] Information received status
Harvester workflow engine (Flowable) health endpoint

https://registration-harvester-api.develop.eoepca.org/flowable-rest/actuator/health
Response code 200
HTTP Basic Auth: eoepca:eoepca
Registration API (pygeoapi) endpoint
https://registration-api.develop.eoepca.org/
Response code 200
No auth required

[ ] Check(s) implemented status

Resource Discovery

[ ] Information received status
https://github.com/EOEPCA/resource-discovery/issues/104

[ ] Check(s) implemented status

Workspace

[ ] Information received status
Workspace API

https://workspace-api.apx.develop.eoepca.org/probe
Response code 200
No auth required
Prometheus metrics
https://workspace-api.apx.develop.eoepca.org/metrics
Response code 200
No auth required

[ ] Check(s) implemented status

Processing

[ ] Information received status

[ ] Check(s) implemented status

IAM

[ ] Information received status

[ ] Check(s) implemented status

MLOps

[ ] Information received status

[ ] Check(s) implemented status

Simple daily ping checks are up and running on the cluster. The checks themselves are defined in https://github.com/EOEPCA/eoepca-plus/blob/deploy-develop/argocd/eoepca/resource-health/resource-health.yaml, and the scripts being run are in https://github.com/EOEPCA/resource-health/tree/main/pytest-health/lib/BB-examples.


There is a typing error when configure for the existing exchange and …

There is a typing error when configure for the existing exchange and queue

@chenguo-design Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.


Fix CSS content property for Safari

Safari does not pass content strings in double quotes, so they get ignored. This breaks packages such as Font-Awesome on Safari and iOS.
Fixes #1610

Be advised #1649 pull request did not fix the problem for #1736.
@mjsarfatti
Fontawesome icons still show up as blank in Apple Safari after applying the above pull request in our local code.
So fix still needed for this. Best,


Docker-machine 0.5.3 outputs status to STDERR instead of STDOUT

I've installed https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64 to try a PyCharm interation with Docker. But on the Python interpreter configuration streen I got an error:
Docker Machine returned empty status string for 'localhost'

Internally PyCharm executes commands:
docker-machine ls --quiet
docker-machine status localhost

and reads results of the both commands from STDOUT.
But docker-machine status surpriselly outputs the status to STDERR.
$ { { docker-machine ls; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'
STDOUT: NAME        ACTIVE   DRIVER    STATE     URL                    SWARM              DOCKER   ERRORS
STDOUT: localhost   -        generic   Running   tcp://<IP_ADDRESS>:2376   Smaster            v1.9.1

$ { { docker-machine status localhost; } 2>&3 | sed 's/^/STDOUT: /'; } 3>&1 1>&2 | sed 's/^/STDERR: /'
STDERR: Running

We have changed lots of the internal of the outputs in this release, we probably did a mistake.
To investigate.

log.Info is printing to STDERR instead of STDOUT as intended.  It's happening with create and in a lot of other places as well.

Thanks!


Download splits when running from CLI

The code to download splits exists and works on AppDownloadWorker, but was missing when running from CLI

Thank you for the quick review and merge!


Android 13 light theme background color not included in the colorScheme

There is a color which every google made app uses as the background color. This is kind of a very light version the primary color. I cannot seem to find this anywhere in the colorScheme variable, as the property backround is the same as the property surface.

I think you're looking for primary 99, which we currently don't provide directly from material_color_utilities, I'll move this issue there.


Updates README

In the macOS section of prerequisites, the brew command referenced an outdated package.  All of the homebrew/dupes/... packages were migrated into the core or deleted.  This updates the brew command with the correct name of the zlib package which is just zlib.

Thanks! ❤


lightbulb does not working in python environment！

lightbulb does not working in python environment！Can you fix it. My vscode is the newest version.

Hi @1470391328! Thanks for reaching out 😊
Right now the only lightbulb the Python extension supports is for auto imports, using the Microsoft Language Server - one of the IntelliSense engines that the Python extension support, that provides auto completions, code navigation, etc.
To try it out, you can enabled the Microsoft Python Language Server by disabling Jedi, the default IntelliSense engine in the Python extension. You can go through File > Preferences > Settings and look for "Jedi". Then when uncheck the "Jedi Enabled" that is displayed, you will be prompted to reload the window (like in the image below).

Now, to get a lightbulb for auto imports you can start by writing a piece of code that uses a module that hasn't been imported yet. For example:
print(datetime.datetime.now())

The datetime module call will be highlighted with a yellow squiggly line, and when you hover over it, you'll be able to see the lightbulb. Clicking on it will show the import options you have. In this case, it's simply "import datetime". When you click on the import suggestion, it will add it to the top of your file.

That said, what lightbulbs would you like or were you expecting to see? 😊

thank you for your Enthusiastic reply 😜，Maybe it was because I chose the Jedi server that the light bulb didn't show up。 Really thank you  😁

I tried your method, but unfortunately, even if I switched to Microsoft Server, the light bulb still doesn't display. I don't know when the light bulb prompt will display, but I really like this function. I hope the light bulb will display in the static check.


Import GSoC participant list

We have been managing a spreadsheet at https://docs.google.com/spreadsheets/d/1vFd0_C2HrX5F7-YBhqem6cGB1l418IjgceWW2YY8CMA
Maybe it is time to import that dataset into GitHub.  This repo might be suitable, otherwise we could put it under BesutKode somewhere.

@ceefour , one quick and useful way to begin this is to create an alumni in this org, and invite all previous Indonesian GSoC participants to that team.
like:
https://github.com/orgs/summerofcode/teams/alumni
;-)

Okay: https://github.com/orgs/gsocindonesia/teams/alumni

I've invited 13 that I know their github usernames; there are a few missing.


Crash InputAwareWebView.java line 42 on Android 10

I used webview_flutter: ^2.0.9. In that version i was getting InputAwareWebView.java line 26 crashes on android 10, production:
Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'android.view.WindowManager$LayoutParams android.view.ViewRootImpl.mWindowAttributes' on a null object reference
       at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1662)
       at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1901)
       at android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:1220)
       at io.flutter.plugins.webviewflutter.InputAwareWebView$1.run(InputAwareWebView.java:26)
       at android.os.Handler.handleCallback(Handler.java:888)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:213)
       at android.app.ActivityThread.main(ActivityThread.java:8178)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Then i saw that #78405 was closed, i updated plugin version to ^2.3.1 and i thought that crash should gone, and indeed it was gone, but instead appeared the following one InputAwareWebView.java line 42:
Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'android.view.WindowManager$LayoutParams android.view.ViewRootImpl.mWindowAttributes' on a null object reference
       at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1662)
       at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1901)
       at android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:1220)
       at io.flutter.plugins.webviewflutter.InputAwareWebView$1.run(InputAwareWebView.java:42)
       at android.os.Handler.handleCallback(Handler.java:888)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:213)
       at android.app.ActivityThread.main(ActivityThread.java:8178)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Details are completely the same: only android 10, production.

Hi @radomir9720
Can you please provide your flutter doctor -v and flutter run --verbose logs, and a minimal complete reproducible code sample?
Thank you

Hi @mamuseferha.
In the comments of #78405 already was said that locally no one was able to reproduce this crash, including me, so, i think, there is no reason to provide "reproducible code sample".
I can only tell the way how i use webview: i have a Scaffold with TabBar and TabBarView. In TabBarView i have 3 WebView's, that i keep alive with AutomaticKeepAliveClientMixin.
Flutter doctor:
[✓] Flutter (Channel stable, 2.5.3, on Mac OS X 10.15.7 19H2 darwin-x64, locale ru-RU)
    • Flutter version 2.5.3 at /Users/radomir/development/flutter/2.0
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (4 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/radomir/Library/Android/sdk
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.11.2

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

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

/cc @bparrishMines who fixed the original issue.

I use this package: https://github.com/shah-xad/flutter_tex which using webview_flutter_plus
and I have the same crash like this. Only on Android 10.
I have to add try/catch to the code on line 195 file InputAwareWebView.java to prevent crash temporarily:
            try {
              imm.isActive(containerView);
            } catch (Exception e) {}

InputAwareWebView should be removed from the webview plugin


BSK throws errors when compiled with swig 4.2.0

Describe the bug
Swig 4.2.0 was released recently.  BSK does build with this version of swig.  However, when running all our unit tests many errors occur now.
To reproduce

install swig 4.2.0
do a clean build
try to run select scripts like scenarioBasicOrbit.py, or run all unit test to see many are failing now.

Expected behavior
All tests should be passing without issues.
Desktop (please complete the following information):

OS: macOS
Version 14.3
Python version 3.11.6

Additional context
Add any other context about the problem or potential solution paths here.

Howdy @juan-g-bonilla, I took a stab at trying to figure out what changed with swig 4.2 yesterday, but it was not apparent.  It seems something is different in how we provide a vector of objects to a C++ vector of object pointers.  This was all working just fine before.  Having another crazy week with meetings, visitors, travel for 3 days.  I'll keep poking at this.  But, you know swig far better then me.  If you come across what is going on, I'd appreciate some advise.  Even running our basic scenario I get:
(.venv) basilisk/examples % python scenarioBasicOrbit.py
Traceback (most recent call last):
  File "/Users/hp/Repos/basilisk/examples/scenarioBasicOrbit.py", line 567, in <module>
    run(
  File "/Users/hp/Repos/basilisk/examples/scenarioBasicOrbit.py", line 398, in run
    viz = vizSupport.enableUnityVisualization(scSim, simTaskName, scObject,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/hp/Repos/basilisk/dist3/Basilisk/utilities/vizSupport.py", line 1518, in enableUnityVisualization
    vizMessenger.spiceInMsgs = messaging.SpicePlanetStateMsgInMsgsVector(spiceMsgList)
    ^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: in method 'VizInterface_spiceInMsgs_set', argument 2 of type 'std::vector< ReadFunctor< SpicePlanetStateMsgPayload >,std::allocator< ReadFunctor< SpicePlanetStateMsgPayload > > > *'

If anyone understands why swig 4.2 is causing these issues, I'd love to get feedback.

Howdy @juan-g-bonilla, I took a stab at trying to figure out what changed with swig 4.2 yesterday, but it was not apparent. It seems something is different in how we provide a vector of objects to a C++ vector of object pointers. This was all working just fine before. I'll keep poking at this. But, you know swig far better then me. If you come across what is going on, I'd appreciate some advise. Even running our basic scenario I get:
(.venv) basilisk/examples % python scenarioBasicOrbit.py
Traceback (most recent call last):
  File "/Users/hp/Repos/basilisk/examples/scenarioBasicOrbit.py", line 567, in <module>
    run(
  File "/Users/hp/Repos/basilisk/examples/scenarioBasicOrbit.py", line 398, in run
    viz = vizSupport.enableUnityVisualization(scSim, simTaskName, scObject,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/hp/Repos/basilisk/dist3/Basilisk/utilities/vizSupport.py", line 1518, in enableUnityVisualization
    vizMessenger.spiceInMsgs = messaging.SpicePlanetStateMsgInMsgsVector(spiceMsgList)
    ^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: in method 'VizInterface_spiceInMsgs_set', argument 2 of type 'std::vector< ReadFunctor< SpicePlanetStateMsgPayload >,std::allocator< ReadFunctor< SpicePlanetStateMsgPayload > > > *'

If anyone understands why swig 4.2 is causing these issues, I'd love to get feedback.

It seems like the new SWIG fails to understand the templated types in the new version. Adding this in line 53 to vizInterface.i solves it:
%template() std::vector< ReadFunctor< SpicePlanetStateMsgPayload > >;

It just basically let's SWIG know about this specialized template. Other modules using with std::vector<ReadFunctor<...>> will likely need the same fix, and maybe other templated types like std::vector<Message<...>*>

Interesting, thanks for the feedback.  I'll play with this more this morning.  Those swig template definitions are in src/architecture/messaging/msgAutoSource/msgInterfacePy.i.in.  This is why we didn't have to define them in each module, but they are auto-generated for all message definitions. Somehow they are no longer visible in the same manner as before.

I can confirm that adding
%template() std::vector< ReadFunctor< SpicePlanetStateMsgPayload > >;

to vizInterface.i`` makes scenarioBasicOrbit.pyrun again withswigversion 4.2.0.  However, this means the issue is that the auto-generated message swig interfaces insrc/architecture/messaging/msgAutoSource/msgInterfacePy.i.in` are not created anymore?

Ok, I do see the message .i files being properly created in dist/autoSource folder.  Next, why are these not being packaged in messaging?

Ok, while messaging has the method
template(SpicePlanetStateMsgInMsgsVector) std::vector<ReadFunctor<SpicePlanetStateMsgPayload>>;

included, this apparently no longer provides the swig interface to vizInterface to a vector of these input messages.  I tried to include
%template() std::vector< ReadFunctor< SpicePlanetStateMsgPayload > >;

to the messaging swig interfaces for each message.  However, this still didn't make vizInterface understand this input.  Do we really have to include these vector of message definitions now to each module that uses them?

If I try to run scenarioOrbitMultiBody.py, and I added
    %template() std::vector<Message<SpicePlanetStateMsgPayload>>;
    %template() std::vector<Message<SpicePlanetStateMsgPayload>*>;

to vizInterface.i, I still get this error message:
(.venv) basilisk/examples % python scenarioOrbitMultiBody.py
Traceback (most recent call last):
  File "/Users/hp/Repos/basilisk/examples/scenarioOrbitMultiBody.py", line 451, in <module>
    run(
  File "/Users/hp/Repos/basilisk/examples/scenarioOrbitMultiBody.py", line 204, in run
    spiceObject = gravFactory.createSpiceInterface(time=timeInitString, epochInMsg=True)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/hp/Repos/basilisk/dist3/Basilisk/utilities/simIncludeGravBody.py", line 476, in createSpiceInterface
    self.spiceObject.planetStateOutMsgs[c]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
TypeError: 'SwigPyObject' object is not subscriptable

Looks like swig doesn't understand how to access an element of the vector of output messages?  With swig 4.1.1 this worked just fine.

Ok, I have been trying to find a way to make BSK compatible with swig 4.2 without editing every module *.i file to manually include all these definitions.  However, no such luck so far.  I can add these lines to each module interface file, but this does make this much more tedious than what we had with swig 4.1.1.  It doesn't even recognize a vector of doubles unless I manually add this to the module interface file.  Before all these vector of types were provided by either swig_common_model, or by importing the architecture.messaging package into the python script.

Definitely don't know enough about the Basilisk build system to know how feasible/easy this would be, but making the autogenerated .i files for the message payloads discoverable when we build the module .i could help with this. Something like:
%module vizInterface
...
%include "vizInterface.h"
...
%import "architecture/messaging/SpicePlanetStateMsgPayload.i"

would bring in all the definitions in SpicePlanetStateMsgPayload.i (which are the ones missing here). It would be an easy change in the codebase to implement, since we could find-replace:
%include "architecture/msgPayloadDefC/(\w*)\.h"

with
%import "architecture/messaging/$1.i"

An even better approach would be to autogenerate a messaging.i file during compile time which imports all payload .i files:
%import "architecture/messaging/SpicePlanetStateMsgPayload.i"
%import "architecture/messaging/CameraImageMsgPayload.i"
%import "architecture/messaging/ChargeMsmMsgPayload.i"
...

and then all modules .i can just import this file:
%import "architecture/messaging/messaging.i"

and remove all this boiler plate code one has to add to module SWIG files:
%include "architecture/msgPayloadDefC/CameraConfigMsgPayload.h"
struct CameraConfigMsg_C;
%include "architecture/msgPayloadDefC/RWConfigLogMsgPayload.h"
struct RWConfigLogMsg_C;
%include "architecture/msgPayloadDefC/SCStatesMsgPayload.h"
struct SCStatesMsg_C;
%include "architecture/msgPayloadDefC/CameraImageMsgPayload.h"
struct CameraImageMsg_C;
%include "architecture/msgPayloadDefC/SpicePlanetStateMsgPayload.h"
struct SpicePlanetStateMsg_C;
%include "architecture/msgPayloadDefC/RWSpeedMsgPayload.h"
struct RWSpeedMsg_C;
%include "architecture/msgPayloadDefC/EpochMsgPayload.h"
struct EpochMsg_C;

%include "architecture/msgPayloadDefCpp/CSSConfigLogMsgPayload.h"
%include "architecture/msgPayloadDefCpp/THROutputMsgPayload.h"
%include "architecture/msgPayloadDefCpp/ChargeMsmMsgPayload.h"

What you are describing is essentially what was happening with architecture.messaging.  The interfaces to all message definitions were auto-created and combined into one package.  That is why I'm scratching my head trying to figure out what changed.  I'll chat with the author of these latest message packaging method to see if there is new insight there.

Well yes, but that is on the python level not at compile time. At compile time, the information for the template types is missing, which is why adding:
%template() std::vector< ReadFunctor< SpicePlanetStateMsgPayload > >;

will fix it. What I suggest is moving this combination to compile time so that module .i files have access to this info.

Ok, I pulled the swig GitHub repo and started from 4.1.1 to see with which commit BSK starts to see these run-time errors.  I identified the following commit that is the key commit.  Any idea what this commit means for BSK vector message interfaces not working anymore?

@juan-g-bonilla , @spiggottCO  or @patkenneally , if you have ideas, I'm all ears.  I'm done doing test builds of BSK for tonight 🤠

Ok, I pulled the swig GitHub repo and started from 4.1.1 to see with which commit BSK starts to see these run-time errors. I identified the following commit that is the key commit. Any idea what this commit means for BSK vector message interfaces not working anymore?  @juan-g-bonilla , @spiggottCO or @patkenneally , if you have ideas, I'm all ears. I'm done doing test builds of BSK for tonight 🤠

Thanks for the insight! Last night I played around with this info and changing
https://github.com/AVSLab/basilisk/blob/2c7691c251f7963729c4f8c95bb8a5f707e37b74/src/architecture/messaging/msgAutoSource/msgInterfacePy.i.in#L55C1-L57C71
to:
%template({type}OutMsgsVector) std::vector<Message<{type}Payload>, std::allocator<Message<{type}Payload>> >;
%template({type}OutMsgsPtrVector) std::vector<Message<{type}Payload>*, std::allocator<Message<{type}Payload>*> >;
%template({type}InMsgsVector) std::vector<ReadFunctor<{type}Payload>, std::allocator<ReadFunctor<{type}Payload>> >;

seems to get rid of the problem. I didn't thoroughly test whether this solved all issues (or if it created new ones), but it's a step in the right direction.
If I had to guess why there is an error now, it seems like SWIG used to save the type name as the C++ type with all template arguments, including those defaulted. For example, std::vector<int> is actually equivalent to std::vector<int, std::allocator<int>>. SWIG used to keep this full name (std::vector<int, std::allocator<int>>), but now it will skip defaulted template arguments (so the type name is std::vector<int>). However, for some reason, on our SWIG code for the modules, where we are not exposing the template to SWIG through %template, the type name it uses is the full one (std::vector<int, std::allocator<int>>) and so it fails to understand that that is equal to the shortened one (std::vector<int>). This is all speculation. In short, SWIG doing hacky typing stuff, as SWIG does.

This appears to be working.  I'm able to reduce the issues from 600-700 errors to only 17 errors tonight.  Still need to go through all the *.I files to update some.  I'll work on that tomorrow.

@juan-g-bonilla , I pushed a branch called feature/swig_4_2 to origin if you wan to look.  The fixes to the swig template of vectors of items helped, and I reduced the number of failures of about 700 to about 17.  Right now it is failing trying to set items inside a std::vector, or getting an element.  I feel we are close. Most of the remaining error appear related.  Once we have how to address one, I think most will vanish.

I found another couple of allocator bugs @schaubh @juan-g-bonilla .  The push is there now and it fixes the failed unit tests I had (Thrusters, RWAs, VSCMGs, etc.).  Let's see if it resolves the errors in your environments.


fix(IAM Policy Management): add nested conditions to rule.conditions

PR summary

Updated based on minor api definition update.
PR Checklist
Please make sure that your PR fulfills the following requirements:

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

Current vs new behavior

Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Other information
in modules/iam-policy-management
integration test:
mvn clean install
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  27.012 s
[INFO] Finished at: 2023-11-07T07:21:05-05:00
[INFO] ------------------------------------------------------------------------

examples:
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  21.718 s
[INFO] Finished at: 2023-11-07T07:23:50-05:00

```

Latest tests:
Running com.ibm.cloud.platform_services.iam_policy_management.v1.IamPolicyManagementIT
[INFO] Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 26.72 s -- in com.ibm.cloud.platform_services.iam_policy_management.v1.IamPolicyManagementIT
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 25, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- failsafe:3.1.2:verify (default) @ iam-policy-management ---
[INFO]
[INFO] --- install:3.1.1:install (default-install) @ iam-policy-management ---
[INFO] Installing /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-java-sdk/modules/iam-policy-management/pom.xml to /Users/shaunsmacibm/.m2/repository/com/ibm/cloud/iam-policy-management/99-SNAPSHOT/iam-policy-management-99-SNAPSHOT.pom
[INFO] Installing /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-java-sdk/modules/iam-policy-management/target/iam-policy-management-99-SNAPSHOT.jar to /Users/shaunsmacibm/.m2/repository/com/ibm/cloud/iam-policy-management/99-SNAPSHOT/iam-policy-management-99-SNAPSHOT.jar
[INFO] Installing /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-java-sdk/modules/iam-policy-management/target/iam-policy-management-99-SNAPSHOT-javadoc.jar to /Users/shaunsmacibm/.m2/repository/com/ibm/cloud/iam-policy-management/99-SNAPSHOT/iam-policy-management-99-SNAPSHOT-javadoc.jar
[INFO] Installing /Users/shaunsmacibm/Desktop/cloud-platform/iam/sdk/platform-services-java-sdk/modules/iam-policy-management/target/iam-policy-management-99-SNAPSHOT-sources.jar to /Users/shaunsmacibm/.m2/repository/com/ibm/cloud/iam-policy-management/99-SNAPSHOT/iam-policy-management-99-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  49.356 s
[INFO] Finished at: 2023-11-07T12:20:41-05:00
[INFO] ------------------------------------------------------------------------

Examples:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  24.837 s
[INFO] Finished at: 2023-11-07T12:21:29-05:00
[INFO] ------------------------------------------------------------------------

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


Updated to latest code-server (code-server: v3.9.1), but extensions are not recognized

Web Browser: Edge
Local OS: Windows
Remote OS: Linux
Remote Architecture:
code-server --version:  3.9.1 e0203f2a36c9b7036fefa50eec6cf8fa36c5c015

I just updated to the latest code-server (via conda). When I opened my instance of code-server, none of the installed extensions are recognized.

yet, they still exist in my ~/.local/share/code-server/extensions folder

Is there a setting or easy fix to let code-server recognize my extensions, or do I need to reinstall them?

Oh interesting! Does the conda environment set XDG_DATA_HOME or
HOME? We use those (in that order) to determine the default data
directory which includes the extensions.
The only other way to change the directory it uses is via command-line
flags or config options, but if this is just a straight upgrade that's
probably not what happened here.

I haven't set the XDG_DATA_HOME value myself (didn't know that existed until now).
I created the anaconda environment with the following file vscode.yaml
name: vscode
channels:
  - conda-forge
dependencies:
  - code-server >=3.7.2
  - pip
  - pip:
    - fortran-language-server

(doubt the fortran language server is important, but it is in my environment)
I created the environment months ago with this...
conda env create -f vscode.yaml
and then update environment with this (when I updated to v3.9.1)
conda env update -f vscode.yaml
Interestingly, my settings.json still resides at ~/.local/share/code-server/User/settings.json

Hmm I'm not really familiar with conda but assuming I'm looking at the right repository it looks like they set --extensions-dir recently: https://github.com/conda-forge/code-server-feedstock/commit/1a3f7eaf329f522056195364d7cbcb83778767f1#diff-d7075654874cb08007a21aaab3ecd4b3453a9087e7505d034d548b8938b599bc

Looks like that's what happened. Good to know.
Ok, so I reinstalled the extensions and should be good moving forward next time I update code-server.

A bit background on the change: We did reroute the default extension dir in conda packages as conda environment should be self-contained and not write to anything in your system outside of $CONDA_PREFIX. Thus installing the extensions by default outside of the environment violated these constraints.


Custom ignore for globals per file

Any change to add something like, adding a commented GLOBALS line followed by globals you want to ignore at top of your file would read those globals and not highlight them?
-- GLOBALS: math, table, string
Would ignore the listed globals.

It is already supported.
--- luacheck: globals foo bar

Nice.


Ontology updates

New ontology updates
Some fixes to KRT
Fix and tests added for CombinatorialSynonymGenerator
See individual commits for details

integration tests passed https://github.com/AstraZeneca/KAZU/actions/runs/11369065257


Warning message when using typescript 5 and @itwin/eslint-plugin 3.7.8

Following error message appears when trying to use @itwin/eslint-plugin 3.7.8 and typescript 5 in the same project:
WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree. You may find that it works just fine, or you may not. SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <4.5.0 YOUR TYPESCRIPT VERSION: 5.0.4 Please only submit bug reports when using the officially supported version.
Upgrading to version '^4.0.0-dev.44' gives a new error message:
ESLint couldn't find the config "plugin:@itwin/ui" to extend from. Please check that the name of the config is correct.
To solve the problem I had to remove this section from my package.json:
eslintConfig": {     "plugins": [       "@itwin"     ],     "extends": "plugin:@itwin/ui"   },
and also needed to upgrade to eslint '^8.44.0' and create a eslint.config.js file (this last bit is mentioned in the README.MD, not quite clear which version of @itwin/eslint-plugin requires it though)
The upgrade path is a bit rough. and its still unclear if it's fine to go with a dev version (i.e 4.0.0-dev.44') into production.

the dev prerelease version of this package is not compatible with eslint@7, so you can't extend plugin:@itwin/*. Ideally #46 would resolve this


Combine() helper function.

Combine function to address proposed enhancement in #167.
I opted to call it Combine instead of Append. I thought Append might imply that the original negroni is modified, like the builtin append does for slices, but that is not what happens here.

Current coverage is 86.66% (diff: 100%)

Merging #170 into master will increase coverage by 0.30%

@@             master       #170   diff @@
==========================================
  Files             5          5
  Lines           176        180     +4
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            152        156     +4
  Misses           18         18
  Partials          6          6

Powered by Codecov. Last update b0a6f45...94c093d

Awesome, thank you @williamhaley !
I think the implementation is great, but something feels slightly off to me about Combine as the method name, but I can quite place why. I agree that append has special semantics in Go so it'd be good to not overload that term. I'm wondering if maybe With could work? Then usage of the API would look something like:
router := mux.NewRouter()
apiRoutes := mux.NewRouter()

// create common middleware to be shared across routes
common := negroni.New(
    Middleware1,
    Middleware2,
)

// create a new negroni for the api middleware
// using the common middleware as a base
router.PathPrefix("/api").Handler(common.With(
  APIMiddleware1,
  negroni.Wrap(apiRoutes),
))

I hear ya @jszwedko. Something felt a bit off to me too about Combine. Maybe that's better left as a top-level function for instantiation rather than a method on an existing instance.
Anyway, I renamed to With, which I agree feels a bit better.

Awesome, I really like this, thanks @williamhaley

Thanks @jszwedko!


New error

error: Uncaught (in promise) TypeError: error sending request for url (http://localhost:11434/api/generate): error trying to connect: tcp connect error: Connection refused (os error 61)
at async mainFetch (ext:deno_fetch/26_fetch.js:277:12)
at async fetch (ext:deno_fetch/26_fetch.js:504:7)
at async getkeywords (file:///home/runner/work/airenamer/airenamer/main.ts:12:20)
at async file:///home/runner/work/airenamer/airenamer/main.ts:45:24

the server isn't running. Is ollama installed? or is the service running?

Now I run it, but here is new error:
error: Uncaught (in promise) Error: Is a directory (os error 21): copy '/Users/yevhenii/Downloads/253/20240122135847873342000000-o.jpg' -> '/Users/yevhenii/Downloads/253/'
at Object.copyFileSync (ext:deno_fs/30_fs.js:72:7)
at file:///home/runner/work/airenamer/airenamer/main.ts:47:12
at eventLoopTick (ext:core/01_core.js:183:11)
@.*** 253 %

7.2.2024 о 16:47 Matt Williams @.***> написав(ла):
the server isn't running. Is ollama installed? or is the service running?
—
Reply to this email directly, view it on GitHub https://github.com/technovangelist/airenamer/issues/7#issuecomment-1932202572, or unsubscribe https://github.com/notifications/unsubscribe-auth/AONQTWESZSKSFCNWJU2LMV3YSOHXZAVCNFSM6AAAAABC5OI622VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZSGIYDENJXGI.
You are receiving this because you authored the thread.

yevhenii@MBP-Yevhenii 253 % airenamer
Error: 404: Not Found
error: Uncaught (in promise) Error: Is a directory (os error 21): copy '/Users/yevhenii/Downloads/253/20240122135847873342000000-o.jpg' -> '/Users/yevhenii/Downloads/253/'
at Object.copyFileSync (ext:deno_fs/30_fs.js:72:7)
at file:///home/runner/work/airenamer/airenamer/main.ts:47:12
at eventLoopTick (ext:core/01_core.js:183:11)
yevhenii@MBP-Yevhenii 253 %


⚠ Bofrost.es has degraded performance

In 97e3040, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1607 ms

Resolved: Bofrost.es performance has improved in a113973 after 8 minutes.


[CLIPPER-61] Fix hash function for serializable inputs, add cache metrics

Also, can you rebase on develop so this is mergeable?

Rebased on develop

LGTM


Add ping endpoint

As per c# api.
Allows testing deployment without worrying about access tokens.
Will also be useful for health monitoring.
Context
Deploying
Testing
$ curl -i http://localhost:3000/ping
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
ETag: W/"04afe236f86d27cf0155166c38e27919"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 7140f427-09de-4b50-91a0-4dfa32aacc08
X-Runtime: 0.006820
Transfer-Encoding: chunked

{"course_count":4}

We can use the health_check gem for this @timabell

@timabell we should probably add this feature in the rails boilerplate

ahrr

well at least I won't have to work out why my test has weird numbers

Actually, I think that the ping endpoint can be and should be slightly different from the health_check one:
health_check

complete check that includes external resources
may incur a little extra load as it checks resources
may block if certain resources aren't available

ping

lightweight, just tells you the app is responding
provides SHA of the latest commit and possibly other hard-coded values

I can see how these two can co-exist.


Support Remote kubernetes clusters

Similar to Flux2, it would be really cool if External Secrets supported the ability for a given ES to be reconciled within one cluster and the resulting Secret created on another.
This would allow environments/clusters where you want to ensure that only customer using secrets are on (e.g. control plane vs data planes) and no secret is on the cluster that may expose the rest of your secrets to the cluster.

Hi ! This issue is a duplicate from #547, and already has a draft PR for it #707 :)

I think this is slightly different if i understand it correctly. The idea is that the secret will be created in a different cluster - so you basically push secrets to a different cluster. This use-case should be covered in #641. And would with the current proposal be a two-step process:

create an ExternalSecret to create the secret in the same cluster
create an SecretSink to push that secret to the external cluster

I think this is slightly different if i understand it correctly. The idea is that the secret will be created in a different cluster - so you basically push secrets to a different cluster. This use-case should be covered in #641. And would with the current proposal be a two-step process:

create an ExternalSecret to create the secret in the same cluster

create an SecretSink to push that secret to the external cluster

Correct that is the kind of functionality I was looking for

I opened #976 to track progress on the SecretSink proposal, this will allow pushing secrets to another cluster.


Direct forward index creation

This PR allows us to create forward_index instances directly, rather than only being able to create them from inverted_index or from libsvm formatted data.
While seemingly minor, this change will allow us to have classification-specific analyzers that can create real-valued features, which was not possible before without using pre-generated libsvm formatted data.
This change also includes a lot of refactoring around postings_* and the multiway merge sort in a way that should make the code a bit prettier, and also signify intents a little better. For example, inverted_index::postings_data_type now explicitly states that the feature values are uint64_t, where forward_index::postings_data_type now explicitly states that they are doubles.
This changes the postings format for forward_index slightly (total_counts can now correctly be a double for forward_index, so we can get things like proper instance-scaling!), so you may need to regenerate indexes that you have on disk if you're using develop anywhere.

Oh I just love old compiler bugs. Working on a workaround for gcc < 4.8.3... I'll ping you when I think I've got this working.

OK, looks like I've fixed all of the CI issues...
@smassung, this is ready for review.

Travis failed on OS X because of the winnow accuracy being too low. Just reran it. I wonder if winnow is working correctly...

This is probably spurious. Winnow didn't change, and I know that the forward index itself is fine (if I were to switch back to using uint64_t for total_counts instead of FeatureValue, it produces a bit-exact postings.index to the tip of the develop branch).

Oh, I'm not suggesting it was your changes that did anything. Winnow has been like this for a while (we check if the accuracy on binary classification is >65%...).

Is it numerically unstable for non-separable input, maybe?

Yeah, maybe. Although the dataset is ceeaus which is clearly separable.
In any event, I'm satisfied. Merging.


Incompatible with python 3.x

The library's source files contain syntax incompatible with python 3.x, notably the print statement (when it should be a function). The syntax is otherwise not yet adapted for python 3.x, e.g.: old-style string formatting (the % operator), old-style exception handlers (comma instead of 'as'), and so on. The total amount of corrections to be made for python 3.x support is not so large.
As of version 0.1.3, pyautocad causes syntax errors on python 3.4. Please update the library ASAP.

I've added Python 3 compatibility. You could try version 0.2.0, it's released on PyPI.
Unit tests are passed. Only test_contrib_tables.py fails due to tablib incompatibility.
I don't use AutoCAD (or any CAD) anymore, and can't fully test it.

>>> from pyautocad import Autocad, APoint
>>> acad = Autocad()
>>> p0 = APoint(0,0)
>>> p1 = APoint(0,2)
>>> p0
APoint(0.00, 0.00, 0.00)
>>> p1
APoint(0.00, 2.00, 0.00)
>>> acad.model.AddEllipse(p0, p1, 0.5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python38\lib\site-packages\pyautocad\api.py", line 85, in model
    return self.doc.ModelSpace
  File "C:\Python38\lib\site-packages\pyautocad\api.py", line 74, in doc
    return self.app.ActiveDocument
  File "C:\Python38\lib\site-packages\pyautocad\api.py", line 63, in app
    self._app = comtypes.client.GetActiveObject('AutoCAD.Application', dynamic=True)
  File "C:\Python38\lib\site-packages\comtypes\client\__init__.py", line 180, in GetActiveObject
    obj = comtypes.GetActiveObject(clsid, interface=interface)
  File "C:\Python38\lib\site-packages\comtypes\__init__.py", line 1245, in GetActiveObject
    oledll.oleaut32.GetActiveObject(byref(clsid), None, byref(p))
  File "_ctypes/callproc.c", line 948, in GetResult
OSError: [WinError -2147221021] Operation unavailable
>>>


chef vault for Kerberos

added chef vault download recipe and chef vault install recipe to download, configure, and install the chef vault gem package over cluster
modified bach_krb5 recipe upload_keytabs to use chef vault encrypts and save keytab files in databag
modified bcpc-hadoop to decrypt the keytabs file from chef vault
added in chef-vault cookbook downloading when setup chef cookbook for the cluster

Hi Ray, these two commits need to be rebased into a single commit please.

covered by new PR : https://github.com/bloomberg/chef-bach/pull/290


Create Blog “kawaki”

Automatically generated by Netlify CMS

👷 Deploy Preview for koyomiy processing.

Name
Link

🔨 Latest commit
c4acae5cb6cfe207ba08a827db4cb16e3ee94721

🔍 Latest deploy log
https://app.netlify.com/sites/koyomiy/deploys/62d25df3b4c5bb0008598ec8


Addition of the Derivatives package

I am a mathematics student who uses an application that uses KaTeX, and noticed that this package isn't currently present.
I find it very tedious to continuously have to type: $\dfrac{\partial^2 f}{\partial y \partial x}$ to do a second-degree partial derivative, for example. By contrast: $\pdv{f}{y, x}$ does this exactly.
Although this library can be self-implemented in many contexts by defining my own macros, this is not possible in applications such as Notion.
Source: https://ctan.org/pkg/derivative?lang=en

This might be a duplicate of #3038. I'm tempted to look how we could implement that ourselves. That should boil down to edit the \frac family of functions. I guess they are defined here: https://github.com/KaTeX/KaTeX/blob/a5222165ef4aa29d903558cdc93f0fce7fc01217/src/functions/genfrac.js#L243

@visika Thanks for spotting the duplicate.  I'll close this issue, and suggest further discussion in #3038.
I wouldn't recommend using any of the genfrac code.  Instead, I would recommend using the macro system; see src/macros.js.  You can return a sequence of tokens that calls \frac instead of redefining \frac.


Add containerPool container histogram metric

There has container start relative metric in FunctionFullContainerPool,
It is better to provide container size histogram metric as well

[x] Add containerPool container size histogram metric
[x] Add pod creation consume time metric
[x] Add docker container creation consume time metric

Description

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Scheduler
[x] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[ ] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[ ] Bug fix (generally a non-breaking change which closes an issue).
[x] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[x] I signed an Apache CLA.
[x] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Codecov Report

Merging #5222 (207b451) into master (3e3414c) will decrease coverage by 39.94%.
The diff coverage is 0.00%.

:exclamation: Current head 207b451 differs from pull request most recent head 439d6d0. Consider uploading reports for the commit 439d6d0 to get more accurate results

@@            Coverage Diff             @@
##           master   #5222       +/-   ##
==========================================
- Coverage   44.49%   4.54%   -39.95%
==========================================
  Files         238     238
  Lines       13957   13972       +15
  Branches      570     571        +1
==========================================
- Hits         6210     635     -5575
- Misses       7747   13337     +5590

Impacted Files
Coverage Δ

...in/scala/org/apache/openwhisk/common/Logging.scala
41.17% <0.00%> (-33.83%)
:arrow_down:

...re/containerpool/kubernetes/KubernetesClient.scala
0.00% <0.00%> (ø)

...ontainerpool/v2/FunctionPullingContainerPool.scala
0.00% <0.00%> (-80.33%)
:arrow_down:

.../main/scala/org/apache/openwhisk/core/WarmUp.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ain/scala/org/apache/openwhisk/spi/SpiLoader.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...scala/org/apache/openwhisk/core/FeatureFlags.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...la/org/apache/openwhisk/http/BasicRasService.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...pache/openwhisk/http/LenientSprayJsonSupport.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...ache/openwhisk/core/database/DocumentFactory.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

...che/openwhisk/core/invoker/LogStoreCollector.scala
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 121 more

Continue to review full report at Codecov.

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

LGTM other than my one comment

@ningyougang can we get this merged in? This is a useful metric to have available along with the container pool memory that's already there

@ningyougang can we get this merged in? This is a useful metric to have available along with the container pool memory that's already there

Oh, ok


Additional constraints that might be worth checking

Would it make sense to constrain the following two things in the specs and cldf validate?

The primary key of a table is its #id.
Every #reference (#parameterReference, #languageReference, #cognatesetReference) where that is possible does correspond to a foreign key relationship

I have just looked into the code of cldf validate. The basic paradigm of that web of Python code makes it easy to add validators that operate on all values of a single column, it makes it possible to operate on two columns of the same table (cf. pycldf.validators.valid_igt), but adding validators that operate on the level of table relationships (like the 2 I suggest here) or on different colums of different tables (like the other ones I have in the referenced issue) seems non-trivial, so I cannot just show you a proof-of-concept.

I don't really understand. So do you mean

if a table has an #id column, it must be declared as primaryKey and if it declares a primaryKey, it must be a column with propertyUrl #id

?

Regarding the second point: pycldf does that - sort of: It adds foreign key constraints to the metadata when you put together the metadata object programmatically, see https://github.com/cldf/pycldf/blob/273f424e03401ceecf0fe07dac08793a2602b254/src/pycldf/dataset.py#L344-L349
So when writing the metadata to file, the constraint is there.

I would not want the spec to dictate what to use as primary key of a table. It's clear - I hope - that any #id column must be unique, but "primary key" for many means a natural key, not a synthetic one, as #id often is.

I did indeed mean

if a table has an #id column, it must be declared as primaryKey and if it declares a primaryKey, it must be a column with propertyUrl #id

Take, for example, a FormTable with a languageReference column in a dataset that has also got a LanguageTable. Currently, there's a gazillion different options, but I think a CLDF program should not have to handle all of them, but assume that the dataset consistent, have undefined behaviour if it is not, and CLDF should reject the inconsistent options.

LanguageTable has no ID column and no primary key. (There is no foreign key relationship.)
LanguageTable has no ID column, but a primary key. (There is no foreign key relationship.)
LanguageTable has no ID column, but a primary key. There is a foreign key relationship from languageReference to the primary key.

(These three are invalid anyway.)

LanguageTable has an ID column, but no primary key. (There is no foreign key relationship.)
LanguageTable has both an ID column, and a different column as primary key. There is a foreign key relationship from languageReference to the primary key.
LanguageTable has both an ID column, and a different column as primary key. There is a foreign key relationship from languageReference to the ID.
LanguageTable has both an ID column, and a different column as primary key. There is no declared foreign key relationship.
LanguageTable may or may not have any of ID and primary key. There is a foreign key relationship to yet another column of that table.

I would like it if code could ignore handling these cases, and just work with

LanguageTable has an ID column, and that column is its primary key. There is a foreign key relationship from languageReference to the ID.

We already equate reference properties with foreign key relations in https://github.com/cldf/cldf/blob/3cfcb463e830f9cd9db8f7f4ca04e371dc11b305/README.md#foreign-keys, so I'm just suggesting we enforce that in validation.

If you think people would want natural keys as their primary key, and the CSVW specs and our tooling around them are fine with designating arbitrary colums (as seen from the database structure) as targets of foreign key relationships, I don't mind the primary keys.

Uniqueness of id is already explicit in https://github.com/cldf/cldf/blob/3cfcb463e830f9cd9db8f7f4ca04e371dc11b305/README.md#identifier: “… which uniquely identifies a row in the table …”, so yes, that's definitely clear.

I see that more constraints would make tooling simpler. But there's also the (somewhat secondary) design goal

it is often possible to retrofit existing CSV files into the CLDF framework by adding a metadata description

and just recently, I had such a case: CLTS already distributed its data as a set of CSV files. These could be turned into a CLDF dataset simply by adding metadata. And this metadata does have foreign keys to non-#id columns, see https://github.com/cldf-clts/clts/blob/ec173ae3df20c37f50ee852525b347ff52b19ff5/cldf-metadata.json#L200-L205
I wouldn't want to lose this flexibility.

I agree, this was a nice example of the flexibility of cldf!

So from what you said and “if a table1.csv makes reference to a table2.csv, and both are part of the dataset, then mentioning the ID from table2 in a column of table1 (typically using the column-name table2_ID) is sufficient as a reference, and this is implicit equivalent to a foreignKeys property of table1.csv”, it means I have to first check whether there is an existing foreignKey relationship specified, if so I have to use that, and if there isn't, then I have to construct one pointing to the ID?
Actually, I don't really think that's particularly cool, that's still a hell of a lot of special cases.
But okay, then I will need to make heavy use of auto_constraints and ignore the implicit semantics of #blablaReference in favour of those explicit relationships. Given that I'm in the business of editing datasets, I should be fine enforcing auto_constraints and changing metadata, but I would prefer if that wasn't the general solution.

I have to admit, that I don't really understand. Do you suggest that what auto_constraint does should instead be part of the spec? I.e. the presence of a reference property and the existence of the referenced component should make specification of a corresponding foreignKey constraint superfluous? I agree, that that's somewhat the spirit of the spec. The big drawback is that CSVW tools (of which there aren't too many, admittedly) wouldn't know about these relations, then.
OTOH, with the current status you get the flexibility semantic relations which may not be enforceable - a bit like using SQLite with PRAGMA foreign_keys = OFF;. What exactly is making your "business of editing datasets" more complicated in this scenario?
Re-reading your comment: Where in the spec does it say a reference property MUST be accompanied by a corresponding foreignKey constraint?

Ok, I think I got it now. I agree that

implicitly equivalent to a foreignKeys property

is not

SQLite  with foreign keys turned off

So, yes, I think rephrasing this using SHOULD would be the best solution.

Okay! The other points, I think, have been addressed and shown to be invalid because of good use cases, prior commitment in the specs, or misunderstandigs on my part. Sorry that I'm not expressing myself well in this thread.

I still don't understand, what exactly you find difficult to implement in the "MUST" case. Could you give an example?

pycldf for example inserts these foreignKey constraints in the metadata upon reading. That's admittedly a bit implicit, and means you can't roundtrip metadata without these foreign keys. But it doesn't feel more complicated in terms of implementation than - say - reacting to metadata being changed during the lifetime of a dataset.

Ok, I'll try to re-think this.

A reference property for which the referenced component is declared in a dataset means: "There is a row in the other component, which is related to this row".
We want to allow the flexibility to reference the other row using any unique column.

If we drop the requirement that the reference property is equivalent to a foreign key constraint, I think we violate assumption 1. So I would retract my suggestion that "SQLite with foreign keys turned off" is a permissible scenario. Instead, if you cannot guarantee referential integrity, you'd have to drop the reference property.
I see, though, how this makes implementing an CLDF editor complicated - if you want to ensure that the data is valid at any point "in the editor". With pycldf you can write invalid CLDF datasets, i.e. ones where foreign key constraints are not satisfied. So any "save" must be followed by a "validate". I agree that that's a bit cumbersome. Of course, doing the editing in a relational database would be preferable. But in that case, isn't the "reference property = foreign key constraint" even easier to implement?
In general, I think CLDF wants to make life easier for data consumers - and only to a lesser extent for data creators. So I'm now leaning (coming around full-circle) towards MUST - i.e. the status quo.

I am confused and expressing myself confusingly, still. (This isn't the first time. I should find a better way to communicate with you, because most often, you need too much time to unpack my bulk of misconceptions to one or two small items that may actually be worth considering.)
I would prefer

if a table1.csv makes reference to a table2.csv, and both are part of the dataset, then mentioning the ID from table2 in a column of table1 (typically using the column-name table2_ID) is sufficient as a reference, and this is implicit equivalent to a foreignKeys property of table1.csv. The foreignKey entry SHOULD nonetheless be provided

over the current

if a table1.csv makes reference to a table2.csv, and both are part of the dataset, then mentioning the ID from table2 in a column of table1 (typically using the column-name table2_ID) is sufficient as a reference, and this is implicit equivalent to a foreignKeys property of table1.csv

and I would have originally preferred a

if a table1.csv makes reference to a table2.csv, and both are part of the dataset, then mentioning the ID from table2 in a column of table1 (typically using the column-name table2_ID) MUST be accompnied by the following foreignKeys property of table1.csv

There were two things missing in my brain before today. Firstly, I had not mentally integrated the specs well enough to remember this exact passus, so I thought there would be ambiguitiy, instead of ‘free foreign key metadata’. Secondly, I forgotten exactly what auto_constraints does and had not dug deep enough into pycldf to realize that it is called upon reading the dataset.
With those two pieces of information, I would prefer that “foreignKey relationships SHOULD be explicit in the metadata”, or even better “MUST”. You see, I meant to express a preference for the future, but phrased it badly so you thought I (wrongly) described how it is right now.
And then cldf validate must of course check this constraint, which is why this is the needle of a good suggestion in my haystack of misconception-based issue.
Does this resolve the confusion?
PS: For editing, I'm not concerned about round-tripping in this instance, so using the implicit auto_constraints is very fine with me. I spoke from the misinformed position where I thought I have to take this into account when reading a dataset that is not up to standard yet, because someone manually messed with the metadata and got it wrong.

Ah, yes. I share some of your confusion - for similar reasons. For me, pycldf - just a reference implementation - has mostly supplanted the actual spec. So yes, I'd also prefer the foreign key constraints to be present in the metadata - and see pycldf's auto_constraints merely as a lenient way of fixing this. So now, to preserve backwards compatibility, "explicit foreign key constraints SHOULD be specified" is the best we can do.
And I also agree that pycldf should also check for inconsistent foreign key constraints - but that should just be filed as issue for cldf/pycldf. (In the context of CLTS I also came across another bug/feature of pycldf. It currently gives foreign key constraints a pass, even if they reference non-unique columns - as long as there's at least one matching row.)
At some point, I think, I'd like to make the SQLite representation of a dataset part of the spec, since this will make dealing with constraints somewhat easier.

@Anaphory please have a look at https://github.com/cldf/cldf/commit/4b971030c3df9237f9dcefcc4fd1c7b47ce7c8f3
I think, that's what I meant originally, but expressed horribly in v1.0 of the spec.


OVERLAY_CLICK problem with iOS

Hi,
I'm having troubles with the OVERLAY_CLICK event, seems he's not working on iOS.
There is my code : http://pastebin.com/Cs3TvyJw
Can someone help me please ?

try to pass your click function directly as a function
{
...
...
click: function(){
  this.doSomething..
}
}, function(kmlayer)...

Also, try this please: #541
there seem to be a workaround for your problem.


feat(component.vue): below slot

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat: add logs command

WHAT

Add logs cells command;

LGTM. No tests though... ;-)

Since I'll be working on the next log command I could add tests to both :D should be fairly easy


Every few seconds on Bungee, concurrent modification problem

02:39:40 [SEVERE] Task BungeeTask(sched=net.md_5.bungee.scheduler.BungeeScheduler@2b30a42c, id=9, owner=vg.civcraft.mc.bettershards.bungee.BetterShard
sBungee@1b45c0e, task=vg.civcraft.mc.bettershards.bungee.ServerHandler$1@75d2da2d, delay=10000, period=10000, running=true) encountered an exception
java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.remove(HashMap.java:1443)
    at vg.civcraft.mc.bettershards.bungee.ServerHandler$1.run(ServerHandler.java:68)
    at net.md_5.bungee.scheduler.BungeeTask.run(BungeeTask.java:63)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Should be fixed by @BlackXnt 's PR.

Was it verified as fixed prior to closing?

The code that caused this error no longer exists.

Awesome - saw the "should be" fixed... QA gene turned on. :)

:D Valid QQ!


[FEATURE] Print out the task shuffle write time statistics by table format in log

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the feature
Currently, we can't find out the slow shuffle-server in the client side log, this is not ease to use, especially for server with terriable GC.
I hope the metric with the server dimension for one spark task could be shown like the following table format in the client side log.

Min
25th percentile
Median
75th percentile
Max

Shuffle Write Duration
10s
15s
25s
30s
4min

Shuffle Write Size / Records
20M / 10000
20M / 10000
20M / 10000
20M / 10000
20M / 10000

Shuffle server list
<IP_ADDRESS>-21001
<IP_ADDRESS>-21001
<IP_ADDRESS>-21001
10.23.315.14-21001
<IP_ADDRESS>-21001

Motivation
No response
Describe the solution
No response
Additional context
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Feel free to pick this up.

Are you interested on this? @myandpr

Are you interested on this? @myandpr

Fine，please assign to me, thanks @zuston !

Should we use Spark's metrics instead of log?

Should we use Spark's metrics instead of log?

Should we use Spark's metrics instead of log?

This may be also valid for MR and Tez. BTW, the task metrics for low shuffle-server don't exist. I haven't seen this metric.

Should we use Spark's metrics instead of log?

This may be also valid for MR and Tez. BTW, the task metrics for low shuffle-server don't exist. I haven't seen this metric.

This should be a metric instead of log. The log seems weird.

So how to meet the requirement if using metrics ? @jerqi Can you give some ideas if you want

So how to meet the requirement if using metrics ? @jerqi Can you give some ideas if you want

Spark metrics system allows user to add extra metrics. You can refer to https://simhadri-g.medium.com/custom-metrics-source-in-apache-spark-ca30a3b362dd

So how to meet the requirement if using metrics ? @jerqi Can you give some ideas if you want

Spark metrics system allows user to add extra metrics. You can refer to https://simhadri-g.medium.com/custom-metrics-source-in-apache-spark-ca30a3b362dd

Looks good. ping @myandpr If you have any idea, feel free to discuss

So how to meet the requirement if using metrics ? @jerqi Can you give some ideas if you want

Spark metrics system allows user to add extra metrics. You can refer to https://simhadri-g.medium.com/custom-metrics-source-in-apache-spark-ca30a3b362dd

Looks good. ping @myandpr If you have any idea, feel free to discuss

fine,I think I understand this feature. Let me look at the logic about spark metrics system.

So how to meet the requirement if using metrics ? @jerqi Can you give some ideas if you want

Spark metrics system allows user to add extra metrics. You can refer to https://simhadri-g.medium.com/custom-metrics-source-in-apache-spark-ca30a3b362dd

Looks good. ping @myandpr If you have any idea, feel free to discuss

fine,I think I understand this feature. Let me look at the logic about spark metrics system.

Maybe we could introduce extra tab page in spark UI(runtime + history server) to show more infos about shuffle-servers, like kyuubi did. https://github.com/apache/kyuubi/tree/master/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/spark/ui