Hash mismatch in TestModelComponentEvidence.test_same_2

Thanks for cyclonedx!
Downstream on conda-forge i'm seeing the following when running the test suite against the as-installed 2.1.1: is there cause for concern? I'll likely just skip it and move on, but hash tricks seem like rather fundamental thing that other features might be relying on for correctness...

=================================== FAILURES ===================================
____________________ TestModelComponentEvidence.test_same_2 ____________________
self = <tests.test_model_component.TestModelComponentEvidence testMethod=test_same_2>
def test_same_2(self) -> None:
    ce_1 = ComponentEvidence(copyright_=[Copyright(text='Commercial'), Copyright(text='Commercial 2')])
    ce_2 = ComponentEvidence(copyright_=[Copyright(text='Commercial 2'), Copyright(text='Commercial')])

  self.assertEqual(hash(ce_1), hash(ce_2))

E       AssertionError:<PHONE_NUMBER>010453410 != -5735625735841950921
test_model_component.py:268: AssertionError
=============================== warnings summary ===============================
test_bom.py: 1 warning
test_model_component.py: 22 warnings
test_output_json.py: 32 warnings
test_output_xml.py: 52 warnings
$PREFIX/lib/python3.10/site-packages/cyclonedx/model/component.py:739: DeprecationWarning: license_str is deprecated and has been replaced with licenses to align with the CycloneDX standard
warnings.warn(
test_bom.py::TestBom::test_metadata_component
$SRC_DIR/src/tests/test_bom.py:49: DeprecationWarning: Please use assertEqual instead.
self.assertEquals(metadata.component, hextech)
test_component.py::TestComponent::test_from_file_with_path_for_bom
$PREFIX/lib/python3.10/site-packages/cyclonedx/model/component.py:731: DeprecationWarning: namespace is deprecated and has been replaced with group to align with the CycloneDX standard
warnings.warn(
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED test_model_component.py::TestModelComponentEvidence::test_same_2 - Ass...
============ 1 failed, 197 passed, 3 skipped, 109 warnings in 4.93s ============

versions

    _libgcc_mutex:        0.1-conda_forge           conda-forge
    _openmp_mutex:        4.5-1_gnu                 conda-forge
    attrs:                21.4.0-pyhd8ed1ab_0       conda-forge
    cyclonedx-python-lib: 2.1.1-pyhd8ed1ab_0        local
    distlib:              0.3.4-pyhd8ed1ab_0        conda-forge
    filelock:             3.6.0-pyhd8ed1ab_0        conda-forge
    icu:                  70.1-h27087fc_0           conda-forge
    importlib-metadata:   4.11.3-py310hff52083_1    conda-forge
    importlib_resources:  5.6.0-pyhd8ed1ab_0        conda-forge
    iniconfig:            1.1.1-pyh9f0ad1d_0        conda-forge
    jsonschema:           4.4.0-pyhd8ed1ab_0        conda-forge
    ld_impl_linux-64:     2.36.1-hea4e1c9_2         conda-forge
    libffi:               3.4.2-h7f98852_5          conda-forge
    libgcc-ng:            11.2.0-h1d223b6_14        conda-forge
    libgomp:              11.2.0-h1d223b6_14        conda-forge
    libiconv:             1.16-h516909a_0           conda-forge
    libnsl:               2.0.0-h7f98852_0          conda-forge
    libstdcxx-ng:         11.2.0-he4da1e4_14        conda-forge
    libuuid:              2.32.1-h7f98852_1000      conda-forge
    libxml2:              2.9.12-h22db469_2         conda-forge
    libxslt:              1.1.33-h8affb1d_4         conda-forge
    libzlib:              1.2.11-h166bdaf_1014      conda-forge
    lxml:                 4.8.0-py310h5764c6d_1     conda-forge
    ncurses:              6.3-h9c3ff4c_0            conda-forge
    openssl:              3.0.2-h166bdaf_1          conda-forge
    packageurl-python:    0.9.9-pyhd8ed1ab_0        conda-forge
    packaging:            21.3-pyhd8ed1ab_0         conda-forge
    pip:                  22.0.4-pyhd8ed1ab_0       conda-forge
    platformdirs:         2.5.1-pyhd8ed1ab_0        conda-forge
    pluggy:               1.0.0-py310hff52083_3     conda-forge
    py:                   1.11.0-pyh6c4a22f_0       conda-forge
    pyparsing:            3.0.7-pyhd8ed1ab_0        conda-forge
    pyrsistent:           0.18.1-py310h5764c6d_1    conda-forge
    pytest:               7.1.1-py310hff52083_1     conda-forge
    pytest-cov:           3.0.0-pyhd8ed1ab_0        conda-forge
    python:               3.10.4-h2660328_0_cpython conda-forge
    python_abi:           3.10-2_cp310              conda-forge
    readline:             8.1-h46c0cb4_0            conda-forge
    setuptools:           62.0.0-py310hff52083_0    conda-forge
    six:                  1.16.0-pyh6c4a22f_0       conda-forge
    sqlite:               3.37.1-h4ff8645_0         conda-forge
    tk:                   8.6.12-h27826a3_0         conda-forge
    toml:                 0.10.2-pyhd8ed1ab_0       conda-forge
    tomli:                2.0.1-pyhd8ed1ab_0        conda-forge
    tox:                  3.24.5-pyhd8ed1ab_1       conda-forge
    types-setuptools:     57.4.12-pyhd8ed1ab_0      conda-forge
    types-toml:           0.10.4-pyhd8ed1ab_0       conda-forge
    typing-extensions:    <IP_ADDRESS>-hd8ed1ab_0       conda-forge
    typing_extensions:    <IP_ADDRESS>-pyha770c72_0     conda-forge
    tzdata:               2022a-h191b570_0          conda-forge
    virtualenv:           20.14.0-py310hff52083_1   conda-forge
    wheel:                0.37.1-pyhd8ed1ab_0       conda-forge
    xmldiff:              2.4-pyhd8ed1ab_0          conda-forge
    xz:                   5.2.5-h516909a_1          conda-forge
    zipp:                 3.8.0-pyhd8ed1ab_0        conda-forge
    zlib:                 1.2.11-h166bdaf_1014      conda-forge

that is strange. i would expect these issues in older python implementations,
there hashes of tuples and sets were inconsistent.
this test ran on platform linux -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0 -- $PREFIX/bin/python
see https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=486922&view=logs&j=656edd35-690f-5c53-9ba3-09c10d0bea97&t=e5c8ab1d-8ff9-5cae-b332-e15ae582ed2d&l=290

took the hint, and triggered a test run in our own env,
on latest master branch - https://github.com/CycloneDX/cyclonedx-python-lib/actions/runs/2104143406
on tag v2.1.1 - https://github.com/CycloneDX/cyclonedx-python-lib/actions/runs/2104149187

Hello @bollwyvl ,
thanks for the report & maintaining it for conda-forge..
Our own tests on v2.1.1 (running in venv via tox) on ubuntu with Python 3.10.4 are passing - see https://github.com/CycloneDX/cyclonedx-python-lib/runs/5855876653?check_suite_focus=true#step:10:16
thing that might affect the tests: we are setting env var  "PYTHONHASHSEED=0" in our test setup. see https://github.com/CycloneDX/cyclonedx-python-lib/blob/main/tox.ini#L31
could you do the same and see if the tests pass?

Well: setting the PYTHONHASHSEED to 0 does work, but if it relies on that for regular runtime behavior, that deems dubious. Closing either way, thanks for looking into it.

@madpah  FYI.
need to check which model actually depends on item order for hashing.
afaik none should do so. what am i missing?


refactor: make kvbackend reusable across rebuilds

I hereby agree to the terms of the GreptimeDB CLA
What's changed and what's your intention?
Make kvbackend reusable across rebuilds for the RebuildableInstance.
Some tests, e.g. kafka wal tests, requires the state of kvbackend to be preserved across rebuilds.
Checklist

[ ]  I have written the necessary rustdoc comments.
[ ]  I have added the necessary unit tests and integration tests.
[x]  This PR does not require documentation updates.

Refer to a related PR or issue link (optional)

You could convert the PR into a draft instead of adding [WIP] to the title. Then the action will remove the invalid title label.

Please resolve confilicts and CI failures first.


Huawei HUAWEI S6720-54C-EI-48S-AC [Missing SNMP Polling Profile]

Device Vendor:
Device Model:
System Object Identifier (SysOID):
List of critical metrics that you expect in the profile (does not need to be all-inclusive, just a general idea of your expectations):

Please provide a public gist with a sanitized (sensitive information removed) SNMP walk of the device. Providing MIB files is not a substitute for an SNMP walk and failure to provide one here will result in delays for closing this issue. The output of these commands shows the "true story" of what a device will respond to in SNMP and is used to ensure that our profiles are efficient and accurate for your devices.
Gist Link:

Example SNMP walk commands:
# v2c example
snmpwalk -v 2c -t 10 -On -c $COMMUNITY_STRING $IP_ADDRESS . >> snmp_walk.out

# v3 example
snmpwalk -v3 -t 10 -l authPriv -u $USERNAME -a MD5|SHA -A $AUTH_PASS -x DES|AES -X $PRIV_PASS -ObentU -Cc $IP_ADDRESS . >> snmp_walk.out

Huawei Switch snmpwalk-X.X.1.2.txt

You have done this before for us but we can only get 5% of the data and rest of them has nothing even missing match profile error disappeared. please reload this to see.

Device included in #341

Hi, Marc,
Can I have the device ymal file link created by you please?
Thanks
[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/twg_koru.png]https://www.twg.co.nz/
Alden Xu
Chapter Member - Deployment and Automation - SRE and Observability
The Warehouse Group
+6494898900tel:+6494898900 Ext. 99668
+6421593719tel:+6421593719
@.*** @.***>
26 The Warehouse Way, Auckland, 0627
PO Box 33470, Takapuna, Auckland, 0740
twg.co.nzhttps://www.twg.co.nz
[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/twl_icon_down_4_group.png]https://www.thewarehouse.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/wsl_icon_down_4_group.png]https://www.warehousestationery.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/nl_icon_down_4_group.png]https://www.noelleeming.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/t7_icon_down_4_group.png]https://www.torpedo7.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/1day_icon_down_4_group.png]https://www.1-day.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/market_icon_down_4_group.png]https://www.themarket.com/
From: Marc Netterfield @.>
Sent: Saturday, 23 July 2022 2:27 AM
To: kentik/snmp-profiles @.>
Cc: Alden Xu @.>; Author @.>
Subject: Re: [kentik/snmp-profiles] Huawei HUAWEI S6720-54C-EI-48S-AC [Missing SNMP Polling Profile] (Issue #347)
Device included in #341 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID:<EMAIL_ADDRESS>
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
Device included in #341https://urldefense.com/v3/__https:/github.com/kentik/snmp-profiles/pull/341__;!!K67FllJIh9kPNuE!jD0l23Ysptg_DquWKp3FhQaI9g-P6m-QBKX4aDrjmzA7aCa6Je5B8Ci9Q7EHQmlAW5wITc9vkOekKW5nA2cGA3nfkyWypWtsXQ$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/kentik/snmp-profiles/issues/347*issuecomment-1192631043__;Iw!!K67FllJIh9kPNuE!jD0l23Ysptg_DquWKp3FhQaI9g-P6m-QBKX4aDrjmzA7aCa6Je5B8Ci9Q7EHQmlAW5wITc9vkOekKW5nA2cGA3nfkyVD9BLknQ$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AY7ULPDHKVL3N7NGTLJSRIDVVKVSRANCNFSM52A74TJA__;!!K67FllJIh9kPNuE!jD0l23Ysptg_DquWKp3FhQaI9g-P6m-QBKX4aDrjmzA7aCa6Je5B8Ci9Q7EHQmlAW5wITc9vkOekKW5nA2cGA3nfkyUlGVTl0Q$.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
P Please consider the environment before printing this e-mail
This email is only intended to be read by the person to whom it is addressed. It may contain information that is confidential, proprietary or the subject of legal privilege. If you are not the person to whom it is addressed you must delete this email and may not use any of the information contained in it. Legal privilege is not waived because you have read this email.

https://github.com/kentik/snmp-profiles/blob/main/profiles/kentik_snmp/huawei/huawei-switches.yml

Thanks Marc
[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/twg_koru.png]https://www.twg.co.nz/
Alden Xu
Chapter Member - Deployment and Automation - SRE and Observability
The Warehouse Group
+6494898900tel:+6494898900 Ext. 99668
+6421593719tel:+6421593719
@.*** @.***>
26 The Warehouse Way, Auckland, 0627
PO Box 33470, Takapuna, Auckland, 0740
twg.co.nzhttps://www.twg.co.nz
[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/twl_icon_down_4_group.png]https://www.thewarehouse.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/wsl_icon_down_4_group.png]https://www.warehousestationery.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/nl_icon_down_4_group.png]https://www.noelleeming.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/t7_icon_down_4_group.png]https://www.torpedo7.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/1day_icon_down_4_group.png]https://www.1-day.co.nz/[https://appsupportstorage.blob.core.windows.net/publicfiles/Signatures/market_icon_down_4_group.png]https://www.themarket.com/
From: Marc Netterfield @.>
Sent: Tuesday, 2 August 2022 2:51 AM
To: kentik/snmp-profiles @.>
Cc: Alden Xu @.>; Author @.>
Subject: Re: [kentik/snmp-profiles] Huawei HUAWEI S6720-54C-EI-48S-AC [Missing SNMP Polling Profile] (Issue #347)
https://github.com/kentik/snmp-profiles/blob/main/profiles/kentik_snmp/huawei/huawei-switches.yml — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID:
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
ZjQcmQRYFpfptBannerEnd
https://github.com/kentik/snmp-profiles/blob/main/profiles/kentik_snmp/huawei/huawei-switches.ymlhttps://urldefense.com/v3/__https:/github.com/kentik/snmp-profiles/blob/main/profiles/kentik_snmp/huawei/huawei-switches.yml__;!!K67FllJIh9kPNuE!jZOx4t8XnTrBGu7j56uF9mplYQBf8IupGOzdSSpTLnMddW5UTHqPZ4OV-HcY_mP3NMZ-eTaWvNWKQe3Js4SKdu-02xoIVlnP1A$
—
Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https:/github.com/kentik/snmp-profiles/issues/347*issuecomment-1201307350__;Iw!!K67FllJIh9kPNuE!jZOx4t8XnTrBGu7j56uF9mplYQBf8IupGOzdSSpTLnMddW5UTHqPZ4OV-HcY_mP3NMZ-eTaWvNWKQe3Js4SKdu-02xqfrZfkXQ$, or unsubscribehttps://urldefense.com/v3/__https:/github.com/notifications/unsubscribe-auth/AY7ULPCXYPCEKJM2JJAV5DDVW7P6VANCNFSM52A74TJA__;!!K67FllJIh9kPNuE!jZOx4t8XnTrBGu7j56uF9mplYQBf8IupGOzdSSpTLnMddW5UTHqPZ4OV-HcY_mP3NMZ-eTaWvNWKQe3Js4SKdu-02xrxiy99Cw$.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
P Please consider the environment before printing this e-mail
This email is only intended to be read by the person to whom it is addressed. It may contain information that is confidential, proprietary or the subject of legal privilege. If you are not the person to whom it is addressed you must delete this email and may not use any of the information contained in it. Legal privilege is not waived because you have read this email.


⚠ Bofrost.at has degraded performance

In 2268779, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1107 ms

Resolved: Bofrost.at performance has improved in 6e62d11 after 13 minutes.


General suggestion portal/area?

Specific to the mastodon instance, is it worth having a specific sub repository/area for suggestions, and/or generalizing this repository to be "mastodon-polocies-and-suggestions"?
For example, a suggestion I'd like to submit is to change the favicon of the web interface of mast.hpc.social to use the current logo instead of the default mastodon icon.
Examples on how to achieve this here https://github.com/mastodon/mastodon/issues/7396 (IIRC at time of posting we're on server version 4.0.2?)

Other example is an area to submit emotes or anything of the sort, in addition to things like changes to the overall configuration of the server. (Character count? )

Maybe issues or discussion here? If the repository is renamed to something more general (that includes policies) it could be a home for that.

Right - there isn't a repository on GitHub for the instance itself since that is hosted elsewhere and not even the configurations are under our version management but are handled by the hosting.
We could rename the repository to something more general, keeping in mind the above, of which policies are just one portion. But discussion of the server can also take place within the instance itself as DMs to admin.

I think it could be nice to have a place for more public discussion? I assume a DM to admin is private.

BTW I don't ahve a problem with the dino logo but I don't think it expresses a particular hpc.social identity. That's why the admin account and repository have the default original hpc.social logo. For the Mastodon card I took the default one that came with the server and added the text and that seems to work well when posted on other media. Not sure if a dino would point people to hpc.social in particular but we can open things up for suggestions.
One positive step would be to upload the graphics to GitHub either in this or tha hpc-social.github.io repository and have a section for "official" and one for "contributed" with acceptance via PRs. This is also discussed in https://github.com/hpc-social/hpc-social.github.io/discussions/42.

Also this repository does have a Discussions area: https://github.com/hpc-social/mastodon-policies/discussions

I made it with the goal of fun branding - the colors match the text one you provided, and the goal was to be a sort of dark, 80s punk cool. I wanted the site (and branding) to be modern and fun. If you look at other tech communities it’s not uncommon to have a mascot.

Maybe issues or discussion here? If the repository is renamed to something more general (that includes policies) it could be a home for that.

this is what I was thinking, since it seems (to me?) like we're targeting having the git be ground zero for managing things

We could rename the repository to something more general, keeping in mind the above, of which policies are just one portion. But discussion of the server can also take place within the instance itself as DMs to admin.

I'm not fond of this unless it's specific to personal issues like moderation. Threads get lost quickly, where as issues/GH discussions are much easier to archive and so on.

I made it with the goal of fun branding - the colors match the text one you provided, and the goal was to be a sort of dark, 80s punk cool. I wanted the site (and branding) to be modern and fun. If you look at other tech communities it’s not uncommon to have a mascot.

Agreed!

At least for the dinosaur, the raw files (xcf) are included https://github.com/hpc-social/hpc-social.github.io/tree/main/assets/img. But I’m pretty sure that post by John Hearns is talking about your text logo @alansill

Realistically it's also worth specifying that suggestions can/should be submitted to [insert what we decide] in the server description? Then mark that issues specific to rules concerns (DMCA, moderation etc.) should be logged via DM to admin?
As for admin, is it worth a discussion on account access?

(Down with the Flu at the moment, apologies for being slow. Hoping to be in touch with your team at LLNL soon @vsoch <3 )

Oh no! I hope it’s flu and not COVID. Feel better soon @FCLC ! Here is some chicken noodle soup 🍜 and a friend 🧸 ❤

I think this discussion on branding is really about a project covering how to promote hpc.social that belongs or at least could reside in the main web site. The project could be "Promoting hpc.social" and could include ideas discussed in https://github.com/hpc-social/hpc-social.github.io/discussions/42 giving a link to a folder of graphics resources and some rules and guidelines for their use. For example, a good policy might be "You are free to use these resources unaltered to produce promotional items such as pins, stickers, mugs, or other items but should not use them to imply endorsement by hpc.social of any commercial product or project. Usage to promote joining hpc.social discussions or projects including the hpc.social mastodon instance is permitted."

Good wishes for your recovery @FCLC!

Good idea @alansill

Not Covid thankfully 😅 Was taking care of my niece last weekend and have been down for the count since.
Did get my app for the RSE Job in with David A. so hopefully works out 😊

Woot! Did you see the posting from something I shared? I found out I can get a little bonus if someone that found it via me is given an offer and accepts. An unexpected bonus of being loud on social media - I am hopeful haha.

Realistically it's also worth specifying that suggestions can/should be submitted to [insert what we decide] in the server description? Then mark that issues specific to rules concerns (DMCA, moderation etc.) should be logged via DM to admin?
As for admin, is it worth a discussion on account access?

We have a mastodon-moderators email group in addition to the internal moderation reporting process that is linked explicitly both on the "About" page and on the policies erpository. That should be enough, right?
"Admin" access is another level in the Mastodon area and I'd be happy to share that access. "Owner" access is the highest level and I think should be tied to me now or if we add another for redundancy, it needs to be with the understanding that this is really just for access to the existence of the server itself and so really closely tied to funding responsibility and related topics.

But what about public discussion? 🤔

Public discussion of moderation or policies? Or of the Mastodon instance itself? Why not just post on Mastodon?
Thinking this through, I see that the request may be the original one -- rename this to a more general name so that the existing Discussions area can be used for more topics. Is that right?

I think @FCLC is saying we might have a place for general discussion about mastodon, could be policy related but not necessarily. My suggestion was to rename this repository so it’s the catch all for any kind of mastodon discussion, and it would still have a policy directory that is very clearly for that.

Okay, done. Please see the renamed repository and README.md info. Close this issue if this meets the needs.

Woot! Did you see the posting from something I shared? I found out I can get a little bonus if someone that found it via me is given an offer and accepts. An unexpected bonus of being loud on social media - I am hopeful haha.

Both you and Todd! IIRC in the field I put down the both of you 😊 (The cover letter addressed David and yourselves)

I think @FCLC is saying we might have a place for general discussion about mastodon, could be policy related but not necessarily. My suggestion was to rename this repository so it’s the catch all for any kind of mastodon discussion, and it would still have a policy directory that is very clearly for that.

Correct, renaming the repository was my "easy way out" for catch all mastodon issues/comments/concerns that are indexable

I just beautified up our GitHub org portal so people arriving find all the links they are looking for! This is in .github/profiles/README.md feel free to tweak!

https://github.com/hpc-social/.github/tree/main/profile

Looks good to me. Closing; feel free to reopen if this does not do it.


fix: update env location in readme

Looks like there's a few spaces in readme too which the editor removed. Are those spaces intentional?

Those spaces were not intentional. Thanks for the update to the docs!


feat(entities): add mutateEntities

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/ngneat/elf/blob/master/CONTRIBUTING.md#commit
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
It's impossible to conditionally choose a mutation operation based on some property of mutated entity
Continuation of:

Discussion: https://github.com/ngneat/elf/discussions/279
PR: https://github.com/ngneat/elf/pull/284

What is the new behavior?
It's possible to conditionally choose a mutation operation based on some property of mutated entity
Does this PR introduce a breaking change?
[ ] Yes
[x] No

@NetanelBasal I've made a new PR, because this way is very different from the original to keep it in the same PR.
I will move it to another file, I'm just temporarily highjacking the existing infra of update :)
Some points not very clear for me yet:

How to name the file? mutate.mutation.ts ? :) (I understand now why the word mutate can work here, but it will be funny to follow the naming pattern, maybe just mutate.ts then, since this is some kind of abstract "mutation frame" for the real mutators :) )

The API of the callback 🤔 - the bad thing that sometimes we won't have an Entity (for example if we want to make some kind of upsert), then in the callback we will have to put the checks even if we know that the Entity is there for sure, but just because the API forces us, I'm not sure if this can be avoided considering the general purpose of the function. But anyways there is question of how to structure that API, as separate args, as an Array or Object etc.

It's a good question. I don't think it's flexible enough. I think we need to think of more options.

Can you summarize where it all began?

I have a reducer in my code which is doing an opposite to upsert, (updelete) , so I was suggesting to add an opposite to upsert to the API of Elf :)

Which way do you currently use to do it?

I have a super specialized reducer for the start:
export const updateOrRemoveProductIdFromCart = (productId: Product["id"]) => {
  store.update((state) => {
    const entity = state.entities[productId];
    if (!entity) {
      return state;
    }
    if (entity.count > 1) {
      const newEntity: typeof entity = { ...entity, count: entity.count - 1 };
      return {
        ...state,
        entities: { ...state.entities, [entity.productId]: newEntity },
      };
    } else {
      const newEntities = { ...state.entities };
      Reflect.deleteProperty(newEntities, entity.productId);
      const newIds = [...state.ids];
      newIds.splice(newIds.indexOf(entity.productId), 1);
      return { ...state, entities: newEntities, ids: newIds };
    }
  });
}

I was planning either to extract the behavior of up-delete and use it like:
  store.update(
    updateOrDelete(id, {
      deleteCondition: (item) => item.count <= 1,
      update: ({ count }) => ({ count: count - 1 }),
    })
  );

Or simply getting the entity first, since this is just one entity in the very small store:
  const cartItem = store.query(getEntity(productId));
  if (!cartItem) {
    return;
  }
  store.update(
    cartItem.count > 1
      ? updateEntities(productId, { count: cartItem.count - 1 })
      : deleteEntities(productId)
  );

I like extracting the behavior, then the code will require less deduction to understand what is going on. (Of course my original version is a total disaster is the sense of mixing the levels of details)

The updateOrDelete update option should support the same options as updateEntities

That's why I think the second option isn't so bad. The question is how common is this use case.

We can try the following:
  store.update(
    predicateUpdate(
      getEntity(1)?.count > 1,
      updateEntities(productId, { count: cartItem.count - 1 }),
      deleteEntities(productId)
    )
  );

The updateOrDelete update option should support the same options as updateEntities

Do you mean that it should support another ref, like changing UI entities?

That's why I think the second option isn't so bad. The question is how common is this use case.

Not super common, that's for sure. But in my opinion if there is updateOrInsert so updateOrDelete is kind-of symmetrical. And symmetry is good :) (in generic APIs). But as there are people as there are opinions, so no problem if you don't think it's worth adding it. From my perspective it's more like "yes-yes-no-no", if you know what I mean - the issue is so small that too much time discussing it would not make much sense.
Anyways, it's great that the API is made is in such a way so that a custom mutators / queries etc can be added and they will look like 1st class citizens as if they are part of core API. As I understand it came from the wish for tree-shaking, but it also helps here - I can have any crazy Entity APIs I want on my project and they will look the same as the common API.

We can try the following:
  store.update(
    byPredicate(
      getEntity(1)?.count > 1,
      updateEntities(productId, { count: cartItem.count - 1 }),
      deleteEntities(productId)
    )
  );

Is that very different from the one in this PR?
store.update(
        mutateEntities([1, 2], (id, todo) =>
          todo?.completed
            ? deleteEntities(id)
            : updateEntities(id, { completed: true })
        )
      );

I think mutateEntities allows if/else if/else conditions while byPredicte is just if/else (or you'd have to nest it). And downside of using optionals is the same in both variants. Also where does the getEntity comes from?

I was thinking about the use case of addEntities. In both cases, it's an issue. Let's see if we get an additional request for this feature. For now, it's too "complicated," and I don't think it's worth it.
I appreciate your contributions. Keep it coming!


Missing results from eth_getLogs request

Description
When requesting logs from the Altona deposit contract, Besu misses logs from a number of blocks.  I've reproduced this with two completely separate Besu instances.
With a Besu sync'd to Görli run:
curl --fail -H "Content-Type: application/json" -d "{\"id\": 1, \"method\": \"eth_getLogs\", \"params\": [{\"topics\":[\"0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5\"],\"fromBlock\":\"0x2c9d91\",\"toBlock\":\"0x2ccf3d\",     \"address\":[\"0x16e82d77882a663454ef92806b7deca1d394810f\"]}]}" http://localhost:8545 | jq '.result[].blockNumber'

This lists all the blocks that deposit event logs were found in.  When compared to the same request made against Infura a number of blocks are missing including 0x2ca58d, 0x2ca5ef and more.  I've listed the two outputs I get at https://gist.github.com/ajsutton/290b3307be7d5f9e353ee77b606ecd75
Versions (Add all that apply)

Software version: besu/v1.5.0-RC1/linux-x86_64/corretto-java-11
Java version:

openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment Corretto-<IP_ADDRESS>.1 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM Corretto-<IP_ADDRESS>.1 (build 11.0.7+10-LTS, mixed mode)

Hey @ajsutton i pushed a tentative fix and tried manually, it seems to work well.
Could you please test again with Besu instead of Infura ?

Got a :+1: from Adrian that they're back running on Besu and it seems to be working. Will close and we can reopen if this issue ever shows up again.

Reopening this one as it happened again with a freshly sync'd besu 1.5.1 node on Görli using the Medalla contract.
One example of a missing deposit is:
curl --fail -H "Content-Type: application/json" -d "{\"id\": 1, \"method\": \"eth_getLogs\", \"params\": [{\"topics\":[\"0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5\"],\"fromBlock\":\"0x2FF3FC\",\"toBlock\":\"0x2FF3FC\",     \"address\":[\"0x07b39F4fDE4A38bACe212b546dAc87C58DfE3fDC\"]}]}" http://localhost:8545 | jq '.result[].blockNumber'

In all there were 43 events missed between blocks 3086571 and 3155624.

@ajsutton Let's talk through this so I better understand how the node was set up. It'd be even better if the node that you used in the curl above is still running and I could grab its log caches.
I ran the same eth_getLogs call on a v1.5.1 node I've had running since 29 July, and I got the following result, which seems to agree with Görli Etherscan.
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "logIndex": "0x0",
      "removed": false,
      "blockNumber": "0x2ff3fc",
      "blockHash": "0xe7e15f383daed994c6db4bd8fe103bd26f455ca1816bd4d9824d0d11043a0ba7",
      "transactionHash": "0xb85bf44d3d2a732e788ba523840f38960b601ba285911c7de09b016a540d8a50",
      "transactionIndex": "0x1",
      "address": "0x07b39f4fde4a38bace212b546dac87c58dfe3fdc",
      "data": "0x00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003091a5a8b7b579dc6752ec8bcc8824439430c8e67598736ba1c25d84be5f48e557a05a9b93cfb60c8e49fe5ca5d5ef0f3100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000f025443e81869360513f5aa7806fb348f7442316393ed35aa880cfce2d3415000000000000000000000000000000000000000000000000000000000000000800405973070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b4e56d6dbd5f91fab790781ef9b0e4324a6eaf91b548c49f3c6d2fc7e049f0bb46d00085696cb2a5544324c43699fd09003d4b767fd90b4867bb38212d2434d309c80482b3bae9231e1fd9477aa0639b9d00af3662a6720db1d660bd596733710000000000000000000000000000000000000000000000000000000000000008e23d000000000000000000000000000000000000000000000000000000000000",
      "topics": [
        "0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5"
      ]
    }
  ]
}

https://goerli.etherscan.io/tx/0xb85bf44d3d2a732e788ba523840f38960b601ba285911c7de09b016a540d8a50

I've put the list of deposits found from a node pointed at Infura (good-deposits.yaml) and one pointed at Besu (bad-deposits.yaml) at https://github.com/ajsutton/eth2-states/tree/master/medalla-genesis
If you search for "errors" in the bad deposits that's the first deposit after one that was missed (a diff of the two files shows what's missing well too).

This appears to still be an issue even with #1351 merged.
Running v1.5.5-dev-65bb27c4 it went back and reindexed existing data which fixed the previous missing logs but after a while it missed a new log:
curl --fail -H "Content-Type: application/json" -d "{\"id\": 1, \"method\": \"eth_getLogs\", \"params\": [{\"topics\":[\"0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5\"],\"fromBlock\":\"0x33A3A7\",\"toBlock\":\"0x33A3A7\",     \"address\":[\"0x07b39F4fDE4A38bACe212b546dAc87C58DfE3fDC\"]}]}" http://<IP_ADDRESS>:8545 | jq '.result[].blockNumber'

That returns nothing on my test box (ec2-18-222-223-242.us-east-2.compute.amazonaws.com) and matches the log on Infura.  The block is https://goerli.etherscan.io/block/3384231


There might be a small typo in the baseline notebook.

Thanks for the great work!
if not op.isfile("train.csv") and op.isfile("val.csv") and op.isfile("test.csv"):

this condition would never download the dataset right, as in a fresh system val and test won't be present by default. Atleast this happened for me, and I had to manually run download_data().

Good catch, thanks. I forgot the parentheses
if not (op.isfile("train.csv") and op.isfile("val.csv") and op.isfile("test.csv")):

Fixed it!


abusive website in grafana

grafana.apps.dev7.nfvpe.site is an abusive website and should be removed from upstream source code

@rszilvi ah nevermind, I let that domain expire previously, and it looks like someone snagged it. I will adjust to use something else. Thanks!


Team Meeting - 2024-09-21 14:00-16:00

Date and Time
September 21, 2024
2pm-4pm
Attendance

[x] Rafey
[x] Russell
[x] Avanish
[x] Abdul

Agenda

Finalize Deliverable 1
Code Standards
Talk about Requirements

Action Items for next meeting:

Expand and finish our assigned sections

Sections are still in progress


try fix keras engine thingy

Please do not create a pull request without creating an issue first.
Changes need to be discussed before proceeding, pull requests submitted without linked issues may be rejected.
Please provide enough information so that others can review your pull request. You can skip this if you're fixing a typo – it happens.

[ ] I have added tests to tests to cover my changes.
[ ] I have updated docs/, if necessary.
[ ] I have updated the README.md, if necessary.

What existing issue does this pull request close?
Put closes #issue-number in this pull request's description to auto-close the issue that this fixes.
How are these changes tested?
This pull request includes automated tests for the code it touches and those tests are described below. If no tests are included, reasons why must be provided below.
These changes are tested with [...]
Demonstration
Demonstrate your contribution.
For example, what are the exact commands you ran and their output, related screenshots, screen-recordings, test runs, anything that can showcase.
Provide additional context.
Provide as much relevant context as you like.

Opened issue in tf https://github.com/tensorflow/tensorflow/issues/61204


[InProgress]Address API Feedback

TODO:

Transformer: Rename IndexBatchImpl -> IndexBatchBase
Transformer: FacetResult.java property is "documents" when it can reasonably be left as "additionalProperties".
Swagger: Singular names for IndexBatch methods -- apparently intentional, need to check with API review board if they should be plural
Transformer: SearchDocumentsResult - getNextPageParameters and getNextLink should be package-scope. So should SearchRequest (if possible).
Transformer: The document property of SearchResult and SuggestResult should not be mutable. Probably the result of an over-broad regex rule.
Transformer: Try making SuggestRequest and AutocompleteRequest package-scope (will have to make a lot of generated classes package-scope too probably)

Done:

Move to azure-core 1.3.0 and use ContinuablePagedFluxCore instead of PagedFluxBase
GeoPoint shouldn't expose coordinates directly
Review naming of DataSources static methods for API guidelines compliance
getDocumentCount() should return long, not Long

Autocomplete -> AutoComplete (Auto-gen)

Auto-gen code issue:

Mono<SimpleResponse<Void>> ->  Mono<Response<Void>> delete
final String apiVersion = "2019-05-06"; should removed this.client.getApiVersion()
1. VisualFeature there are several addition.
ImageAnalysisSkill addition
1. ImageAnalysisSkillLanguage addition
SearchMode enum is not the same.
TextSplitMode and TextTranslationSkillLanguage are being deleted.

@sima-zhu Please do not change names unless there is a compelling reason to do so. Skillset is the correct casing as it is all one word (see here), as is Autocomplete.
Regarding the other changes, once my Swagger PR is merged, there may be some changes there. VisualFeature in particular is supposed to be deprecated sometime before the end of this week and should not ship in Preview 1.

Document is not generated, so SearchResult and SuggestionResult cannot import properly

Done with the API changes in this issue.


Unable to select tags with cursor

When editing a finding in the web ui a user can press the backspace key to remove the rightmost finding only. The cursor in the edit window does not allow selection of any preceding tags.

I've created a solution, but I'm not sure it's actually desirable. Try it out and let me know what you think.


Promote after pre-release doesn't seem to work

I am considering to use the plugin in one of our projects and am playing around with it to figure out how it works. Thereby I encountered the following issue:
Given the following (complete) git history:
6ce0191 (HEAD -> master) [promote]
3444194 [major]
e1f2e36 [minor]
91db0d1 [new-pre-release]

At 3444194 gradlew printVersion shows: 1.0.0-alpha.0-SNAPSHOT. That is a pre-release tag-name, as expected. However at 6ce0191 gradlew printVersion gives an error message:
$ ./gradlew printVersion
FAILURE: Build failed with an exception.
* What went wrong:
Creating a new pre-release while also promoting a pre-release is not supported

From the documentation I interpret that in the default configuration you can switch between pre-release state and release state by "[new-pre-release]" and "[promote]", respectively. Should the result then not just be 1.0.0 in this situation (or maybe 1.0.0-SNAPSHOT)? Or am I getting something wrong about the working of the plugin?
In this context it might be relevant that I did not get pre-release numbering. If I extend the repository by a "continue" branch like this
* 904cd37 (HEAD -> continue) nothing
* 32ab94d nothing
* dbb0192 nothing
| * 6ce0191 (master) [promote]
| * 3444194 [major]
| * e1f2e36 [minor]
|/
* 91db0d1 [new-pre-release]

Then doing ./gradlew printVersion on 904cd37 shows "0.1.0-alpha.0-SNAPSHOT".  What I'd (naïvely) expect of a plugin would be that e.g. "alpha.0" gets increased to "alpha.1" and so on with non-"[promote]" commits like here. Is this also the behaviour that is intended by the example in the readme?
Finally, it seems that the closure in preRelease { bump = ... } never gets executed. At least System.err.println or throws do not result in gradlew --debug output.
It all seems like that all commits since the 91db0d1 commit get interpreted as "[new-pre-release]" commits.
I'd be grateful for some support in this issue or clarification about the working of the plugin!
Here are my configuration files:

build.gradle:

task wrapper(type: Wrapper) {
    gradleVersion = '4.2.1'
}

settings.gradle:

rootProject.name = "test"

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        // The configuration of this plugin is in semantic-build-versioning.gradle.
        classpath group: 'gradle.plugin.net.vivin', name: 'gradle-semantic-build-versioning', version: '4.0.0'
    }
}

apply plugin: 'net.vivin.gradle-semantic-build-versioning'    // MIT

semantic-build-versioning.gradle:

tagPattern = ~/^\d+\.\d+\.\d+(?:-\S+)?$/

preRelease {
    startingVersion = 'alpha.0'

    // The bumping scheme is alpha.0 -> alpha.1 -> ... -> alpha.n
    bump = {
        "alpha.${((it - ~/^alpha\./) as int) + 1}"
    }
}

Yes, this is expected behavior because from the perspective of the plugin, you're trying to create a new pre-release it and promote it (since the last tag).
The plugin works based on tags, so you're describing a series of version bumps from the last tag, that when resolved into a single "bump", don't really make sense.
If you aren't interested in creating actual pre-release artifacts or tags, then you shouldn't create a new pre-release. It looks like the net effect of what you're doing is to have a single [major] bump.

Would you mind describing somewhere in the documentation how your plugin is supposed to work with e.g. gitflow or githubflow? Or maybe elaborate somewhat on the use-cases for which you intended the plugin?
In the current documentation the meaning of the individual tasks and properties seems to be well described but leaves me kind of puzzled about how things work together.

@vinjana Yes that is a major shortcoming. I'm planning on adding some examples and a FAQ. Unfortunately, I'm busy with full-time work and full-time school so I haven't had a chance to get to it. I will try to get to it soon.


Support for stubbing database view backed models

a model that is backed by database view won't have a primary key.

Can you rebase this against master? And add some specs?

@JonRowe Sorry I kinda forgot about this.
I've just rebased and added a spec. Feel free to clean it up as you like.

Thanks, this has been released.


Support Hue Devices with ZHA

Checklist

[X] I have filled out the template to the best of my ability.
[X] This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request).
[X] This issue is not a duplicate feature request of previous feature requests.

Is your feature request related to a problem? Please describe.
If Hue devices are integrated into HA using ZHA (e.g without the Hue Bridge) the model name is reported differently than with Hue. The current device database contains model names for Hue, e.g for a Wall Switch Module its Hue wall switch module (RDM001) but ZHA reports only RDM001.
Describe the solution you'd like
It would be great if an alternative model name could be specified.
Describe alternatives you've considered
Add separate entries for ZHA devices (e.g model name RDM001). I don't like this solution as it would add bloat and redundancy to the device library
Additional context
Thanks for the great work anyway 👍

I took the decision to go with separate entries for differing integrations a while ago for a few reasons.
It makes contributing to the library easier for those not experienced with json arrays.
I want to have an automatic submission form for library updates in the future, which are very limited via the GitHub issues template.
I don't expect the library to grow to a huge file size.
So if you want to add the ZHA or any other alternative feel free to submit a PR.

Okay makes sense. Thanks for the quick reply, I will prepare a PR then.


Add PWA support

A progressive web application is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser, including both desktop and mobile devices. In the basic starter add PWA support.

Hey @kumarshantanu01 as I am working on the starter would be great if you can assign me this issue


Update connection dialog screenshots in V2 doc page to remove "Beta" …

TFS1228736
Updated the MCD dialogs, and added a fourth screenshot for the third example.

New dialogs:

Old dialogs:
https://tableau.github.io/connector-plugin-sdk/docs/mcd


how 2 ouput origin h w size？

need to interpolate
nn.functional.interpolate(logits, size=labels.shape[-2:], mode="bilinear", align_corners=False)

need to interpolate nn.functional.interpolate(logits, size=labels.shape[-2:], mode="bilinear", align_corners=False)

i think it's not  a good ideal,but i don't know how can output origin h w size and don't break it's origin information

Did anyone solve this issue? I do not know how to modify the code to keep the out put with the same shape of input so far


[tests-only] [full-ci] Trigger CI

to see if it passes.

https://drone.cernbox.cern.ch/cs3org/reva/5262/15/6
apiWebdavProperties1/createFileFolderWhenSharesExist.feature:60 unexpected pass.
That is strange. I will restart and see if it is repeatable.

https://drone.cernbox.cern.ch/cs3org/reva/5265/15/6
The same scenario is an unexpected pass, with "ocis" storage.
https://drone.cernbox.cern.ch/cs3org/reva/5265/27/7
It also passes with s3ng storage, but that pipeline does not report the unexpected pass???
I will look into what is going on.

Fixed by #2482 and #2483


Documentation for creating Kotlin based Azure Functions

Documentation to create Kotlin based Azure Functions with Maven CLI and IntelliJ IDE.
New Kotlin Archetype on Mven Central
Archetype Artifact Id: azure-functions-kotlin-archetype
Archetype Group Id: com.microsoft.azure
Version: 1.23

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

Hi @gloveboxes - thanks for the contribution. I'm tagging the content owner of Azure Functions @jpconnock for awareness. This PR and the content in it is too large to be handled via the public repository. We need you to resubmit your commits to the private repo (azure-docs-pr ).  See below for more information:
Microsoft authors and contributors need to make content contributions through the private repository so the content can be staged and validated by the current validation rules.
After you review staging and fix all validation issues, you can tag an author for review or add the sign-off comment to let PR reviewers know that the updates are ready to be merged.
Read about authors working in the public repo for more information.
If you need help getting set up to work in the private repo, see Set up Git repository locally for documentation.
We'll close this PR. Thank you.


quote key not firing

for whatever reason when running dvorak I can't get the quote (') key, in qwerty this is the q, to fire.
Not sure why but I would love to use this software otherwise

That's weird... if you use dvorak alt international, it may be a deadkey. So by pressing another key, the other key can get modified.

I figured it out. It was the international key just need to add the option.


Add timestamp to the workspace column

The workspace does not have a timestamp. Should it not be the last time I run an experiment. Anyway, it’s a bit strange to have it empty!

@shcheklein We can potentially show the last modified time across all files involved. Not critical at all.

Do we want to consider implementing it? Thanks

https://github.com/iterative/design/issues/16

Don't see a reason for this. Semantics of it will be different from the rest of the column and might confuse people.

Semantics of it will be different from the rest of the column and might confuse people.

I thought we are displaying the time of the latest changes. Am I wrong @shcheklein ?

 latest changes is not that obvious to define + for experiments we show there "create time" or "compete time".

for experiments we show there "create time" or "compete time".

I thought we show Create Time. What do you mean by Compete Time? Thanks

Sorry, I meant "complete" - time of completion.

Q: After the exp is completed to run, what do we display as a timestamp for this exp, create or completion time? My guess is completion time.
However, for the Workspace, I would expect to have the creation time (trigger - pressing run exp button). Does not this make sense @shcheklein ?


Update "Odroid Setup Guide" for 64-bit and for RockPro64

What
Using the guide for my RockPro64 resulted in a few hang ups (detailed below).
Why
Needs updating.
How
See below in Fixes.
Scope

[ ] significant change to core configuration
[x] independent bonus guide
[ ] simple bug fix

Fixes #
https://raspibolt.org/bonus/raspberry-pi/odroid-setup.html#download-bitcoin-core
1. ARM64
For ARM 64, Bitcoin Core has a different filename structure from the 32-bit, which threw me off.
https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0- aarch64-linux-gnu.tar.gz
vs.
https://bitcoincore.org/bin/bitcoin-core-22.0/bitcoin-22.0- arm-linux-gnueabihf.tar.gz (as shown in the Guide).
Users should be more explicitly directed to the Arm64 download.
2. Verifying download
"sha256sum --check SHA256SUMS.asc --ignore-missing" works for bitcoin-0.21.0 but does not appear to work for bitcoin-22.0. I get a "not properly formatted" error. I tried similar on MacOS and get similar errors. Seems something changed at Bitcoin Core and I'm not sure of what the fix is.
3. RockPro64
I was able to follow the guide and get everything running on my RockPro64 + microSD + NVMe/PCIe + Armbian_21.08.1_Rockpro64_buster_current_5.10.60. Suggest listing RockPro64 to the title of this Bonus Guide.
Test & maintenance
I can continue to provide updates as I build out my RockPro64.

Thanks for the feedback @PLK2 !
There are 49 modified files in your PR right now, could you update your branch by fetching and merging all the latest commits? it should leave only one modified file (the odroid guide you modified) which will be easier to look at and review :)

Thanks for the feedback @PLK2 !
There are 49 modified files in your PR right now, could you update your branch by fetching and merging all the latest commits? it should leave only one modified file (the odroid guide you modified) which will be easier to look at and review :)

I am totally new at this. Reading the github "how to" guide right now...then I'll do that. ;)

I am totally new at this. Reading the github "how to" guide right now...then I'll do that. ;)

Great stuff! I'm quite new to this myself, but if you have any questions, don't hesitate to ask! :)

I am totally new at this. Reading the github "how to" guide right now...then I'll do that. ;)

In the root directory of your branch (the one where you added the updates you'd like to push), click on "Fetch upstream" and then "Fetch and merge". It will update your branch to match the present-day state of the RaspiBolt master branch (but will preserve your changes)

I'm not seeing "Fetch upstream". See screenshot.
That option appears if I Fork the repository, though...

I'm not seeing "Fetch upstream". See screenshot. That option appears if I Fork the repository, though...

Yes, but you must have already forked the repository to work on the guide, right? You need to "Fetch upstream" from the forked branch in your repo that you have been working on. Does GitHub allow you to fetch the new commits or does it mention there are some conflicts?

@PLK2 Are you still interested to work on this pull request?
Right now it's very hard to see what are your changes as you've used an old branch. It'd be great if you could create a new branch based on an updated master branch in your repo and add your modification there and create a PR based on this modified branch (if you see what I mean). Like this, we could quickly review your modifications and be able to merge it easily.
Else, if you don't plant to work on this PR anymore, could you maybe close it?


Update google-cloud-nio to 0.123.23

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

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.google.cloud", artifactId = "google-cloud-nio" } ]

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

Superseded by #858.


Can you please add examples

[Enter feedback here]
Can you please add examples to this list? https://learn.microsoft.com/en-us/azure/databricks/administration-guide/clusters/policy-definition#--supported-attributes
It is very hit or miss if i can get a attrubte to work with my cluster policies, and it is not that hard to be a litte more spesific in how to apply this. I have used the attribute, and the appropriate datatype, but sometimes it just does not work. A simple json example would make this much more clear. (its like 100 characters or less, so not a lot of work)

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

ID: 7766846d-e142-a567-26ed-e7b5ef1202bb
Version Independent ID: 7766846d-e142-a567-26ed-e7b5ef1202bb
Content: Compute policy reference - Azure Databricks
Content Source: databricks/administration-guide/clusters/policy-definition.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@cltj
Thanks for your feedback! We will investigate and update as appropriate.

@kateglee-db
Please review it.

@cltj
Thank you for bringing this to our attention.
I've delegated this to content author @kateglee-db, who will review it and offer their insightful opinions.

Thanks for providing feedback that helps improve our documentation. We've created an internal work item (DOC-13199) to address your feedback. The timeline for resolution varies based on resourcing.
#please-close


Question: Get event initiator

Hello, would it be possible to get initiator of chokidar event? I mean if is possible to know, if file was changed from eg. VSCode editor by saving the file or from GIT process by branch change?
Thank you!

I'm unaware of any method for determining that. If anyone else does, feel free to enlighten us.


Fix broken logging

Description
Remove unnecessary imports from kube_hunter/__init__.py that cause
hook registration before main file execution.
This made the event loop handler indirectly configure the root logger,
which in turn prevented the main file configuring it with user parameters.
Contribution Guidelines
Please Read through the Contribution Guidelines.
Fixed Issues
Fixes #292
"BEFORE" and "AFTER" output
To verify that the change works as desired, please include an output of terminal before and after the changes under headings "BEFORE" and "AFTER".
BEFORE
Running kube-hunter would not print log messages, no matter what --log parameter is set.
AFTER
Running kube-hunter sets log level to --log parameter.
Contribution checklist

[X] I have read the Contributing Guidelines.
[X] The commits refer to an active issue in the repository.
[ ] I have added automated testing to cover this case.

Notes
Tested it manually. Integration tests need to be created to automatically test it.

Codecov Report

Merging #309 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #309      +/-   ##
==========================================
- Coverage   59.80%   59.76%   -0.05%
==========================================
  Files          39       38       -1
  Lines        1928     1926       -2
==========================================
- Hits         1153     1151       -2
  Misses        775      775

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 e75c0ff...cc64141. Read the comment docs.

Codecov Report

Merging #309 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #309      +/-   ##
==========================================
- Coverage   59.80%   59.76%   -0.05%
==========================================
  Files          39       38       -1
  Lines        1928     1926       -2
==========================================
- Hits         1153     1151       -2
  Misses        775      775

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 e75c0ff...cc64141. Read the comment docs.

@lizrice it looks like the codecov/project check failed because two LOC were removed...

Codecov Report

Merging #309 into master will decrease coverage by 0.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #309      +/-   ##
==========================================
- Coverage    59.8%   59.76%   -0.05%
==========================================
  Files          39       38       -1
  Lines        1928     1926       -2
==========================================
- Hits         1153     1151       -2
  Misses        775      775

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 e75c0ff...67dcb3d. Read the comment docs.

Added some tests to improve coverage

Closing in favor of #310


Feature Request: Using DeepL Translate API to translate titles and descriptions

First of all, fantastic app, my collection has never looked better in Jellyfin!
I know that Javinizer uses Google Translate to machine-translate Japanese titles & descriptions, and the results can be quite...poetic. I've used DeepL Translator for quick translations of small bits of text and the results often make much more sense.
Wonder if there's a DeepL API that Javinizer can use...

I did a bit of research into DeepL, and it seems like they do provide an API. But like most services, they require a paid subscription to use, which I'm assuming most people aren't willing to pay for.
I can do some poking around for other free tools, but in the free sphere there's probably a limited amount of options.

I must agree, Deepl translations are far superior to Google. I have been using this program to translate Chinese subtitles into English
https://github.com/firebfm/deepl-srt
and the results are petty impressive compared to google, perhaps you could look at the technique the programmer used to access Deepl with Selenium and use a similar technique so we can get real descriptions.
Thanks again fro this program , it rocks!

DeepL support via the developer API (which now has a free tier) is tentatively available by replacing one of the existing translation scripts translate.py or translate_new.py and filling in the apikey = "YOUR-API-KEY" line. I don't think it's feasible to add DeepL scraping functionality via headless browser due to how the threading works in Javinizer. I will try to add the developer API natively next release.
# Written by toastyice
import sys
import requests
import tempfile
import os
import json
apikey = "YOUR-API-KEY"
lang = "EN-GB"

url = "https://api-free.deepl.com/v2/translate?auth_key={}&text={}&target_lang={}".format(apikey, sys.argv[1], lang)
r = requests.get(url)
j = json.loads(r.text)
n = j['translations'][0]['text']

text = n.encode('utf8')

# Write the translated text to a temporary file to bypass encoding issues when redirecting the text to PowerShell
new_file, filename = tempfile.mkstemp()
os.write(new_file, text)
os.close(new_file)

# Return the path to the temporary file to read it from PowerShell
print(filename)


Support #[source] on Option

This should be possible:
enum MyErr {
    OptSource {
        #[source]
        source: Option<io::Error>,
    },
}

Thanks, I agree. I will get to this in the next few days if someone doesn't beat me with a PR.
We'd probably want Option<Backtrace> too.

I took a quick look. It seems that it is done on the first entry found using the #[source] macro (meaning that duplicate #[source] entries are silently ignored). I don't know if it's better to add a new #[opt_source] attribute or try and divine the Option out from the literal type given. A new attribute seems more likely to be implementable.
There should probably also be a #[backtrace] attribute in case some type aliasing shenanigans is going on (it seems that it just wants the last path component to be the literal Backtrace at the moment). This probably means that #[opt_backtrace] would be the way to go there.


build: use version number for canonicalized source file

Taking an overlooked outdated version number in the ant compare-versions target as starting point, this PR introduces a version number into the generated canonicalized source filename. It also parameterizes the filename creation process and its subsequent invocations.
Comes together with a backport for the missing version number in https://github.com/music-encoding/schema/tree/main/5.0, so depends on https://github.com/music-encoding/schema/pull/8

@musicEnfanthen #8 is now conflicting. Is that one still needed?

@rettinghaus Yes, it is. The PR in the schema repo has a conflict since any new commit will create a new canonicalized-source file that is different from that one included in the PR.

I will adjust https://github.com/music-encoding/schema/pull/8 after merging this one here.


Show error message when canvas to export is too big (#1256)

fix #1256, fix #2156
The maximum width, height, and area of a canvas element depend
on the browser and—unfortunately—they are not exposed by the
Canvas API.
This commit introduces:

a simple heuristic to avoid trying (and failing) to render the
scene when the canvas area is to big;
a message to warn the user that with such a big canvas, the PNG export
will not available.

See also:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas
https://github.com/jhildenbiddle/canvas-size

I introduced a new constant to avoid calling renderScene() when the canvas area is too big.
As a test drawing I used the file from the debug.zip archive mentioned in https://github.com/excalidraw/excalidraw/issues/1246#issuecomment-609493556. It's roughly a 21271 px * 14005 px canvas (for a total area of 297,900,355 px * px), so it exceeds the maximum canvas area supported by Chrome and Chromium (268,435,456 px * px).
I tested the fix on:

Chromium Version 85.0.4183.121
Firefox 81.0 (64-bit)
Firefox Nightly 83.0a1 (2020-09-28) (64-bit)

Note that calling renderScene() on Chromium causes the behavior shown here https://github.com/excalidraw/excalidraw/issues/1246#issuecomment-609554365, but on Firefox and Firefox Nightly the browser crashes altogether. In particular, it's context.scale(scale, scale) that causes the crash. That's why I think it's important to avoid calling renderScene() if the canvas is too big.
Even if the canvas is too big, the SVG might still be exported succesfully. The SVG export from the file in debug.zip is 6.7 MB and can downloaded and opened without any issue in Inkscape.
Here is the message shown in the export dialog.

@jackdbd I removed the current heuristic because it didn't detect many cases where the canvas was too big, but not necessarily its area (width*height). Plus made sure we handle cases where it actually throws as error (e.g. #2156). I also simplified the error message (removed IT translation altogether — apart from it being out of date now, we should also make the translations on Crowdin).
We may still report non-size errors as "canvas may be too big" because we can't be really sure what the error was caused by, but better than nothing. I checked the canvas-size lib and that loops in steps to figure out if a given size still fits. That's not really a good solution.
Also made some unrelated fixes to error handling.
If you're happy, we can merge. /cc @lipis

Yeah I saw how canvas-size tests whether a given size is still supported in the current browser. It might no be a good solution, but I can't think of any alternatives. As far as I know, no browsers expose their supported maximum canvas size.
I agree that your "canvas may too big" is a more appropriate message.
I think there might be quite a few cases where the PNG export is not available, while the SVG export is. And only very few cases where not even the SVG export is available. I think that 10k SVG nodes can still be rendered.
https://youtu.be/dlZvL7Ei0C0?t=1501

think there might be quite a few cases where the PNG export is not available, while the SVG export is. And only very few cases where not even the SVG export is available. I think that 10k SVG nodes can still be rendered.

I made the PNG export button error handling separate from the preview, even though in practice it'll be 1:1 coupled. But I wanted to avoid giving prognosis as to what will and will not work based on whether the preview rendered. Users will need to try out for themselves, at least until we can be reasonably certain what error are we getting (which we probably won't be).
Are we happy?

I left one comment regarding the strings.. we can reduce one and it's good to go.


BUG: Can't import MemoizeJac

Describe your issue.
There is a deprecation warning for importing MemoizeJac that recommends importing it from scipy.optimize as a new approach, but I can't import it from scipy.optimize.
Reproducing Code Example
Python 3.8.15 | packaged by conda-forge | (default, Nov 22 2022, 08:46:39)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.33.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import scipy

In [2]: scipy.__version__
Out[2]: '1.9.3'

In [3]: from scipy.optimize.optimize import MemoizeJac
<ipython-input-3-ad2abe888e13>:1: DeprecationWarning: Please use `MemoizeJac` from the `scipy.optimize` namespace, the `scipy.optimize.optimize` namespace is deprecated.
  from scipy.optimize.optimize import MemoizeJac

In [4]: from scipy.optimize import MemoizeJac
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-2958dec3cdad> in <cell line: 1>()
----> 1 from scipy.optimize import MemoizeJac

ImportError: cannot import name 'MemoizeJac' from 'scipy.optimize' (/home/moorepants/miniconda/lib/python3.8/site-packages/scipy/optimize/__init__.py)

In [5]: import scipy.optimize

In [6]: scipy.optimize.MemoizeJac
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-6-d0f0a395bf46> in <cell line: 1>()
----> 1 scipy.optimize.MemoizeJac

AttributeError: module 'scipy.optimize' has no attribute 'MemoizeJac'

### Error message

```shell
See above.

SciPy/NumPy/Python version information
1.9.3 1.23.5 sys.version_info(major=3, minor=8, micro=15, releaselevel='final', serial=0)

A relative of https://github.com/scipy/scipy/pull/16532#issuecomment-1173112142 ?

Yes, looks the same. So this will be fixed in 1.10?

I see that the PR you referenced didn't address this class. So I guess the same fix could be applied.

Would you be willing to send a PR with the fix? It should go to the main branch, once it's merged we can ask the RM about backporting to 1.10.
I guess since the fix is going to be similar to those already made, it should be an uncontroversial merge.

I'll have a look.

Are we sure MemoizeJac is supposed to be public? It doesn't have a complete docstring.

Oh I see @ev-br that in https://github.com/scipy/scipy/pull/16532#issuecomment-1176752145 you suggested being liberal about adding to the namespace. I'll let you deal with any "trouble" that ensues : )

It was public in the past. I'm reporting this because I'm getting deprecation warnings downstream that we can no longer import in the prior supported way and the deprecation warning gives an alternative that does not work.

This is not about being liberal with the namespace. It's just that these things were available, and now they are not. Worse, they emit deprecation warnings that are actually misleading and that users cannot act on: these warnings recommend using non-existing objects from the main namespace.
So IMO it's a clear bug in application of our deprecation/removal process. Hence the suggestion to fix the bug. And when it's fixed, we can start a regular deprecation process :-).

I thought I'd update this issue with what we discussed in the PR (https://github.com/scipy/scipy/pull/17575#issuecomment-1346011901): we need to change the warning to an ImportError, but MemoizeJac will not be made public.


Need help to create a "text alignment" functionality

Hi,
I want to add a the ability to align the text in the editor.
With vanilla draft-js, here is what I would do :

Add elements in the block render map

const blockRenderMap = Immutable.Map({
  'align-center': {
    element: 'div'
  }
});
const extendedBlockRenderMap = DefaultDraftBlockRenderMap.merge(blockRenderMap);

and pass it to the editor
blockRenderMap={extendedBlockRenderMap}

Write a custom "blockStyleFn"

function getBlockStyle(contentBlock) {
  const type = contentBlock.getType();

  switch (type) {
    case 'align-center':
      return 'align-center';
 ...

But Megadraft prevent the overriding of blockStyleFn. I can only override the blockRenderMap.
So, how could I do this ? With the plugins, I guess ? But I don't want the sidebar, I want a classic button in the toolbar, like the "blockquote" button.
Thank you for your help !

Hi,
I've made something on my fork :
https://github.com/mdarcemont/megadraft/commit/f4b0ed9d3614789e8265224853d50dca7ceda7b1
Basically, you just have to provide an array that contains the new block definitions :
const blockStyles = [
  {type: "align-left", element: "div", className: "block-align-left"},
  {type: "align-center", element: "div", className: "block-align-center"},
  {type: "align-right", element: "div", className: "block-align-right"}
];

and pass it to the editor :
blockStyles={blockStyles}
Then this array is used to generate the blockStylesFn and the blockRenderMap.
I don't know if it suits to your vision of Megadraft, so I don't make a pull request for now. If you like it, I'll write the tests...

Hello, @mdarcemont ,
I think it would be a nice feature to have, feel free to open a PR.

Anyone figure out a way to create a text alignment functionality. @mdarcemont I tried your method but it doesn't seem to be working for me.

@grex84 it seems to only work on his fork, did you try that?

i have, but is there any way to apply this to a parent div? This method seems to replace the header tag, if one has been applied to the same block.


null

Please check if the PR https://github.com/zalando/restful-api-guidelines/pull/541 introduces changes which are relevant to the Zally project.

No changes required.


Type parameter is not properly added to searchContent() method

In SearchMethods.buildParameters(), type.name is added as parameter value. This needs to be lowercase, or we need to return to explicitly giving values in the respective enums.
Changing this fixes #342 for the individual-type case, but not for the generic case.
https://github.com/andregasser/bigbone/blob/12d6648c6b2da33b433ad24c5f5701657cddc9c4/bigbone/src/main/kotlin/social/bigbone/api/method/SearchMethods.kt#L90C37-L90C37

That’s what I went with apiName for: https://github.com/andregasser/bigbone/pull/333/files#diff-280566822ab91ce8d3fb06b56002ba761d602539a5587f87b1ce86775fe6ee1fR146


Adding forgotten test files and re-enabling the test

Sorry for that. Hope it works now.

Hmm, looks like I messed the rebase. Will recreate


[priority] parse 3x/5 as 3x / 5 instead of 3 x/5

Parse 3x/5 as 3x / 5 instead of 3 x/5. It makes more sense to me and is what mathjs doe (pretty sure).
Spacing matters though - 3 x/5 should stay a multiplication between a 3 and x/5. I think this applies to any implicit multiplication? e.g. (2x+3)(3x+5)/2x would be  (2x+3)(3x+5) / 2x - but we didn't decide on that earlier so feel free to debate that.
Aside: this was an interesting thing to me because I wonder how a brain interprets 3x/5 when it reads it. The way it's parsed affects how it's displayed to the user as well as the mathsteps algorithm so it really is part of the teaching too. I wonder how most brains interpret 3x/5? My guess is 3x / 5 though.

by the way, this is a priority for me because it's breaking some things in the porting process and it's hard to know how many of the remaining failing tests are because of this (though I'll eventually investigate further in mathsteps if this can't get done soon)
If you think it's straightforward to implement I could take a crack at it too if you don't have time - but if you do have time this would be the most helpful of all the issues I've opened!

ok not a priority anymore - I got around it by adding extra parens in the tests
but once it's done we can clean that up :)


test: Fix incorrect selector for netperf-service

Caught by random chance when using this manifest to test something
locally. Might as well fix it in case someone uses this in the future
and the service is not working as expected.
AFAICT, no CI failures occurred from this typo because the Chaos test
suite (only suite which uses this manifest) doesn't assert any traffic
to the service, but rather to the netperf-server directly.
Fixes: b4a3cf6abc6 ("Test: Run netperf in background while Cilium pod is
being deleted")
Signed-off-by: Chris Tarazi<EMAIL_ADDRESS>

Given that this change is very low-risk, I'm proposing a backport to all stable releases for the sake of consistency.

/test-only --focus="K8sDatapathConfig"

/test-only --focus="K8sChaos"


Title: [ FEATURE REQUEST ]: Adding Nav Bar To The Website

Initiative (Required)
GSSoC (Girl Script Summer of Code) 🌸
Is your feature request related to a problem? Please describe.
Navigation bar is missing in the top of the website .
Screenshots

Describe the solution you'd like.
I will be adding navigation bar with animation effect to it when someone hover on it.
The navigation bar will contain HOME ABOUT DOMAINS and CONTACT
Solution
I have already designed the code and it looks like this
https://github.com/user-attachments/assets/fbad5d7c-5968-4b0b-9594-6ca6af12b95a
Add any other context or screenshots about the feature request here.
No response

I would like to work on it
@Kushal997-das can you please assign me this task with label hacktoberfest and gssoc-ext.

I am the mentor of this project.
@GyanaPrakashSahoo7853 Hello
I appreciate your issue and thank you for your contribute!!
@Kushal997-das kindly assign this issue!!

@GyanaPrakashSahoo7853, the navigation menu is already included, but it's not fully expanded in desktop mode. You can check it by clicking the hamburger icon. A solution would be to hide the hamburger menu in desktop mode and display the content instead, while ensuring that the hamburger menu is visible on mobile screens. Do lemme know if you upto for this.

@GyanaPrakashSahoo7853, the navigation menu is already included, but it's not fully expanded in desktop mode. You can check it by clicking the hamburger icon. A solution would be to hide the hamburger menu in desktop mode and display the content instead, while ensuring that the hamburger menu is visible on mobile screens. Do lemme know if you upto for this.

Should I add the hamburger menu again  and what about the navbar, is it ok ?

@Kushal997-das  Can we please discuss about this in discord

@GyanaPrakashSahoo7853, the navigation menu is already included, but it's not fully expanded in desktop mode. You can check it by clicking the hamburger icon. A solution would be to hide the hamburger menu in desktop mode and display the content instead, while ensuring that the hamburger menu is visible on mobile screens. Do lemme know if you upto for this.

Should I add the hamburger menu again to the website or not and what about the navbar I have contributed, is my contribution worth it or not ?

Please read it what i said .


Handle unknown document creator on index page

This is to fix the index page currently throwing an exception when the
user who created the document does not exist.
I felt the key unknown_data was a bit abstract so went for a more
explicit unknown_creator

Although I think we ought to have a test for this somewhere...

@kevindew maybe one day I'll tell you ;-)
I think a quick feature test for this particular scenario would be fine. There's perhaps some development pain we're approaching where we have too many features!

@kevindew perhaps remove this line from the factory:
https://github.com/alphagov/content-publisher/blob/ff2a6c0bfa3196d70abb33e68c4cb423555699ee/spec/factories/document_factory.rb#L12
Attributes that aren't required by database constraints/model validation are better not included in factories, since they can lead to relying on things being present like this.

That would be a quick way and consistent with our previous approach - we just have to be strict with ourselves to avoid it creeping in in future 🇭🇺 .

@benthorner yeah - I see we have a show a document without creator test which could include it as well. We may well have to ponder how to organise the feature tests.
@tijmenb that sounds a good idea re removing that (and saves a query). I also felt a bit uneasy about the duplicated translation. I saw we briefly flirted with a global.yml file in translations was there a discussion about whether or not that was a bad idea?

I think the global.yml discussion depends on the example. In this case, there's no reason why the strings on the index/show pages need to be the same, so it would be premature to make them refer to the same thing.


feat: Inject CSS via JS in final HiGlass build

Historically users need to require both hglib.css and hglib.js in their HTML templates and bundler code.
    <link rel="stylesheet"<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>
This requires that users keep the versions in sync over time in the HTML template.
This PR injects the final CSS via JS, eliminating the need to also have hglib.css in the template:
--  <link rel="stylesheet"<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>    <script<EMAIL_ADDRESS>
Many JS libraries put their final CSS in JS so that loading the JS also accomplishes adding the styles to the page.
This technique makes it easier to use use HiGlass, especially via ESM:
import * as hglib from<EMAIL_ADDRESS>
and ensures anytime a specific HiGlass version is imported you also have the corresponding styles for that build. It is also beneficial for libraries using HiGlass (like Gosling), since it's one less import that we need to worry about including.
Try it out
npm run build
http-server dist # open http://localhost:8080 and http://localhost:8080/esm.html

Alternatives
Alternatively we keep the stylesheet separate and provide the end user with a function to load the styles via JS.
import * as hglib from<EMAIL_ADDRESS>// doesn't load styles
await hglib.loadStyles(); // fetches ./hglib.css and adds the styles to the current document

Not sure what you think about these approaches @etowahadams

Nice, I like the CSS injection! I can't think of any reasons why higlass would be used without the CSS, or with a modified CSS, especially since much of the styling is doing at the canvas level in PIXI. It seems typical for javascript libraries like plotly to not have users add a separate external stylesheet. (side note: I couldn't figure out how exactly plotly styles things from my 2 minutes of poking around but this scss to css to js pattern is something I've never encountered before)
I didn't notice the dreaded FOUC either which is good.


Default branch name should be master not main

We use master everywhere in the org but this repo
https://github.com/curl/curl-for-win/settings/branches

I use main everywhere, and don't plan to change this. Sorry!

? Nothing is stopping you from doing that but why did you change it on the organization repo? You know we use master everywhere. I don't see any discussion surrounding this.

I also haven't found any guidlines that would prohibit changing the default branch name, or specifically prohibit using main. Besides, I've been the only one ever committing here, so I assumed it wouldn't bother anybody. In fact it's rather surprising this is FIRST EVER feedback I got for curl-for-win from any curl contributor. I've also been preparing for this change for at least 6 months and nobody ever raised it as an issue. I also can't see how this would affect any curl users or even developers. Am I missing something here?
Having said, I've glad to pass on maintenance of this repository to anybody interested. First, I'd prefer to stay out of scolding like in this Issue, seconds, I've stopped using these curl builds about two years ago.
So, please let me know if this is a critical issue and if somebody is willing to continue this work with whatever branch name is preferred.

My clone failed to fetch, I don't know if this was the cause. I ended up forking and saw you changed it to main. I still don't understand why you did it but ok. I appreciate your work, and you've basically been carrying this so I'll close.

There is nothing particularly interesting about why I changed it: I never liked "master" that came with Git and find "main" to better describe the purpose and shorter and easier to type. Minor downside is that it may be little less useful when grepping, but in practice the effect is likely negligible for most projects.
I'm sorry for causing some trouble for you as a result. It is true that sandboxes need to be updated when the default branch is renamed upstream. Here are the steps to do it:
git branch -m master main
git push --set-upstream origin main

Or, just delete the sandbox and git clone again.


Navbar Updated with enhanced UI.

1- Changed the logo with custom made logo
2- Added elegant on hover animation to the links
3- enhanced the login and sigh up button.
JobSewa Contribution Checklist ✅
Before submitting a pull request, please ensure that you've followed the guidelines below. This will help expedite the review process. Please remember to follow the Code of Conduct.
Important: Starring the repo shows your support and will ensure your contributions are reviewed in a timely manner.

[ ] I have starred and forked the JobSewa repo.
[ ] I have carefully read the instructions for contributing to the project.
[ ] I have created a new page or section and placed it inside the appropriate folder.
[ ] My contributions align with the current project structure and conventions.
[ ] I have included any necessary images in a dedicated folder within assets, ensuring they are compressed and under 500kb.
[ ] All images are in .png format and have been directly uploaded—no external image links are used.
[ ] I understand that the maintainers will review my pull request and provide feedback if necessary.
[ ] I have assigned a reviewer to this pull request.

Thank you for your contribution to JobSewa! We’re excited to work with you.

You’ve done a fantastic job with these enhancements! The previous logo aligns well with our branding, so I’d love to keep that. I’m really impressed with your “hover animation on links” and the updated “login and sign-up button.” Both changes look amazing!
Could you please adjust those enhancements to align more closely with our homepage UI? Specifically, I think it would look better if the “hover animation on links” and the “login and sign-up button” design matched the homepage’s aesthetic. Also, The navbar's background color is currently white, but I think it would look great in the previous color. Thank you for these wonderful contributions!

Thank you for your feedback! I’ll update the logo to the previous design as requested. I’d also love to work on the homepage UI to ensure everything aligns with the overall theme and enhances the website’s look, including the footer section. If you allow me to proceed with these updates, I’ll do my best to make everything cohesive and visually appealing.
Looking forward to your approval!

Thank you for your willingness to make these updates, @Sunscar-Sony  Absolutely, please go ahead with the improvements. I’m excited to see the cohesive design and how it enhances the overall look of the website. Appreciate your dedication to making everything align smoothly!

@Sunscar-Sony
Bro I really love the UI
You’ve truly transformed the homepage UI—it looks fantastic! I absolutely love the updates; they make the interface so cool and visually appealing. Just one small request—could we try swapping the homepage photo for one that aligns more closely with our purpose, similar to the previous one?
Thank you so much for your hard work and attention to detail. You’ve really elevated our design!


[OETHb] Deploy 005 - Dripper and VaultValueChecker

Deployment

Contract
Address

OETHBaseDripperProxy
0x02f2C609950E90934ce99e58b4d7326aD0d7f8d6

OETHDripper
0x0030C7dC6Cb7F449e9566f273342c3370EE6b16a

OETHVaultValueChecker
0x9D98Cf85B65Fa1ACef5e9AAA2300753aDF7bcf6A

Governance

Set drip duration to 3 days

Execute the following actions using guardian safe:  [
  {
    sig: 'setDripDuration(uint256)',
    args: [ 259200 ],
    to: '0x02f2C609950E90934ce99e58b4d7326aD0d7f8d6',
    data: '0x0493a0fa000000000000000000000000000000000000000000000000000000000003f480',
    value: '0'
  }
]

Deploy checklist
Two reviewers complete the following checklist:
- [ ] All deployed contracts are listed in the deploy PR's description
- [ ] Deployed contract's verified code (and all dependencies) match the code in master
- [ ] The transactions that interacted with the newly deployed contract match the deploy script.
- [ ] Governance proposal matches the deploy script
- [ ] Smoke tests pass after fork test execution of the governance proposal

I've verified the deployment

[x] All deployed contracts are listed in the deploy PR's description
[x] Deployed contract's verified code (and all dependencies) match the code in master
[x] The transactions that interacted with the newly deployed contract match the deploy script.
[x] Governance proposal matches the deploy script
[x] Smoke tests pass after fork test execution of the governance proposal

sol2uml diff 0x02f2C609950E90934ce99e58b4d7326aD0d7f8d6 .,node_modules -n base
Compared the "OETHBaseDripperProxy" contract with address 0x02f2C609950E90934ce99e58b4d7326aD0d7f8d6 on base
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/utils/Address.sol
match   contracts/governance/Governable.sol
match   contracts/proxies/InitializeGovernedUpgradeabilityProxy.sol
match   contracts/proxies/Proxies.sol

sol2uml diff 0x0030C7dC6Cb7F449e9566f273342c3370EE6b16a .,node_modules -n base
Compared the "OETHDripper" contract with address 0x0030C7dC6Cb7F449e9566f273342c3370EE6b16a on base
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/harvest/Dripper.sol
match   contracts/harvest/OETHDripper.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/InitializableERC20Detailed.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/VaultStorage.sol

sol2uml diff 0x9D98Cf85B65Fa1ACef5e9AAA2300753aDF7bcf6A .,node_modules -n base
Compared the "OETHVaultValueChecker" contract with address 0x9D98Cf85B65Fa1ACef5e9AAA2300753aDF7bcf6A on base
to local files under folders ".,node_modules"

match   @openzeppelin/contracts/token/ERC20/IERC20.sol
match   @openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
match   @openzeppelin/contracts/utils/Address.sol
match   @openzeppelin/contracts/utils/math/SafeMath.sol
match   contracts/governance/Governable.sol
match   contracts/interfaces/IBasicToken.sol
match   contracts/interfaces/IOUSD.sol
match   contracts/interfaces/IStrategy.sol
match   contracts/interfaces/IVault.sol
match   contracts/strategies/VaultValueChecker.sol
match   contracts/token/OUSD.sol
match   contracts/utils/Helpers.sol
match   contracts/utils/Initializable.sol
match   contracts/utils/InitializableERC20Detailed.sol
match   contracts/utils/StableMath.sol
match   contracts/vault/VaultStorage.sol


Is there any method to detect the Network Reachability Status like AFNetworkReachabilityManager in AFNetworking?

This future will be added to Alamofire in our next release. It is not currently available.


Add drishtirana12's file

created a branch, created a file and made a commit, and opened a pull request

delete branch


@immut/sorted_set should balance when the height diff larger or equal than 2

As title, AVL tree should do balance when height diff larger than 1. But the code in immut/sorted_set/immutable_set.mbt is
fn balance[A : Compare](left : T[A], value : A, right : T[A]) -> T[A] {
  let left_height = left.height()
  let right_height = right.height()
  if left_height > right_height + 2 {
    match left {
...

I tried to modify it to if left_height >= right_height + 2, but there is no obvious performance improvement.
I'm not sure if it's necessary to fix.

The implementer @muqiuhan of this library should be using the ocaml base implementation of janestreet, and they have done the same.


Thread-safe collection for registering integrations

Due of reading/writing operations in Integrator implementation I would like to suggest using thread-safe collection.

Valid point should've done that in the first place :).
Thanks for the update, I'll submit the v.1.2.1 to the NuGet soon.

No problem! :ok_hand:


cleanup methods to help prevent DOM (detached node) leaks

Hi CodeMirror folk,
This is my first fork and PR of a public repo in an ice age, so please forgive any obvious oversights. :laughing:
We use CodeMirror in a number of places within the Slack web app, which runs in desktop browsers and our own installable desktop apps which use web views (Safari/Webkit WebView) and Chromium (Electron) at present.
Given the dynamic nature of our web app, we regularly create and destroy views that can include CodeMirror instances. I noticed a number of detached DOM nodes building up very quickly over time, and found that CodeMirror just needs to release some DOM references when the view is being torn down to prevent the DOM tree(s) it creates from being leaked.
In our case, we'll instantiate with editor = CodeMirror.fromTextArea(...), and later, call editor.cleanup() when the view is being destroyed. This calls a cm.cleanup() method specific to the fromTextArea instance, and finally CodeMirror.cleanup() which handles the rest.
Before my patch, running the contents of codemirror.js itself through the above and subsequently clearing the DOM underneath (i.e., canceling our "edit snippet" dialog) would result in 185,961 entries (yow, that's a lot of formatting nodes!) being shown under a Detached DOM tree item in Chrome Dev Tools. Over time, this would contribute to the webapp becoming slower as the detached DOM grew in size.

Whilst I'm pretty sure I'm preaching to the choir here, detached nodes can be found in Chrome Dev Tools under Profiles -> Heap Snapshots (then take a snapshot), and then changing the view to from Summary to Containment View, or, just looking for Detached DOM tree entries in the list.
Every so often I look over the Slack webapp for leaked DOM trees and such, and identified this pattern with CodeMirror. I made edits as best I could to isolate and prevent against dangling event, property and direct node references within the new cleanup() methods.
Per guidelines, before making this PR I ran tests locally, and did not see any new regressions or failures introduced with my change. bin/lint also did not throw any complaints.
We've been applying my patch for the last while as we update CodeMirror, and I realize that's rather silly to keep doing. Please modify this change as you see fit and if it's useful, I'd be happy to see it worked in upstream. Thanks! :bow:

This is a very cool writeup.

Hello Scott,
Thanks for looking into this. The need to call toTextArea on a textarea-based CodeMirror in order to clean it up was not mentioned in the manual, which was definitely an oversight. I've added patch 66fd40f to fix this.
As for actually leaking those DOM nodes, the model CodeMirror uses is that to destroy it, you must remove it from the DOM (which you did), and drop the reference to the editor, so that the GC can collect it. Your measurements sound like you didn't do the latter. I set up some tests where I create a boatload of CodeMirrors, but don't keep references to them, and then remove them from the DOM. The result is a single detached DOM node (measureText).
I'd prefer to avoid adding a separate cleanup method. Would it be difficult to restructure your code to null references to CodeMirror that are no longer alive?

Hi @marijnh,
Thanks; from what I'm seeing, we are nulling the sole CodeMirror reference ourselves when canceling our snippet creation / editing dialog - but CodeMirror is still hanging onto part of the DOM, possibly the form reference which you mentioned. It's hard to tell in these profile snapshots, exactly what the top-level reference is that is responsible for leaking the whole tree.

From what I can see, we are destroying the form element being leaked from within Slack when the user cancels the snippet dialog, for example, followed by nulling the reference to the codeMirror.fromTextArea() instance - but because CodeMirror has a reference to the form, it doesn't get cleaned up.
I'd prefer not to have to call a method for clean-up either, but found that pattern did work for our use case. I probably went overboard in nulling out internal references, but it would be lovely to be able to have CodeMirror be able to clean up any dangling references when we "cancel" it.
Maybe a cancel-style DOM event (if not a new method altogether) would be the sort of thing that could be useful here, in terms of folks being able to signal that they're finished with the CM instance for whatever reason.
Let me know what you think!

but it would be lovely to be able to have CodeMirror be able to clean up any dangling references when we "cancel" it.

Thing is, it's supposed to already do that, out of the box. If you can reduce your test case to a minimal, no-dependencies form, I'll gladly see if I can debug it.

@marijnh: Good idea; I'll see if I can get a minimal repro. Thanks!

Closing until further information comes in.


Remove usages of deploy_erc721_erc20 function

Fixes #765  .
Changes proposed in this PR:

add fixtures for ERC721 token, ERC20 token and ERC721 factory;
remove usages of deploy_erc721_erc20 function (kept some occurrences);
formed smaller functions when needed;
removed is True & is False parts from assertions in test_erc721_token.py and from test_vesting.py

@trentmc Can I create a separate issue for removing the is True & is False parts from assertions, because now I only removed for test_erc721_token.py and for test_vesting.py? Or can I do this work here too?


Add support for multiple windows with lwjgl

Made vulkan when cases consistent to TODO().
Changed window and implGl3 var to val.

Should I press the "merge pull request" button? Seems like something the approver should do no?

You or I could merge it, but I usually defer merging PR's like this to elect. I'll review and try to pick out stuff, but I don't do enough around here to feel confident merging large/breaking things into these code bases

On a side note, this brings up the question again of dropping JOGL. Since we haven't had many people use it, we can either drop it, or it needs to be updated as well.

Though I will note that those tests ran fine anyways

Regarding JOGL, I'll drop it soon in the next releases, we still rely on it @work, I'll take care of update it
Thanks all, nice work guys