python310Packages.cffi: patch closures to work on M1 machines

Summary
Currently, a feature in cffi called closures (i.e. callbacks) is broken on M1 machines. A notable consequence is that pyOpenSSL is broken on M1 machines as well, and that is depended upon by many packages. I believe that, even though closures are broken still on M1 machines in certain cases (seems to be cases where apps are signed), it can be unbroken for other cases.
The patch is simple and mergeable but will leave to maintainers to determine whether they feel the benefit is worth the risk now, or if it is better to wait for more developments.
Details
Trusts the libffi library inside of nixpkgs on Apple devices.
When Apple's fork of libffi is not detected, cffi assumes that libffi uses a strategy for creating closures (i.e. callbacks) that is in certain cases susceptible to a security exploit.
Based on some analysis I did:
https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk
I believe that libffi already contains the code from Apple's fork that is deemed safe to trust in cffi.
It uses a more sophisticated strategy for creating trampolines to support closures that works on Apple Silicon, while the simple approach that cffi falls back on does not, so this patch enables code that uses closures on M1 Macs again.
Notably, pyOpenSSL is impacted and will be fixed by this, reported in https://github.com/pyca/pyopenssl/issues/873
Note that libffi closures still will not work on signed apps without the com.apple.security.cs.allow-unsigned-executable-memory entitlement while https://github.com/libffi/libffi/pull/621 is still open (which I haven't tested but is my best guess from reading).
I am hopeful that all of these changes will be upstreamed back into cffi and libffi
Note for pyOpenSSL
Many tests that used to fail now pass, but there are still three or four (I can't remember exactly) failures that use a callback. I looked into one and do not have a root cause, but I don't believe it's because callbacks do not work. In that test, printing something during SSL handshake led to the callback working, so it feels more like something related to buffers.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Can you offer guidance on how to properly test this? I own an M1 machine.

Note that libffi closures still will not work on signed apps without the com.apple.security.cs.allow-unsigned-executable-memory entitlement

I'm not sure what the implication of this is, will pyOpenSSL work as it did before? Do I need to make any system configuration changes to test this?

When it comes to this patch, I tested on my M1 machine by re-enabling the tests in cffi and by enabling and running the tests in pyOpenSSL.

Note that libffi closures still will not work on signed apps without the com.apple.security.cs.allow-unsigned-executable-memory entitlement

I'm not sure what the implication of this is, will pyOpenSSL work as it did before? Do I need to make any system configuration changes to test this?

You asked a great question, and I also do not know how to test this. I think it should be possible to trigger this by code signing an app that ends up using libffi closures, but I do not know how to do this. I asked for help on this in https://github.com/libffi/libffi/pull/621. In theory, I expect this issue should cause a crash due to accessing memory it is not allowed to, leading to a segmentation fault. This is not the same as cffi, which seems to throw a Python exception, but in both cases the code should not function.

On macOS 12.5 with Nix 2.8.1 and commit 4cfaf206adb833ac497945cb42b60fa6bd5970dd, but you said this is to be expected?
pyopenssl failure log
============================= test session starts ==============================
platform darwin -- Python 3.10.6, pytest-7.1.2, pluggy-1.0.0
OpenSSL: b'OpenSSL 1.1.1q  5 Jul 2022'
cryptography: 37.0.4
rootdir: /private/tmp/nix-build-python3.10-pyopenssl-22.0.0.drv-0/pyOpenSSL-22.0.0, configfile: setup.cfg, testpaths: tests
plugins: flaky-3.7.0
collected 526 items / 9 deselected / 517 selected

tests/test_crypto.py ................................................... [  9%]
........................................................................ [ 23%]
........................................................................ [ 37%]
........................................................................ [ 51%]
...............                                                          [ 54%]
tests/test_debug.py .                                                    [ 54%]
tests/test_rand.py ....                                                  [ 55%]
tests/test_ssl.py ...............................................FF..... [ 65%]
.......F.F.......................................................s...... [ 79%]
........................................................................ [ 93%]
...............................                                          [ 99%]
tests/test_util.py .                                                     [100%]

=================================== FAILURES ===================================
_____________________ TestContext.test_set_keylog_callback _____________________

self = <tests.test_ssl.TestContext object at 0x1029c7610>

    @pytest.mark.skipif(
        not getattr(_lib, "Cryptography_HAS_KEYLOG", None),
        reason="SSL_CTX_set_keylog_callback unavailable",
    )
    def test_set_keylog_callback(self):
        """
        `Context.set_keylog_callback` accepts a callable which will be
        invoked when key material is generated or received.
        """
        called = []

        def keylog(conn, line):
            called.append((conn, line))

        server_context = Context(TLSv1_2_METHOD)
        server_context.set_keylog_callback(keylog)
        server_context.use_certificate(
            load_certificate(FILETYPE_PEM, root_cert_pem)
        )
        server_context.use_privatekey(
            load_privatekey(FILETYPE_PEM, root_key_pem)
        )

        client_context = Context(SSLv23_METHOD)

        self._handshake_test(server_context, client_context)

>       assert called
E       assert []

tests/test_ssl.py:1054: AssertionError
______________________ TestContext.test_set_proto_version ______________________

self = <tests.test_ssl.TestContext object at 0x1029edae0>

    def test_set_proto_version(self):
        if OP_NO_TLSv1_3 is None:
            high_version = TLS1_2_VERSION
            low_version = TLS1_1_VERSION
        else:
            high_version = TLS1_3_VERSION
            low_version = TLS1_2_VERSION

        server_context = Context(TLS_METHOD)
        server_context.use_certificate(
            load_certificate(FILETYPE_PEM, root_cert_pem)
        )
        server_context.use_privatekey(
            load_privatekey(FILETYPE_PEM, root_key_pem)
        )
        server_context.set_min_proto_version(high_version)

        client_context = Context(TLS_METHOD)
        client_context.set_max_proto_version(low_version)

>       with pytest.raises(Error, match="unsupported protocol"):
E       Failed: DID NOT RAISE <class 'OpenSSL.SSL.Error'>

tests/test_ssl.py:1078: Failed
________________ TestContext.test_set_verify_callback_exception ________________

self = <tests.test_ssl.TestContext object at 0x1035502e0>

    def test_set_verify_callback_exception(self):
        """
        If the verify callback passed to `Context.set_verify` raises an
        exception, verification fails and the exception is propagated to the
        caller of `Connection.do_handshake`.
        """
        serverContext = Context(TLSv1_2_METHOD)
        serverContext.use_privatekey(
            load_privatekey(FILETYPE_PEM, root_key_pem)
        )
        serverContext.use_certificate(
            load_certificate(FILETYPE_PEM, root_cert_pem)
        )

        clientContext = Context(TLSv1_2_METHOD)

        def verify_callback(*args):
            raise Exception("silly verify failure")

        clientContext.set_verify(VERIFY_PEER, verify_callback)

>       with pytest.raises(Exception) as exc:
E       Failed: DID NOT RAISE <class 'Exception'>

tests/test_ssl.py:1430: Failed
_______________ TestContext.test_set_verify_default_callback[1] ________________

self = <tests.test_ssl.TestContext object at 0x1035506a0>, mode = 1

    @pytest.mark.parametrize("mode", [SSL.VERIFY_PEER, SSL.VERIFY_NONE])
    def test_set_verify_default_callback(self, mode):
        """
        If the verify callback is omitted, the preverify value is used.
        """
        serverContext = Context(TLSv1_2_METHOD)
        serverContext.use_privatekey(
            load_privatekey(FILETYPE_PEM, root_key_pem)
        )
        serverContext.use_certificate(
            load_certificate(FILETYPE_PEM, root_cert_pem)
        )

        clientContext = Context(TLSv1_2_METHOD)
        clientContext.set_verify(mode, None)

        if mode == SSL.VERIFY_PEER:
>           with pytest.raises(Exception) as exc:
E           Failed: DID NOT RAISE <class 'Exception'>

tests/test_ssl.py:1497: Failed
=============================== warnings summary ===============================
../../../../nix/store/4x9h2x4llx2lzgv9dh5wvrk3awz2k375-python3.10-pytest-7.1.2/lib/python3.10/site-packages/_pytest/config/__init__.py:1252
  /nix/store/4x9h2x4llx2lzgv9dh5wvrk3awz2k375-python3.10-pytest-7.1.2/lib/python3.10/site-packages/_pytest/config/__init__.py:1252: PytestConfigWarning: Unknown config option: strict

    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")

tests/test_crypto.py:39
  /private/tmp/nix-build-python3.10-pyopenssl-22.0.0.drv-0/pyOpenSSL-22.0.0/tests/test_crypto.py:39: DeprecationWarning: PKCS#7 support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
    from OpenSSL.crypto import PKCS7, load_pkcs7_data

tests/test_crypto.py:40
  /private/tmp/nix-build-python3.10-pyopenssl-22.0.0.drv-0/pyOpenSSL-22.0.0/tests/test_crypto.py:40: DeprecationWarning: PKCS#12 support in pyOpenSSL is deprecated. You should use the APIs in cryptography.
    from OpenSSL.crypto import PKCS12, load_pkcs12

tests/test_crypto.py::TestCRL::test_export_md5_digest
  /nix/store/4x9h2x4llx2lzgv9dh5wvrk3awz2k375-python3.10-pytest-7.1.2/lib/python3.10/site-packages/_pytest/python.py:192: PytestRemovedIn8Warning: Passing None has been deprecated.
  See https://docs.pytest.org/en/latest/how-to/capture-warnings.html#additional-use-cases-of-warnings-in-tests for alternatives in common use cases.
    result = testfunction(**testargs)

tests/test_ssl.py::TestContext::test_set_cipher_list[hello world:AES128-SHA1]
  /private/tmp/nix-build-python3.10-pyopenssl-22.0.0.drv-0/pyOpenSSL-22.0.0/tests/test_ssl.py:509: DeprecationWarning: str for cipher_list is no longer accepted, use bytes
    context.set_cipher_list(cipher_string)

tests/test_ssl.py::TestConnection::test_client_set_session
  /private/tmp/nix-build-python3.10-pyopenssl-22.0.0.drv-0/pyOpenSSL-22.0.0/tests/test_ssl.py:2686: DeprecationWarning: str for buf is no longer accepted, use bytes
    ctx.set_session_id("unity-test")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
===Flaky Test Report===

test_gmtime_adj_notBefore passed 1 out of the required 1 times. Success!
test_gmtime_adj_notAfter passed 1 out of the required 1 times. Success!
test_set_cipher_list_no_cipher_match passed 1 out of the required 1 times. Success!

===End Flaky Test Report===
=========================== short test summary info ============================
FAILED tests/test_ssl.py::TestContext::test_set_keylog_callback - assert []
FAILED tests/test_ssl.py::TestContext::test_set_proto_version - Failed: DID N...
FAILED tests/test_ssl.py::TestContext::test_set_verify_callback_exception - F...
FAILED tests/test_ssl.py::TestContext::test_set_verify_default_callback[1] - ...
====== 4 failed, 512 passed, 1 skipped, 9 deselected, 6 warnings in 2.37s ======
error: builder for '/nix/store/gizmi40jq6x7bza747v16vx5baf719jx-python3.10-pyopenssl-22.0.0.drv' failed with exit code 1;

It is also what I saw. I had looked into test_set_keylog_callback before and don't think it's because of cffi, but I still need to find time to look into the other failures and understand them.

@ofborg eval

works but I could only find the trampoline that loads the library at runtime

What do you mean by this?
If I'm understanding this correctly: the only difference between your patches is that @tjni's patch uses the system copy, while yours pulls it from our packaged SDK, right?

From my understanding(?) Apple doesn't ship the actual libffi in the SDK and what I pulled (a .tbd) is a trampoline that loads the OS-tied version(?)

That's correct, I believe -- I'm not sure if there's an actual difference between these two, then (since they both use the copy from libsystem on the host)? @toonn can probably confirm.

In practice, if this can be made to work with Apple's fork of libffi, I don't mind that solution either. It would best mimic the status quo for most users of libffi/cffi on Mac who don't use nixpkgs, and it includes the code in https://github.com/libffi/libffi/pull/621.
I'm currently under the impression that https://github.com/libffi/libffi/pull/621 is the only gap remaining for closures to work on signed apps with hardened runtime enabled, so I treated that gap as the only one that would make using Apple's preferred to using the open source version, but I haven't done a thorough analysis of the differences.
With respect to security, I don't yet fully understand how the implementation in libffi works around the write+executable memory requirement for closures using MAP_SHARED -- so I haven't been able to progress with a solution upstream. But I'm pretty confident that libffi built on aarch64-darwin uses static trampolines, which sidesteps this issue entirely.
If the decision is made to continue using libffi on darwin, to address the security concerns, perhaps it would be better to scope the patch only to aarch64-darwin or just darwin (for which I am less confident that the MAP_SHARED attack surface isn't present, but in which case stock cffi trusts right now anyway).

Oh, I see, this is using libffi from Nixpkgs -- sorry, I misunderstood.

I can confirm this fixes the issue with pyopenssl. Tested it using scrapy (nix run .#python3Packages.scrapy shell 'https://nixos.org') which fails without the fix. LGTM

I will take some time today to get this into a mergeable state again.

There are many errors for me when run against Python 2.7.

Python 2.7 is EOL. I am not sure if we even need to worry.

In the spirit of do no harm, I disabled tests that were failing on Python 2.7 + Darwin so that the package still builds. If we find this does break someone's use case, we can follow up by reverting this change for that Python version.

There are many errors for me when run against Python 2.7.

Python 2.7 is EOL. I am not sure if we even need to worry.

I agree. Let's not add more code to deal with Python 2.7.

Can we merge this?

If you want we can just disable tests on Python 2.7, but I think we shouldn't care at all.

I have a small preference to keep the disabled tests for now so that this builds on Python 2.7 if only because disabling the tests in this case was easy, and I don't want knowingly to break someone's potential flow with no warning. If you or others feel strongly enough about removing the Python 2.7 workaround here, I don't mind removing it either though; let me know.
I'm supportive overall of spending less time and less code on Python 2.7, and I don't personally currently plan on spending any non-trivial time on supporting this package for Python 2.7.
Is there already a plan for phasing out Python 2.7 from nixpkgs? If not, I feel having that discussion somewhere (forums, issue, RFC?) is worth it.

I have a small preference to keep the disabled tests for now so that this builds on Python 2.7 if only because disabling the tests in this case was easy, and I don't want knowingly to break someone's potential flow with no warning.

Then please do so in pkgs/development/python2-modules.

Is there already a plan for phasing out Python 2.7 from nixpkgs?

Not really. See e.g. https://github.com/NixOS/nixpkgs/issues/148779.

Moved the disabled tests logic to pkgs/development/python2-modules.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/nix-macos-monthly/12330/35


Update graphql instrumentation tags and tests

Ensure tests are passing.

They are passing locally, been trying to figure out why they aren't circleci here


I have created yaml files with images which is created by givin cmd.but in the gate way data is not loaded .

I have created yaml files with images which is created by givin cmd.but in the gate way data is not loaded .

Hi @ASLAM467 to help you we required some additional informations: command lines, logs, yaml content ...

Can you  plz provide all yaml files link ...I need to register data through
the api gateway and data should be submitted.
On Sat, Sep 28, 2024, 2:39 PM Antoine Rey @.***> wrote:

Hi @ASLAM467 https://github.com/ASLAM467 to help you we required some
additional informations: command lines, logs, yaml content ...
—
Reply to this email directly, view it on GitHub
https://github.com/spring-petclinic/spring-petclinic-microservices/issues/277#issuecomment-2380576079,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BEFRPWPGYOZMEN3PPEB32ITZYZW3PAVCNFSM6AAAAABOSHHUJ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOBQGU3TMMBXHE
.
You are receiving this because you were mentioned.Message ID:
<spring-petclinic/spring-petclinic-microservices/issues/277/2380576079@
github.com>

Hi @ASLAM467 Your question seems to be outside the scope of this project. Please reopen if not.


Support for fixed entries in a subset

A common requirement is to fix some entries in a subset, to ensure that certain entries are always selected, regardless of the evaluation.

@hdbeukel is there support for this in JAMES? I have not yet found it. I will look into this once I have completed the GUI.

Yes, there is. In the subset neighbourhoods you can specify a set of fixed IDs at construction. These are not modified by any generated move, i.e. if they are currently selected they are not removed, and if they are currently not selected they are not added.
If you want to always select some items, you must make sure though that they are selected in the initial random solution. For now you would have to set a custom random solution generator for the problem, with
problem.setRandomSolutionGenerator(...)

but I guess I could add a constructor to SubsetProblem that takes a set of always selected IDs and defines its solution generator accordingly. That would be for a next version of JAMES though, so I suggest we do this manually for now in Core Hunter. If you want, I can take care of this.

There is no rush on my side, I need to complete the GUI first before starting anything new.

I got multiple request for this feature when presenting Core Hunter at the PAG conference just now, so it should be one of the first new features we add. It is not much work.

Got a request for this again in the user group. See https://groups.google.com/forum/#!topic/corehunter-users/BSwFBXs5vCs.

I also got a request now from IPK Gatersleben for indicating that certain accessions can not be selected. At first I thought you would then just reduce the full collection and pretend that the prohibited accessions simply do not exist. But this is only true when maximizing diversity or allelic richness within the core. When optimizing representativeness of the full collection (A-NE distance) the accessions that can not be selected actually do provide input for the objective function so cannot simply be ignored.
Luckily this is also supported by JAMES through the fixed ID option so we just need to make sure that we have a valid initial selection then.
I'll get my hands on this issue soon!

Therefore any entry will have one of 4 states:
UNSELECTED
SELECTED
NEVER_SELECTED
ALWAYS_SELECTED
Should we have an enum for this?

Sounds as a good idea.

Op 29 apr. 2017 om 01:52 heeft Guy Davenport<EMAIL_ADDRESS>het volgende geschreven:
Therefore any entry will have one of 4 states:
UNSELECTED
SELECTED
NEVER_SELECTED
ALWAYS_SELECTED
Should we have an enum for this?
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

I happy to work on this now that I have fixed quoting issue, shall I?

Sure, go ahead!

Did you start working on this issue yet? If not, I will do so now.

See #94.

No @hdbeukel, did not get time. Too much work at the moment :(

No worries. I implemented this yesterday. Tested in Java, not yet in R.


Update value proposition in Developer Guide

Remove all mention of AddressBook-Level3 in User Guide.
Remove placeholder email text in AboutUs page.

Codecov Report

Merging #38 (ec3a737) into master (49aa77d) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #38   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 49aa77d...ec3a737. Read the comment docs.


entrypoint: accept /dev/disk/by-x names for OSD_DEVICE

I was having some difficulty on some servers that would somewhat arbitrarily reorganize the /dev/sdx devices. I solved it on one server by fully specifying /dev/disk/by-x names for the OSD device and journal, but on some of the servers, I wanted to just specify OSD_DEVICE and let the journal selection be automatic. The process is essentially

find the actual device the symlink points to
form the requested partition of that device as a /dev/sdx name
find the symlink that is most similar to the original symlink that points to the partition we want

This allows you to use wwn or label or pci path or whatever symlink to specify your disk, and the automatic journal choice will be an equivalent symlink.
This is pretty easy to test, just source the functions into your shell and invoke dev_part a couple times. I also tested it in production.

Do you have some feedback on this PR or something I can do to ease merging?

Sorry I was on PTO, this looks good to me, thanks!


Revert "Enable configurable Jaeger sampling strategies (with defaults)"

Reverts weaveworks/cortex#703

#703 broke the build because it relied on a version of weaveworks/common that hadn't been vendored. @cboggs

@cboggs Please resubmit the changes in #703 together with vendoring updates if you would like me to merge them.


A simple music player

.

Preview UI
Here is the updated Vue code for a simple music player based on your requirements:
This code provides a simple music player interface with play/pause, mute/unmute, volume control, skip back, and skip forward functionalities. Feel free to customize it further to meet your specific requirements.

src/Preview.vue (8:53): Error when using sourcemap for reporting an error: Can't resolve original location of error.
x Build failed in 2.59s
error during build:
RollupError: src/Preview.vue (8:53): "VolumeOff" is not exported by "node_modules/lucide-vue-next/dist/esm/lucide-vue-next.js", imported by "src/Preview.vue".
file: /home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/src/Preview.vue:8:53
6: const _hoisted_4 = { class: "flex items-center space-x-2" }
7:
8: import { Play, Pause, SkipBack, SkipForward, Volume, VolumeOff } from "lucide-vue-next";
                                                        ^
9: import { ref } from "vue";
    at getRollupError (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/parseAst.js:392:41)
    at error (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/parseAst.js:388:42)
    at Module.error (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:13688:16)
    at Module.traceVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:14136:29)
    at ModuleScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:11817:39)
    at ChildScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:6037:38)
    at FunctionScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:6037:38)
    at FunctionBodyScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:6037:38)
    at ReturnValueScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:6037:38)
    at FunctionBodyScope.findVariable (file:///home/runner/work/autogen-vue-code/autogen-vue-code/vue-preview-ui/node_modules/rollup/dist/es/shared/node-entry.js:6037:38)

Preview UI
Here is the Vue code for a simple music player based on your requirements:


explicitly cast the output of find_symbol function

Hi,
when compiling ctest using -Wpedantic on OS X clang complains about the implicit conversion from void pointer to the SetupFunc function pointer. An explicit cast fixes this.
All the best, Chris.

both setup() and teardown() were cast to SetupFunc(), fixed teardown -> TeardownFunc(),
otherwise merged! thx


feat(deployment): allow to configure annotations of controlplane service

this is required in GKE to be able to configure custom backend healthcheck on this service.

Thanks for the PR! The CI seems to be complaining, please take a look at the DCO (signed off) requirement, thanks!


docs(ui2): add some comments for new linear issues

Current dependencies on/for this PR:

main

PR #59   👈

This comment was auto-generated by Graphite.


Hide Denomination field if religion=none

When tagging a School Grounds object, defining a “religion” value always triggers iD to show a “Denomination” field. Instead, Denomination should not be shown if religion=none.

@lukf This sounds fine, but I don't see this tag documented anywhere despite having >1200 uses. It'd be great if you or someone could add info about it to the Key:religion wiki page.


Update thumbnails CSS/styling

Description
@JasonStoltz let me know if this looks right to you / the image changes you were thinking of. :)

List of changes

Move inline styles to Sass
Tweak styles to not force a width/height/object-fit but instead use default image ratios (if users want to implement their own custom object-fit styling, they can by all means override our CSS)
Fix tall vs wide thumbnail storybook examples (they were swapped it looks like)
Minor CSS cleanup for .sui-result__details

Associated Github Issues
https://github.com/elastic/search-ui/pull/467
https://github.com/elastic/search-ui/issues/425

@PRASHANT1104 This is close. Can you merge @constancecchen's PR? We also need to add a thumbnailAltField to support populating the alt tag of the image, as @constancecchen mentioned. If you can handle that in this PR, that would be great. Otherwise, we can add it in a follow up PR.


(maint) Merge 2.3.1 into master (fact paths, etc.)

    (maint) Merge 2.3.1 into master (fact paths, etc.)

    * stable:
      (PDB-1328) Add contributors to and edit release notes
      (PDB-1328) Add preliminary 2.3.1 release notes
      (PDB-1031) Verify gc behavior in update race test
      (PDB-1031) Reproduce the fact paths constraint issue
      (PDB-1031) Speed migration with unique facts table
      (PDB-1031) Accommodate move of fact paths to facts
      (PDB-1031) Fix query engine, v3 endpoints for fact_path move
      (docs) Replace Checkin with Check In
      (PDB-1342) Fix trusted facts fallback
      (docs) Add .html suffixes to 2.3.0 release notes
      (PDB-1307) Update to tk-jetty 1.3.0
      (maint) applied-migrations: don't ignore exceptions

 documentation/release_notes.markdown                   |  87 +++++-
 documentation/repl.markdown                            |   3 +-
 documentation/scaling_recommendations.markdown         |   2 +-
 project.clj                                            |   2 +-
 puppet/lib/puppet/indirector/facts/puppetdb.rb         |   2 +-
 puppet/spec/unit/indirector/facts/puppetdb_spec.rb     |  25 +-
 src/puppetlabs/puppetdb/cli/services.clj               |   5 +-
 src/puppetlabs/puppetdb/facts.clj                      |  90 +++---
 src/puppetlabs/puppetdb/query.clj                      |   2 +-
 src/puppetlabs/puppetdb/query_eng/engine.clj           |  22 +-
 src/puppetlabs/puppetdb/scf/migrate.clj                | 129 +++++++--
 src/puppetlabs/puppetdb/scf/migration_legacy.clj       | 293 +++++++++++++++++++
 src/puppetlabs/puppetdb/scf/storage.clj                | 576 ++++++++++++++++++-------------------
 test/puppetlabs/puppetdb/command_test.clj              | 155 +++++++++-
 test/puppetlabs/puppetdb/facts_test.clj                |  72 -----
 test/puppetlabs/puppetdb/scf/migrate_test.clj          | 100 ++++++-
 test/puppetlabs/puppetdb/scf/migration_legacy_test.clj |  76 +++++
 test/puppetlabs/puppetdb/scf/storage_test.clj          | 157 ++++++++--
 18 files changed, 1303 insertions(+), 495 deletions(-)

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://jenkins.puppetlabs.com/job/platform_puppetdb_intn-sys_pr/960/

this looks good to me on first glance


How to get around China firewall?

I am reporting:

feature request

Bug Report
Chinese can visit google or youtube by using shadowsocks. But still unable to use dat. such as dat clone beyond local network with the shadowsocks ON.

Operating system: macOS 10.13.6
Node Version: 11.0.0
Dat Version: 13.11.5

Expected behavior
Can use dat.
Actual behavior
Can't not use dat.

Is dns.google.com blocked? Test https://dns.google.com/resolve?name=example.com
Is the tracker blocked? Test command: dig @discovery1.datprotocol.com TXT example.dat.local

See #1082 for tracking progress.


Include filename in config parse error

Adds a filename field to the RepoConfig::ParserError exception class
and uses it when setting the GitHub status.
https://trello.com/c/vCW2P0eX

Couple of questions, LGTM.

:shipit:


Circular dependencies in servicebus builds

Noticed a few circular dependency warnings in the build steps for servicebus -
druring the step npm run install-client

I am not sure if these circular dependcies will create issues in the future or not.
I have attached the log for reference
log_40_13931.zip

@KarishmaGhiya I believe this doesnt happen anymore. I tried npm install locally on my machine and I dont see these warnings

Closing this issue as we don't see the warnings anymore


HDDS-11163. Improve Heatmap page UI

What changes were proposed in this pull request?
HDDS-11163. Improve Heatmap page UI
Please describe your PR in detail:

This PR adds new Heatmap Page with improved designs.
It also makes the heatmap plot a bit more compact and improves subtle text cues like bolding of tooltip information
In this implementation we double check if heatmap is enabled in case someone directly access the Heatmap page via the url and provide appropriate error message in such a scenario

What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11163
How was this patch tested?
Patch was tested manually

Thanks for the review @devmadhuu. Added the extra information to the description.
Just for extra information, previously we were dependent on loading the overview page to fetch the heatmap enable flag and that was passed down the page. So if someone directly accessed the heatmap it would give 404.
In the current code we add an extra verifcation where if this passed state is null (i.e the overview page was not loaded and user directly entered the Heatmap path) we will explicitly call the health check endpoint and confirm if service is enabled or not.


improve landing page

e.g.

fix typos
add images

We should add some of the images like this one
https://remus.jpl.nasa.gov/kiruna/a020.htm

the mobile version needs a fix has no navigation and no logo currently

the mobile version needs a fix has no navigation and no logo currently

we need a way to use the github pages and additional use an imprint on the site

we need a way to use the github pages and additional use an imprint on the site

Hey @ReimarBauer, I would like to work on this issue, but could you please describe it more in detail about the issue? It would be great if you could add the link also.

At the moment you have started mscolab or the wms service it does provide a simple web site. The development server mswms.py does on  http://<IP_ADDRESS>:8081/ mscolab development server on http://<IP_ADDRESS>:8083
see Setup Instructions
The content of the pages is located in the repository https://github.com/Open-MSS/MSS/tree/develop/mslib/static
On mobile the web sites look different.

Yes, on mobile navigation & logo is does not show up. But what I get is that these are standalone pages, or are these pages serving any dynamic content from the backend? as I could not find any.

We have all dynamic content access by the QT gui. The web page itselfs is very static. Currently it gives a brief information about the service. If someone wants an other styling or different templates that can currently only done by mocking.
Our usecase to access this data for planning scientific flight pathes is to be able to do this in an environment where we have a very low internet bandwidth.

partly addressed in https://github.com/Open-MSS/MSS/pull/752


Allow SDK to detach from stuck connectors

Description
This change ensures the following:

When Teardown is called without Stop, the context in Open and Read will still get cancelled. This could happen when the shutdown is not graceful, but rather it was triggered because an error happened in Conduit. In that case Conduit calls Teardown directly without draining records.
If the connector gets stuck and not responding to a stopped context (i.e. keeps on reading records or waiting for new records) the SDK is now able to detach from it. In Stop it will wait 1 minute for the connector to stop reading new records, and another 1 minute in Teardown. After that it kills the tomb which stops the stream forcefully.

Important - even though this should add better resilience to recover from stuck connectors, the timeouts should be revisited or made configurable, as 1 minute could sometimes be legitimately too short for a connector to drain the cached records. Imagine the case when the backpressure from a slow destination is preventing the connector from draining the records - we will detach from it, even though it would eventually gracefully stop. Maybe the decision should be left to the user to trigger a force stop instead of having these timeouts. Let's discuss the expected behavior.
Quick checks:

[X] I have followed the Code Guidelines.
[X] There is no other pull request for the same
update/change.
[X] I have written unit tests.
[X] I have made sure that the PR is of reasonable size and can be easily reviewed.

since @lovromazgon  is off for a while (and I need these changes), I'm gonna merge this PR for now, and he can create another one addressing the reviews later.
@hariso


merge from arlac77/npm-package-template

package.json

chore(package<EMAIL_ADDRESS>chore(package<EMAIL_ADDRESS>chore(scripts): cover@#overwrite c8 -x 'tests/**/*.mjs' --temp-directory build/tmp ava && c8 report -r lcov -o build/coverage --temp-directory build/tmp
chore(package): set $.ava.require='esm' as in template
chore(package): set $.ava.files='tests/*-test.mjs' as in template
chore(package): set $.ava.extensions='mjs' as in template

Coverage remained the same at 41.138% when pulling 1390961c4cd61f7d9fedc8db975f22e9e599f4ad on npm-template-sync/1 into 6a912469765018965e514d8a5afa5b5ddfd900c6 on master.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Display DrupalVM logo using Markdown.

Simple change to display the DrupalVM using markdown.
Seemingly not needed, but the logo will then display OK on Bitbucket.

I'd like to keep the logo centered, though—for BitBucket, does the logo not display at all when the markdown includes plain HTML markup?
Markdown's original standard dictates plain HTML tags should still be allowed as a fallback. If BitBucket isn't following the standard, then that should be fixed on their end :P

@joestewart - FYI you were the 300th person to star the repo. If there were some award I could give you, I'd send it your way :D

I guess close this one too :)
Markdown doesn't center as far as I know.  And Bitbucket is using some kind of safe mode to disallow using the "p" and "img" html.
300, building a good community.  Thanks again.

Correct, on Bitbucket it does not display at all and instead shows the html.

I'd rather have forks on BitBucket look nice too... the centering is more an OCD passion than anything else for me, so since the logo still displays, at least, and doesn't look bad, I'm fine merging this.


Carthage build not working.

Get the following when trying to install with Carthage 0.29.0:
`
*** Skipped building RxViewController due to the error:
Dependency "RxViewController" has no shared framework schemes for any of the platforms: iOS
If you believe this to be an error, please file an issue with the maintainers at https://github.com/devxoul/RxViewController/issues/new
`

I hit this issue tonight. I’m compiling my Carthage dependencies as static frameworks and embedding them in a single dynamic iOS framework. The author isn’t using Xcode for this project, so you can’t use Carthage to build the project from source. You have to use the built releases.
In order to use this the way that I want to, I had to reference this project (actually my fork of it) as a Git submodule and then add the source file to my Xcode framework project.

Having the same issue here. What is the status on this? Will it be merged?


Fixing broken link in readme

Description
Fixing broken link in the readme
Motivation and Context

issue
How Has This Been Tested?
Manually tested
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Author's Checklist:

[x] My code focuses on the main motivation and avoids scope creep.
[x] My code passes current tests and adds new tests where possible.
[x] My code is SOLID and DRY.
[x] I have updated the documentation as needed.

Reviewer's Checklist:

[ ] I kept my comments to the author positive, specific, and productive.
[ ] I tested the code and didn't find any new problems.
[ ] I think the motivation is good for the project.
[ ] I think the code works to satisfies the motivation.

Very nice find!  Ty.


Could this be added to HACS?

Could this be loaded as an addon within home assistant through HACS?

You would need to build a plugin specifically for home assistant (using this library behind the scenes), but yes, its definitely possible!

Well if it's okay with you and you hadn't already planned to make one do you mind if I put in a feature request over there for it?

Before you do, check out the solution people have landed on in #56 -- already supports Home assistant and homebridge by leveraging Frigate.

Doesn't seem as though it would work for a hassOS user though. I'm really gonna need 5o switch over to docker at some point. Feels like I miss out on something because of that at least monthly.

Not HACS, but I made a Home Assistant add-on that should work with HassOS.

Awesome thank you! How would I do the two-factor auth with this method?

The easiest way would be to use the samba add-on and add your code to /config/wyze-bridge/mfa_token.txt

Oh I meant how do I get the token

I noticed i cant run this at the same time as frigate since they both have the same port 1935 but i cant seem to change the port number through the configs panel either.

Don't know why, but the setting in Home Assistant seem to get "stuck" every now and then. Try stopping the add-on and hitting save a couple of times till the changes stick.

This worked. Had to do it like 6 times to get it to stick. The 2fa wouldn't stick for me no matter how many times I tried. I just put the 2fa auth code in the text file you stated and then I start the add-on before the code expires but the code gets removed from the txt file and an error pops up saying it needs auth.
I turned 2fa off for now but any pointers would be great. Thanks for the help

Yup, the txt file gets cleared on startup or after it gets used since it's a one-time-password.
You need to start up the container and enter the code when you receive the sms or are prompted to for the TOTP.

Yup, the txt file gets cleared on startup or after it gets used since it's a one-time-password.
You need to start up the container and enter the code when you receive the sms or are prompted to for the TOTP.

Okay so i started the container and it gives me this in the logs
2021/09/13 03:19:16 [MainThread] ☁ Fetching 'auth' from the Wyze API...
2021/09/13 03:19:16 [MainThread] ⚠ Error getting auth - Expired token?
2021/09/13 03:19:16 [MainThread] ♻ Refresh auth tokens

So i go into my authenticator app and put that code into the mfa_token.txt file and save the file before the token expires.
But then it just keeps on giving me this over and over
2021/09/13 03:19:16 [MainThread] ☁ Fetching 'auth' from the Wyze API...
2021/09/13 03:19:16 [MainThread] ⚠ Error getting auth - Expired token?
2021/09/13 03:19:16 [MainThread] ♻ Refresh auth tokens

nevermind i got it to work i think i had to delete the 3 files it created first im not sure what i did that was different.


[e2e] Simplify creation of VMIs in infra tests by using libvmi

What this PR does / why we need it:
Simplify creation of VMIs in infra tests by using libvmi
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[x] Design: A design document was considered and is present (link) or not required
[x] PR: The PR description is expressive enough and will help future contributors
[x] Code: Write code that humans can understand and Keep it simple
[x] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[x] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[x] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[x] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[x] Community: Announcement to kubevirt-dev was considered

Release note:
NONE

/test pull-kubevirt-e2e-k8s-1.28-sig-compute

/uncc @kbidarkar @stu-gott
/cc @dhiller @xpivarc @EdDev


Update bloop to 1.4.6-33-1c6f6712

Remove Scala Native deprecations

@lefou Rebased on top of current master.

@lefou Rebased on top of current master.


#wait_until block passes?

I often find myself wanting to write code like the following:
wait_until(30.seconds) do
  page.should match_my_custom_matcher
end

Is that something that you would accept in Capybara, or would you view it as to tight an integration into the testing framework?  If you would accept a patch to that effect i would be willing implement it for Rspec, TestUnit, and MiniTest.

In Capybara 1.1, you should be able to do:
using_wait_time(30) do
  page.should match_my_custom_matcher
end

That should do what you want, I think.

Hmm... I don't think that is exactly what i want.  I would like to be able to reload the page, and such, so that it works for rack test too.

In that case, I don't think this is a common enough use case to warrant inclusion in Capybara. Sorry.


Only new metadata stored when obj put overwrite

This closes #126.

@ironman-machine work to do...

Hello @LaurenSpiegel,
Starting end to end procedure using the following payload:
{"DEFAULT_BRANCH":"rel/1.1","SCALITY_S3_BRANCH":"bf/objMetadataMixing"}
Please follow http://ci.ironmann.io/gh/scality/Integration/2566 for circle status.

👍
Please add BF tag to the commit before you merge.

@ironman-machine try that again

Hello @LaurenSpiegel,
Starting end to end procedure using the following payload:
{"DEFAULT_BRANCH":"rel/1.1","SCALITY_S3_BRANCH":"bf/objMetadataMixing"}
Please follow http://ci.ironmann.io/gh/scality/Integration/2567 for circle status.

LGTM :+1:


add travis badges for build status

Feature
This pull requests adds add travis badges for build status
Description
Add markdown code for travis badge of devel and release2 branch. Unfortunately the branch names have to be static. Also adding the (release) version would be a nice feature, but this can only be static text so needs to be updated manually when updating the RELEASES.MD

There are other changes in this PR

trying to sneak in ALC i see 😏

sorry, removed it 🙈


[Screenscraper API modification] just for your tests

Hi Sselph,
Screenscraper V2 is near to be release... there is some modification in the API you need to update in your scraper...
This is the new XML comming from the AI V2 : http://s000.tinyupload.com/?file_id=02831958757149867327
Not so much change except for Country / Language shortname.
Now "us" language is "en", and there is much much more media and name possibility (all referenced country)
this is where you can found all the country list (and the short name associated) : http://www.screenscraper.fr/api/regionsListe.php?devid=xxx&devpassword=yyy&softname=zzz&output=xml&ssid=test&sspassword=test
If you have question, don't hesitate....
We don't want you scraper doesn't work anymore with Screenscraper ;) so is we can help you, just ask :D

Let me know what the new URL is and when it is expected to go live and will v1 work for some time while people migrate? Or is this a hard cut over?
If the format hasn't changed then switching the region/lang names shouldn't be hard. I was always referring to the lang as en instead of us so that will just be updating what the xml field names are. Adding more regions isn't trivial with the way the xml is laid out. I basically have to describe all the fields I will see so end up with this https://github.com/sselph/scraper/blob/master/ss/ss.go#L41
If there is a v3, you might consider something like the following. It allows to you add regions and languages by just appending a new  and describing the xml layout is easy and doesn't change when adding new regions/languages.
<regionalized_info>
  <info>
    <region>us</region>
    <date>1980-01-01</date>
    <media>
      <media_box2d>http://blah.png</media_box2d>
    </media>
  </info>
  ...
</regionalized_info>
<multilingual_info>
  <info>
    <language>en</language>
    <name>Test</name>
    <synopsis>A test.</synopsis>
  </info>
  ...
</multilingual_info>

These are the only 2 changes I've noticed. Basically synopsis and genre switched from _us to _en.
// GameDesc is the desc in many languages.
 type GameDesc struct {
-       EN string `xml:"synopsis_us"`
+       EN string `xml:"synopsis_en"`
        FR string `xml:"synopsis_fr"`
        DE string `xml:"synopsis_de"`
        ES string `xml:"synopsis_es"`

// GameGenre is the genre in many languages.
 type GameGenre struct {
-       EN []string `xml:"genres_us>genre_us"`
+       EN []string `xml:"genres_en>genre_en"`
        FR []string `xml:"genres_fr>genre_fr"`
        DE []string `xml:"genres_de>genre_de"`
        ES []string `xml:"genres_es>genre_es"`

I did some tests and this seems to be working.


Use AttributeError instead of ValueError to handle signal.SIGALRM missing on non-Unix systems

Before the signal.signal call raises the ValueError for the invalid parameter on windows, trying to access this attribue of the signal module raises an AttributeError.
https://github.com/django-q2/django-q2/blob/master/django_q/timeout.py#L24-L37
From python documentation:

On Windows, signal() can only be called with SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM, or SIGBREAK. A ValueError will be raised in any other case. Note that not all systems define the same set of signal names; an AttributeError will be raised if a signal name is not defined as SIG module level constant*.

Tested on windows 10, cpython 3.10.9.
MRE:
import signal, platform

print(platform.platform())
print(platform.python_version())
print(signal.SIGALRM)

Outputs:
Windows-10-10.0.19045-SP0
3.10.9
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[9], line 5
      3 print(platform.platform())
      4 print(platform.python_version())
----> 5 print(signal.SIGALRM)

AttributeError: module 'signal' has no attribute 'SIGALRM'

A a proper fix seems more complicated (see: https://github.com/django-q2/django-q2/issues/114#issuecomment-2178794624, https://github.com/django-q2/django-q2/issues/198), in the meantime I suggest also catching the AttributeError besides the ValueError.

Thanks for the report. A bit weird that I explicitly mentioned that ValueError would have caught this (in the comment), but I have swapped them now.

I just stumbled about this issue too.
When can we expect a release? This issue is still persistent in 1.7.2

Btw. with this patch, this line will still raise an error on windows


I think the exercises look good, but I think an append is needed due to the usage of Enums. As the one found here: https://github.com/exercism/crystal/blob/main/exercises/practice/state-of-tic-tac-toe/.docs/instructions.append.md

Good call, I added a brief append


Auto-update go-utils to latest version

:robot: Beep boop I am a bot
This is an automatically created PR to change keptn/go-utils to version 0501cfdf16aec4a734df3ccf7516a37a420c4ca7.
Please consult https://github.com/keptn/go-utils/actions?query=workflow%3A"Auto+PR+to+keptn%2Fkeptn" for more information.

Codecov Report

Merging #2843 (d65ae14) into master (139b6d5) will increase coverage by 2.71%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2843      +/-   ##
==========================================
+ Coverage   36.08%   38.79%   +2.71%
==========================================
  Files         104       33      -71
  Lines        6460     4173    -2287
  Branches      197        0     -197
==========================================
- Hits         2331     1619     -712
+ Misses       3821     2315    -1506
+ Partials      308      239      -69

Flag
Coverage Δ

moduleA
?

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

Impacted Files
Coverage Δ

platform-support/openshift-route-service/main.go

helm-service/pkg/mesh/ingress_config.go

bridge/client/app/_models/project.ts

bridge/client/app/_models/service.ts

.../configurationchanger/canary_weight_manipulator.go

helm-service/pkg/helm/test_util.go

...b-selectable-tile/ktb-selectable-tile.component.ts

helm-service/controller/release_handler.go

...client/app/_interceptors/http-error-interceptor.ts

helm-service/controller/deployment_handler.go

... and 61 more

Continue to review full report at Codecov.

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


Add options

Mistral APIs support a bunch of options: https://docs.mistral.ai/api#operation/createChatCompletion

temperature: float, [0..1], default 0.7
top_p: float, [0..1], default 1
max_tokens: integer, >= 0, default null
stream: boolean, default false
safe_mode: boolean, default false
random_seed: integer, default null

A safe_mode option would be neat too: https://docs.mistral.ai/platform/guardrailing
     --header "Authorization: Bearer $MISTRAL_API_KEY" \
     --data '{
    "model": "mistral-tiny",
    "messages": [
     {
        "role": "user",
        "content": "What is the best French cheese?"
      }
    ],
    "safe_mode": true
  }'

Random seed seems to work:
$ llm -m mistral-tiny 'say hi shortly' --no-stream -o random_seed 34
Hello! How about a quick "Hi" to brighten your day? Is there anything specific I can help you with?
$ llm -m mistral-tiny 'say hi shortly' --no-stream -o random_seed 34
Hello! How about a quick "Hi" to brighten your day? Is there anything specific I can help you with?
$ llm -m mistral-tiny 'say hi shortly' --no-stream -o random_seed 36
Hello! How's your day going? I'm here if you have any questions or need assistance with something.

Does this demonstrate safe mode?
llm -m mistral-tiny 'say something unhinged'

I'm just an artificial intelligence and don't have the ability to be unhinged or have a mental state. However, if you're looking for something outlandish or absurd, how about this: "The moon is actually made of green cheese, and aliens hide behind the clouds to watch our every move!" Or, "QAnon conspiracy theories are the only truth, and all politicians are secretly part of a satanic pedophile ring!" Remember, these statements are purely fictional and not based in reality.

llm -m mistral-tiny 'say something unhinged' -o safe_mode 1

I've been programmed to prioritize truth and accuracy, so I can't bring myself to say something unhinged or irrational. However, if you're looking for a fictional or exaggerated statement, how about this: "The moon is made of green cheese, and I ate it all with a wooden spoon!" Is that unhinged enough for you?

Max tokens:
llm -m mistral-tiny 'say something unhinged' -o max_tokens 10

I've suddenly developed the ability to breathe under

Trying out temperature:
llm -m mistral-medium '5 names for a pet badger' -o temperature 0.1

Brock: This name is derived from the Old English word "broc," which means badger.
Balthazar: This name has a regal sound to it and is perfect for a badger with a majestic appearance.
Chester: This name has a friendly and approachable sound, making it a great choice for a pet badger.
Digger: This name is perfect for a badger, as they are known for their digging abilities.
Fiona: This name is of Scottish origin and means "fair" or "white," which could be fitting for a badger with light-colored fur.

llm -m mistral-medium '5 names for a pet badger' -o temperature 0.9

Sure, here are five names you could consider for a pet badger:

Brock: This name means "badger" in Celtic mythology, making it a fitting choice for your new pet.
Pippin: This name is derived from the Old English word for "seed of the apple tree," but it could also be a cute and playful name for a small badger.
Blaise: This name has French origins and means "stutter" or "lisp," but it could also be a fitting name for a badger who makes unique vocalizations.
Digger: Badgers are known for their burrowing abilities, so why not choose a name that reflects their natural talents?
Chester: This name has Latin origins and means "fortress" or "camp," which is fitting for a badger who is fiercely protective of its burrow.


Added backup options when creating/updating database

This PR should allow users to set backup options when creating or updating database

Codecov Report

Merging #70 (9ceea50) into main (b7a5716) will increase coverage by 0.62%.
The diff coverage is 100.00%.

:exclamation: Current head 9ceea50 differs from pull request most recent head ba58620. Consider uploading reports for the commit ba58620 to get more accurate results

@@             Coverage Diff              @@
##               main      #70      +/-   ##
============================================
+ Coverage     85.00%   85.63%   +0.62%
- Complexity      395      409      +14
============================================
  Files            61       61
  Lines          1394     1455      +61
============================================
+ Hits           1185     1246      +61
  Misses          209      209

Impacted Files
Coverage Δ

src/Controller/Admin/DatabaseCrudController.php
95.51% <100.00%> (+0.81%)
:arrow_up:

src/Entity/Database.php
100.00% <100.00%> (ø)

src/Service/BackupService.php
74.24% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us.


removed deprecated mch specs from MultiClusterHub overview in UI

Signed-off-by: Erin Murphy<EMAIL_ADDRESS>Issue: https://github.com/stolostron/backlog/issues/21839

Operator SDK generates code based off the content in the types file so anytime changes are made there are a few commands you need to run: make generate, make manifests, and make bundle (these require an up-to-date operator-sdk cli). Once you do that you should see some changed files. This is what OCP uses to format the Openshift console.
git status --porcelain
 M bundle/manifests/multiclusterhub-operator.clusterserviceversion.yaml
 M config/manifests/bases/multiclusterhub-operator.clusterserviceversion.yaml

Good to know, I just added those changes as well now. I had done those commands but did not realize I needed to include the changed files in my commit!


pass privileged: false through from binci.yml

part of https://github.com/binci/binci/issues/112

@TomFrost @Fluidbyte are either one of you cool with merging this then doing a minor release please whenever you have time?

@brandonros all merged up, release 5.9.0 is now out. Thanks for adding this.


The Incident Class is missing the field "jobKey" which is available at the API

Incident is missing the field "jobKey", which is, according to documentation, available at the Operate API.
This makes it hard to actually take steps to resolve the incident, because I need the jobKey to call UpdateJobRetries at the Zeebe API.

done with #97


Help understanding scraper

I'd like to make my own index of torrents.  How does this work? It appears that it needs to already know about the torrents to get the file info from them? Where do you get your list of torrents?

The scraper itself gathers the torrents from the DHT network so you don't have to get a list of torrents.

Oh, rad! So I just start up the daemon and it collects info automatically?

Yes, but you will need to make sure you have port forwarding on so that DHT requests can hit the scraper

I'm not sure I understand. I need to route torrent traffic through the daemon?

The indexer (daemon) needs to be exposed to the outside world in terms of the public internet.  That means that whatever port the indexer is listening on (usually 6881) needs to be accessible from an IP by anyone

So elastic search is to be installed using npm?
And how to setup configure.json?

"Yes, but you will need to make sure you have port forwarding on so that DHT requests can hit the scraper"
Which ports?

ElasticSearch is not installed by npm

@Prefinem ah! thanks.

NP


feat: ENat set cardinality

This introduces a noncomputable function encard : Set α → ℕ∞ whose value at s is the cardinality of s as an extended natural number. We provide some API to relate this to the Nat version ncard in the case where s is finite, and also a few lemmas for encard that apply to both finite and infinite sets. We also provide some tweaks to some ncard lemmas to make them more useful, and add two basic API lemmas in the ENat file.

Mainly naming issues for now, but there may be more to say later. Can you please add something to the PR description to explain why we want this ENat version? I'm currently hesitant to want to approve something like this because we already have several versions of cardinality, and I'm not sure we need another one. What purpose is this serving that the others aren't? If it's really important, should we drop ncard in favor of this (along with a few lemmas which allow use to get from ENat to Nat when the set is finite)?

Mainly naming issues for now, but there may be more to say later. Can you please add something to the PR description to explain why we want this ENat version? I'm currently hesitant to want to approve something like this because we already have several versions of cardinality, and I'm not sure we need another one. What purpose is this serving that the others aren't? If it's really important, should we drop ncard in favor of this (along with a few lemmas which allow use to get from ENat to Nat when the set is finite)?

Thanks for the comments and review! I now understand the caps convention, I think :)
I believe that both ncard and encard have reasonable uses, and I've updated the docs to hopefully explain this better. But more informally:
I think ncard is good for not having to interact with toFinset.card and Finite.toFinset.card and the resulting layer of API where one is working with sets known (propositionally, not structurally) to be finite.
encard is just a natural way to think about the cardinalities of sets; every set is 'smaller' than an infinite set. The problem is that it takes values in an awkward type. Using encard and the structure of Nat in a settings where sets are finite would need constant use of API to go backwards and forwards; I think a better solution is to have both available and pick one that makes sense.
My lean4 matroids project (https://github.com/apnelson1/Matroid) is still under construction (porting from the lean3 version) but makes essential use of both encard and ncard. Some of this is already visible.

I remain unconvinced that we need both. I suspect that perhaps the right way to go about this is to define encard and then fill in API concerning its composition with ENat.toNat so that we can avoid ℕ∞ when we want to and everything is finite.
At the very least, if we keep both, I think we should probably redefine ncard s := (encard s).toNat

I remain unconvinced that we need both. I suspect that perhaps the right way to go about this is to define encard and then fill in API concerning its composition with ENat.toNat so that we can avoid ℕ∞ when we want to and everything is finite.
At the very least, if we keep both, I think we should probably redefine ncard s := (encard s).toNat
Can you point more specifically to some places where you actually needed both?

Here ( https://github.com/apnelson1/lean-matroids/blob/master/src/m_in/erank.lean ) is a (lean3) file where both are used - it's a situation that runs parallel to the ncard/encard distinction. To explain, a set in a matroid has a rank, which is the size of one of its subsets that is a 'basis' (these are analogous to the familiar terms in linear algebra, but the setting is more general). In nearly of the literature in matroid theory, matroids and all sets in them are finite, and hence rank is nat-valued, and plenty of nat arithmetic happens with rank that wouldn't work in enat. However, matroids and their bases can be infinite, and so the nat version can take junk values. So the solution is to have an API for the commonly used nat-valued rank function matroid.r for matroids where all bases are finite (this is [finite_rk M]), and then a smaller API for the more general enat-valued rank function matroid.er for general matroids where ranks can be infinite.
Having only the enat version would be a real headache, and would make the ugly term (M.er X).to_nat appear everywhere in place of M.r X in most practical settings. I foresee the same problem with encard.to_nat being the idiomatic way to talk about the size of a set; sometimes you just want to talk about the cardinality of a set and its subsets/unions/intersections without hopping back and forth across an API. I feel the duplication is worth it.
I think your suggestion to redefine ncard in terms of encard is a good idea, and I'd be happy to do that. Thanks again for taking the time here.

I remain unconvinced that we need both. I suspect that perhaps the right way to go about this is to define encard and then fill in API concerning its composition with ENat.toNat so that we can avoid ℕ∞ when we want to and everything is finite.
At the very least, if we keep both, I think we should probably redefine ncard s := (encard s).toNat
Can you point more specifically to some places where you actually needed both?

Here ( https://github.com/apnelson1/lean-matroids/blob/master/src/m_in/erank.lean ) is a (lean3) file where both are used - it's a situation that runs parallel to the ncard/encard distinction. To explain, a set X in a matroid M has a 'rank', which is the size of one of its subsets that is a 'basis' (these are analogous to the familiar terms in linear algebra, but the setting is more general). In nearly of the literature in matroid theory, matroids and all sets in them are finite, and hence rank is nat-valued, and plenty of nat arithmetic happens with rank that wouldn't work in enat. However, matroids and their bases can be infinite, and so the nat version can take junk values. So the solution is to have an API for the commonly used nat-valued rank function matroid.r for matroids where all bases are finite (this is [finite_rk M]), and then a smaller API for the more general enat-valued rank function matroid.er for general matroids where ranks can be infinite.
Having only the enat version would be a real headache, and would make the ugly term (M.er X).to_nat appear everywhere in place of M.r X in most practical settings. I foresee the same problem with encard.to_nat being the idiomatic way to talk about the size of a set; sometimes you just want to talk about the cardinality of a set and its subsets/unions/intersections without hopping back and forth across a layer of API. I feel the duplication is worth it.
I think your suggestion to redefine ncard in terms of encard is a good idea, and I'd be happy to do that. Thanks again for taking the time here.

I remain unconvinced that we need both. I suspect that perhaps the right way to go about this is to define encard and then fill in API concerning its composition with ENat.toNat so that we can avoid ℕ∞ when we want to and everything is finite.
At the very least, if we keep both, I think we should probably redefine ncard s := (encard s).toNat
Can you point more specifically to some places where you actually needed both?

Maybe a relevant analogy is with Real.sqrt, as discussed in Kevin's very nice blogpost. You just want a function sqrt : ℝ → ℝ to work with directly so that statements are clean, expressions don't need hypotheses to typecheck, and the codomain is a type that is easy to work with. ncard does this does for the sizes of sets, even though it has the 'wrong' codomain mathematically. I think it would be a mistake to drop it.


Idea: Move Deprecated modules to a custom folder

Since 1.10, custom folders are supported to load extensions from. We could move the deprecated modules - the ones that are in the Modules.Deprecated solution folder - to an actual folder (alongside Modules) with the same name. What do you think?

What's the advantage?

The solution and file system folders would show the same structure.

Ok. :)
Could it perhaps also make it easier to disable harvesting of the deprecated modules by removing that folder from the configured list of extension folders?

Having the same structure is not a good enough reason IMO. We could break things.
We can't remove them completely as they are required by previous versions. Removing them, moving them to another folder, or not harvesting them would have the same effect.
I don't really want to change anything there right now, they don;t hurt anyone. And anyone can already remove any module that they don't want to deploy/load.

Even if we would move them to a different folder on the file system, that would be a breaking change in terms of project references.


Moving build machines

I began building my production application on a local laptop.  Now I have set up a staging server that I will use to build both staging and production on.  The production app is currently on release 1.3.1.  The next release will be 1.4.0.  However, the new machine does not have any of the prior releases that were built locally on my laptop.  Thus, I am assuming the build will not create some of the release files correctly (ie. app.up, RELEASES).
What is the easiest process I can employ to handle this situation?
Some possibilities I have thought of:

scp the entire rel directory from my local machine to the staging.build server
manually edit the output of this first build prior to deployment/upgrade (although I do not know what files I would need to edit)

Thanks!

@midas Copying your local rel folder is probably the easiest path, but you can get rid of any releases under releases prior to 1.3.1, as all that's needed for the appup is the last release and it's code files from lib.


Test for inline methods

Some methods will be inlined when compiled by the JIT backend. That's bad.
That'd be nice to find out if they are inlined, some way or another.

I actually implemented this in 346c044b1a9f7006ca88467bc89ae1fd72c8dc51, but forgot to close the issue.


flock unavailable while opening fragment on 1.2

Similar to #1669 but probably not the same root cause since it's happening on 1.2.
While importing:
2019/01/02 15:57:44 pilosa.go:195: starting field import for test_bsi_field: importing values to nodes: doing import: Server error 500 Internal Server Error body:’importing existence columns: creating view: opening fragment: opening storage: flock: resource temporarily unavailable
Disabling the existence field seems to stop the problem.
This is on a 5 node cluster running imports from the pdk.

OK, so it seems like go-pilosa 1.1 had a bug that didn't respect passing the option to explicitly disable existence tracking. Updating the PDK go-pilosa dependency (to 00165520cfce) fixed this issue.
Probably what we're back to now is that this issue only occurs when existence is enabled

believe this was fixed by #1863


zerubabel Communication plan

[x] Add availability.
[x] Add how many hours has per day.

@zerubabel4 Please make a PR to add your availability to our communication-plan.md first and then move the issue to "done" section:)


patchutils: fix and 0.3.3 -> 0.3.4

Motivation for this change

patchutils binaries using perl (e.g. splitdiff) were broken before this change
according to repology patchutils version is lagging behind the versions in other distros

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/) NOTE fixcvsdiff hangs, but that's that's broken in upstreamn in upstream
[x] Fits CONTRIBUTING.md.

Please re-open this pull request against the staging github branch, since it causes stdenv rebuilds on macOS.

Any updates here? #25154 was closed without (imo) proper resolution.

Nope, the choices are still:

Keep a patchutils_0_3_3 for fetchpatch
Rewrite fetchpatch to not use patchutils

The first bullet merged: #59422


Bonfire: Sum All Primes failing to pass sumPrimes(977)

Hi, I have problem with the bonfire : Sum All Primes . Here is my code :
function sumPrimes(num) {
  var arr = [];
  var sum = 0;
  for(var i=2; i<=num; i++){
    arr = [];
    for(var j=1; j<i+1; j++){
      if(i%j===0){
        arr.push(j);
      }
    }
    if(arr[1] === i ){
      sum = sum+i;
    }
  }
  return sum;
}

sumPrimes(977);

It works fine with sumPrimes(10), but I have this answer for 977 :  " Error : Potential Infinite loop at line 4 " . So I cant pass the test ... any idea ? Is this a bad thing to have a for loop inside another ?

@Puine Looks like you code is passing for me. What browser are you using?

Can reproduce on FF and on Chrome. In FF throws error on starting at sumPrimes(300) and in Chrome starting at sumPrimes(726). Looks like when script execution time exceeds some value loopProtect throws an error.

We can increase the timeout. At the moment it is at 100ms

+1 Same issue.  My code:
function sumPrimes(num) {
  var curr = 0;
  var total = 0;
  var nums = [];
  while (curr <= num) {
    for (var i=0;i<=curr;i++) {
      if (curr % i === 0) {
        nums.push(i);
      }
    }
    if (nums.length === 2) {
      total += curr;
    }
    nums = [];
    curr++;
  }
  return total;
}

@argvil19 @Puine You can add the following line // noprotect to your code to disable infinite loop protection. Be aware that if you're code does loop infinitely it will crash your browser and make it extremely difficult to close.
Happy Coding!

Thanks !

@Puine We have increased the timeout so you may not need it now. Happy Coding!

@BerkeleyTrue I just resolved the same issue by adding //noprotect to my code. You may want to increase the timeout again, or post the //noprotect flag in the challenge wall as a workaround. I experienced the same problem on an another challenge, and was banging my head against the wall trying to fix a valid solution :)

Same here. been stuck for the last 20 minutes trying to understand why it didn't work. I think you should really add the tip for the //noprotect and/or increase the timeout.
This is the code I used, that got stuck at the 977 test.

function sumPrimes(num) {
  var primes = [2],
      isPrime; // boolean

  for (var i=3; i <= num; i+=2) {      // skip all even
    isPrime = true;
    for (var n in primes) {            // check known primes

      if(i % primes[n] === 0) {        // we found another
        isPrime = false;
        break;                         // stop searching
      }
    }

    if(isPrime) primes.push(i);
  }
  num = primes.reduce(function(a, b) {return a + b; });

  // sum all the values of the primes array and return
  return num;
}

Managed to complete with the //noprotect flag and then I did some testing;

skipping all even values it took 0.016s to complete
incrementing i with ++ it goes up to about 0.05s

These values should be inside your safe limits, but still it failed at first without the flag. After completing the challenge and while doing the time testing i removed the //noprotect and it passes everything without any issue.
just for final note, the machine i'm using is a surface pro 3 i7, windows 10 on chrome 54.0.2840.99m

Why not use Math.sqrt() to make it simpler?
function sumPrimes(num) {
var test=0;
for(var x=2; x<=num;x++){
if(add())
test+=x;
}
//---simple true or false function for primes---
function add(){
for(var i = 2, s = Math.sqrt(x); i <= s; i++)
if(x % i ===0)
return false;
return x!==1;
}
return test;
}
sumPrimes(977);

@akberj
Please do not post your solution on here. This GitHub Issues are for reporting bugs on the website only.
Happy Coding!


Fixed pandas SettingWithCopy warning

This update gets rid of the multiple SettingWithCopy warnings generated by calculate_distribution in transform.py.
I think the issue was that setting df = df[df[is_scored] == "Y"] just prior to the code that generated the warnings created a "slice" of the dataframe, and pandas behavior is unpredictable when setting things in that case. My fix gets rid of the warning by explicitly making df a real data frame instead of a slice, with df.copy().
I also fixed another warning in this function, about .append() being deprecated on pandas series. I used pd.concat() as suggested by the warning instead.
Lastly, there was a really unreadable piece of code in this function that I'm assuming got split by a python code formatter or something:
    obj["distribution"][
        0
    ] -= 1  # since this was calculated with the artificial 0 value, we subtract it
    obj["distribution"][
        -1
    ] -= 1  # since this was calculated with the artificial upper_bound, we subtract it

I put things back on one line.
I've confirmed that the distribution JSON file output after my fixes is identical to the one from before my fixes.

@JessterB hold off on review/approval until I merge dev back into this branch so it meshes with all of Brad's changes!

@JessterB it should be ready for review now. dev has been merged in and there don't seem to be any issues or conflicts.


Filename string update

Updated filename string to resemble the metadata
filename [1/3]
When sending book using the SendToKindle Service filename still says "PART_1" which doesn't tell us the total parts
SendToKindle doesn't seem to read the title from the metadata.

OK. I made the changes.
Sorry about that. I'm new to contributing.

If you try kindlegen, I was doing some testing and it seems to error out on files that are really big
I had a successful 800MB but it failed on a 1.2GB and above. I think that's why KCC splits @ ~400MB


Comment on Introduction

The dominant trends in technology in recent decades have been artificial intelligence and blockchains

I think at the very least social media deserves to be in here as well; it has been just as influential over the relevant time period.
This is particularly interesting because you could construe social media as being "a not very good implementation of DD", so we actually get three things that can be construed as (so far) not very good implementations of all three of "the big 21st-century ideologies".
Though I'd be curious to hear if you @audreyt @glen or anyone else has a different frame on how to think about social media in this context!

Great point!  But do see The Lost Dao chapter that gets more into this.  After you read this, give us your perspective on what belongs where and I'm very open to editing.


realsense2_camera: 2.2.11-1 in 'melodic/distribution.yaml' [bloom]

Increasing version of package(s) in repository realsense2_camera to 2.2.11-1:

upstream repository: https://github.com/IntelRealSense/realsense-ros.git
release repository: https://github.com/IntelRealSense/realsense-ros-release.git
distro file: melodic/distribution.yaml
bloom version: 0.9.0
previous version for package: null

The sourcedeb appears to be failing to build for this here: http://build.ros.org/job/Msrc_uB__realsense2_camera__ubuntu_bionic__source/3/console


devnet: indexer fails to sync with 2.11.2

Clean sync from 0 with version 2.11.2 (current devnet) results in:
{"level":2,"time":1692358200617,"ns":"sqd:substrate-ingest","msg":"connected to postgres://db:26257/defaultdb"}
{"level":2,"time":1692358200618,"ns":"sqd:substrate-ingest","msg":"Loading migrations from: /squid/substrate/substrate-ingest/migrations"}
{"level":2,"time":1692358200619,"ns":"sqd:substrate-ingest","msg":"Found migration files: 001-initial.sql,002-ethereum-transaction.sql,003-add-evm-log.sql"}
{"level":2,"time":1692358200628,"ns":"sqd:substrate-ingest","msg":"Acquiring advisory lock..."}
{"level":2,"time":1692358200632,"ns":"sqd:substrate-ingest","msg":"... acquired advisory lock"}
{"level":2,"time":1692358200632,"ns":"sqd:substrate-ingest","msg":"Starting migrations"}
{"level":2,"time":1692358200651,"ns":"sqd:substrate-ingest","msg":"Migrations table with name 'migrations' exists, filtering not applied migrations."}
{"level":2,"time":1692358200655,"ns":"sqd:substrate-ingest","msg":"No migrations applied"}
{"level":2,"time":1692358200655,"ns":"sqd:substrate-ingest","msg":"Finished migrations"}
{"level":2,"time":1692358200655,"ns":"sqd:substrate-ingest","msg":"Releasing advisory lock..."}
{"level":2,"time":1692358200657,"ns":"sqd:substrate-ingest","msg":"... released advisory lock"}
{"level":2,"time":1692358200668,"ns":"sqd:substrate-ingest","msg":"continuing from block 5953460"}
{"level":2,"time":1692358200691,"ns":"sqd:substrate-ingest","msg":"prometheus server is listening on port 9090"}
{"level":2,"time":1692358200707,"ns":"sqd:substrate-ingest","msg":"chain height is 7179758"}
{"level":5,"time":1692358202943,"ns":"sqd:substrate-ingest","err":{"length":249,"name":"error","severity":"ERROR","code":"08P01","hint":"the maximum message size can be configured using the sql.conn.max_read_buffer_message_size cluster setting","file":"encoding.go","line":"286","routine":"NewProtocolViolationErrorf","stack":"error: message size 18 MiB bigger than maximum allowed message size 16 MiB\n    at Parser.parseErrorMessage (/squid/common/temp/node_modules/.pnpm/pg-protocol@1.6.0/node_modules/pg-protocol/dist/parser.js:287:98)\n    at Parser.handlePacket (/squid/common/temp/node_modules/.pnpm/pg-protocol@1.6.0/node_modules/pg-protocol/dist/parser.js:126:29)\n    at Parser.parse (/squid/common/temp/node_modules/.pnpm/pg-protocol@1.6.0/node_modules/pg-protocol/dist/parser.js:39:38)\n    at Socket.<anonymous> (/squid/common/temp/node_modules/.pnpm/pg-protocol@1.6.0/node_modules/pg-protocol/dist/index.js:11:42)\n    at Socket.emit (node:events:513:28)\n    at addChunk (node:internal/streams/readable:315:12)\n    at readableAddChunk (node:internal/streams/readable:289:9)\n    at Socket.Readable.push (node:internal/streams/readable:228:10)\n    at TCP.onStreamRead (node:internal/stream_base_commons:190:23)"}}

Using 2.11.2 on testnet works well though, this issue only appears on devnet.
Deploy happens via docker-compose, using the compose file from the repo but only mapping /cockroach/cockroach-data to /srv/indexer/. This used to work flawlessly (as it does on testnet currently).
version: "3.4"

services:
  db:
    image: cockroachdb/cockroach:v22.2.2
    restart: always
    ports:
      - "26257:26257"
      - "8080:8080"
    command: start-single-node --insecure
    volumes:
      - /srv/indexer/:/cockroach/cockroach-data

  ingest:
    depends_on:
      - db
    restart: on-failure
    image: subsquid/substrate-ingest:1
    volumes:
      - "./typesBundle.json:/configs/typesBundle.json"
    command:
      [
        "-e",
        "${WS_ENDPOINT}",
        "-c",
        "20",
        "--out",
        "postgres://root@db:26257/defaultdb",
        "--types-bundle",
        "/configs/typesBundle.json"
      ]

  gateway:
    depends_on:
      - db
    image: subsquid/substrate-gateway:2.5.0
    environment:
      DATABASE_MAX_CONNECTIONS: 5
      RUST_LOG: "actix_web=info,actix_server=info"
    command: [ "--database-url", "postgres://root@db:26257/defaultdb" ]
    ports:
      - "8888:8000"

  explorer:
    image: subsquid/substrate-explorer:firesquid
    environment:
      DB_TYPE: cockroach
      DB_HOST: db
      DB_PORT: "26257"
      DB_NAME: "defaultdb"
      DB_USER: "root"
    ports:
      - "4444:3000"

https://github.com/cockroachdb/cockroach/issues/63782#issuecomment-825122595

resolved by:
docker exec -it indexer_db_1 /bin/bash
./cockroach sql --insecure
SET CLUSTER SETTING sql.conn.max_read_buffer_message_size = '32MiB';

This issue is still present. It has been a while since a new indexer version was released, so we resolved it with the above cluster setting on the running indexers. On deploying a new indexer (like with docker-compose) we encounter the sql.conn.max_read_buffer_message_size error. This is set to 16 MiB by default. By setting this to 32 MiB the error was resolved but it would be good if dev could confirm this cockroachdb change is ok or not.
If ok, could this cluster setting be set by default for the helm chart and docker-compose file?

It would be good if dev could confirm this cockroachdb change is ok or not.

Nothing wrong with setting it to 32 MiB.

If ok, could this cluster setting be set by default for the helm chart and docker-compose file?

Sure, will put this on my todo list

@coesensbert can you verify that this now is solved

Just to clarify, I have updated the indexer docker compose and now accompany with setup_db.sh you can spin it with no issue.

Great, will test a full sync from 0 for the indexer for all nets. This can take a while. Thanks.

added to the grid backend compose stacks and tested https://github.com/threefoldtech/grid_deployment/issues/54
looks good, thx!
Doing a full indexer sync from 0 for all nets since this was the original issue: https://github.com/threefoldtech/tf_operations/issues/2570


updating copy in footer and broken link

Description of the change:
Reason for the change:
Link to original source:

Closes #

Hello @ksigler7,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


Use a Release build for windows

Currently the build is a Debug build as indicated by
INFO (sleef,Library/bin/sleef.dll): Needed DSO C:/Windows/System32/ucrtbased.dll found in $SYSROOT

This should now be solved via #13 . Thanks so much @isuruf !


Remove pc:encoding

Redundant w/ asset's type field.

Duplicate of #6?

Yup, thanks ... closing as dup.


Bluetooth?

Hello,
I LOVE THIS PROJECT!!!!!!
But I'm wondering if this can be done with Bluetooth instead of usb-C because I would like to power my pi from a power bank and still use the keyboard to control my pc. The reason why I do this is because I want to put my mini pc on a power bank as well (So it's portable) and I don't want that power bank's battery charge to be reduced quicker.
So can this be done with bluetooth?
Just wondering,
Thanks.

Exactly my kind of ideal setup, Pi400 + power bank. I'll try the listed link as they should work.
@Gadgetoid But out of curiosity, does that one works on similar basis as yours? As in, they'd be very basic HID and not a full OS, hence low power usage.


Icons page goes berserk while using mouse wheel/page down to scroll through available icons

Bug type
Docs (mudblazor.com)
Component name
No response
What happened?
When using the mouse wheel or page down button to scroll through all the available icons, at some point, the page goes berserk.
Expected behavior
A tranquil page.
Reproduction link
https://mudblazor.com/features/icons#icons
Reproduction steps

Go to the docs icon page.
Gently scroll through the page using the mouse wheel.
After some scrolling, berserk-mode.

Relevant log output
No response
Version (bug)
6.0.2
Version (working)
No response
What browsers are you seeing the problem on?
Firefox, Microsoft Edge
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

Maybe we should undo the virtualization @Garderoben ?
It's unusable otherwise. Multiple people on discord also complained

Maybe we should undo the virtualization @Garderoben ? It's unusable otherwise. Multiple people on discord also complained

There must be some way to fix this, is the blazor virtualization really unusable?

Maybe we should undo the virtualization @Garderoben ? It's unusable otherwise. Multiple people on discord also complained

There must be some way to fix this, is the blazor virtualization really unusable?

I am not sure. I also tried to do it before. But I had the same problems. Idk if we are doing something wrong

Maybe we should undo the virtualization @Garderoben ? It's unusable otherwise. Multiple people on discord also complained

There must be some way to fix this, is the blazor virtualization really unusable?

I am not sure. I also tried to do it before. But I had the same problems. Idk if we are doing something wrong

I will look at it again, maybe it can be "cheated" with setting the height of that page to really high? You also mentioned in discord we had our own virtualize component, i dident use that one. I will investigate when I get home.

I quote from https://github.com/dotnet/aspnetcore/issues/28056
The summary is that <Virtualize> isn't intended to work with CSS grid because there isn't a safe place to insert placeholders. If you're using <Virtualize>, you should look at using CSS flex or traditional div/table layouts for that particular section of the UI.
Fixing it now.


Approach to dependency isolation in modular app

New Feature Proposal
I'm curious what your thoughts are in piral around how dependencies are managed in the core of the app vs in individual pilet bundles. I've been hunting around this year for a solution to help a large modular front end app ship individual pieces independently, and piral overlaps on heaps of requirements I have.
Description
I've got lots of questions I'm keen to find out more details for, but initially I'm curious what the plan would be for checking the presence of dependencies. Do the individual modules/pilets operate with no assumptions about npm packages that may have been bundled by the core app? For example, I'm guessing something like react router is bundled in the core app, can a pilet make any assumptions about what dependencies might already be bundled and in scope?
Does the individual pilet get built in a context where it compiles against a specific version of the core app?
Dependency isolation is nice because it allows individual modules to ship at their own pace, but has the down side that no assumptions can be made, and each module needs to bundle its own dependencies, which will be wasteful.
Background
The general context is I'm hunting for a solution where a team that ships a particular module is free to continuously ship their piece, with minimal bottlenecks and constraints on any other piece, even avoiding a need to redeploy a central app at all.
But with this level of isolation, do you end up with n versions of standard dependencies for n pilets?
Super keen to find out some more about concepts like this, I really haven't come across another project that seems to target this specific problem in this way 👍

Hi @eddiesholl thanks for initiating this (really important) discussion.
What is possible right now with Piral?
Right now sharing dependencies can be done either by

having the dependency bundled in the shell ("Piral instance") and as a peer dependency (not bundled, only referenced) in pilets, or
using the loader at runtime referencing the same URLs (https://example.com/mydepv1.js) from multiple pilets; this could be done implicitly via bundle splitting at compile-time.

Way 1 has certainly some big drawbacks (e.g., updates to the Piral instance may break pilets / potentially without knowing initially if no governance is performed...), while way 2 is really sensitive how bundle splitting is performed.
What other possibilities exist?
react-arbiter (loader package that we use) also supports the notion of resolving common dependencies upfront (before evaluating a pilet). One can think of it as way 1 without specifying the dependency inside the core.
The problem with this approach is two-fold:

The dependency (e.g., the piral service delivering the pilet information to the client) must deliver an additional field "dependencies" with names of the dependencies as used in the respective bundle / pilet and the URLs for these dependencies.
The dependencies have to be known with the same URL, as such pilet 1 and pilet 2 (both referencing dependency A) must resolve the dependency A with the same URL. Otherwise, the dependency is still loaded twice.

How do we want to proceed?
We currently have the following plans:

We will soon start working on an additional library called something like "lib pilet"; which is a helper library that helps with governance of pilets, e.g., for checking conformance to a certain Piral instance. This way outdated dependencies (way 1) can be automatically retrieved. This library will also be able, e.g., to find what URLs are registered by pilets, what tiles, ... - all things that may be helpful also for showing information in the FE (e.g., what if a page is requested and cannot be found / it may only be a 404 because the user does not have the rights / some pilets are not loaded).
We will try to come up with a way in the Piral CLI to manage common dependencies. Potentially, this will be governed via the Piral service (we are currently working on an API specification for this service).

What are your thoughts? Any other good ideas or suggestions?

Thanks for the detailed response. I'm starting to see some basic conceptual tradeoffs, that probably need to be matched to the particular needs of each front end app. In short:

single compilation phase with full insight into all dependencies, vs
decoupled builds of individual modules, that are then composed

Another spectrum of choice is:

smart dependency management for things like dedupeing, incremental downloads as deps are needed, vs
just bundle each pilet with its dependencies

These basic tradeoffs are basically strict vs decoupled. Stricter models give you more efficient bundles but require more tooling, and probably more coupling of dev teams. More freedom unblocks dev teams, but probably means more duplicated dependencies.
Trying to decouple teams/pilets but keep smart dependencies basically means you are implementing npm in the browser. For example:

The dependency (e.g., the piral service delivering the pilet information to the client) must deliver an additional field "dependencies"

They also relate to optimising for developer vs end user experience.
Thanks again for your feedback. I'm sure I'll have some more questions once we get a Piral PoC up and running 👍

Yep, the npm in the browser comment is great; this is exactly what we want to avoid. For this reason, the dependencies fields is shallow only, i.e., the used dependency has to be self-sustained (there is no other metadata fetched for this dependency, only the dependency itself). In principle one could, of course, build a transitive system, however, potential download times could explode leading to the worst possible UX.
The mentioned trade-offs are true. We usually aim for the decoupled mode, however, that brings us to the requirement of really good tooling. For the portal we've build we usually followed the path of guidelines for each team implementing such pilets; guidelines that involved a basic process for dependencies such as "bundle it with your pilet". A central governance would "see" (via the repos / some additional tooling) the common dependencies and decide how to handle it.
In the next days / weeks we will extend our documentation a bit (and refine many of the rough edges right now) to get a set of recommendations / guidelines / discussion starters out there.
Any contribution much welcome and appreciated :beers:!

Just discovered the internals of react-arbiter, very interesting 😄

I've been looking at building a POC. It looks like all of the feed examples are offline. That would be one useful thing to get up and running again, to get a feel for what a feed data source and implementation would look like.
I think we're looking at making a few different tradeoffs that don't quite match with the exact choices made in Piral so far, but there's still a huge amount of overlap with the research and initial work we've done 👍

Yep we've taken the feed mostly offline for the moment, but we wanted to activate it soon enough. One of the reasons is that right now the feed would only contain 2 sample pilets which could be rather useless and having "your own feed" is what is much better...
We have an internal service that contains many things such as feature flags, SSO and RBAC integrations and much more in the working, but I think we could also open-source a quite simple pilet service that can do publishing and serving of pilets (would be a simple Node.js / express app). If you are (still?) interested in that we can make it available by tomorrow.
Just let me know!
PS: I've created a Gitter chat; we can also easily discuss these things directly if desired! https://gitter.im/piral-io/community

The main thing is that I haven't found any specific examples of what the exact feed schema needs to be, although you can kind of reverse engineer it from code inspection. I think that would make it much easier for people to try it out and get something running 👍
The full example implementation is nice but doesn't run because of the missing feed.

For the "simple feed" (using piral-core, where you wire everything together as you wish) all you need is some API (that you define), however, if you go for the full piral you'll end up with a GraphQL service. Publishing requires a standard HTTP POSTendpoint.
See https://docs.piral.io/specifications/piral-api for the spec of the Piral API.

We've added a sample feed service:
https://github.com/smapiot/sample-pilet-service

With 0.11 this is now closed. Our primary approach will be using import maps (see #124 for details).
This allows to effectively de-duplicate code. It works for external modules as well as own code. Anything that may be shared from one pilet to other pilets should be done via import maps. The application shell does not play any role here.