feat: add support for PHP 8.4

References:

[ ] php/php-src/pull/16129
[ ] vimeo/psalm/pull/10928

I guess you don't feel comfortable to release a version without Psalm CI on your side, so you have a proof.
But would be helpful for your consumers already to be able to check and test things going forward :see_no_evil:

Hi @TimWolla sorry to poke you here, but as you fixed the ReflectionFunction::inNamespace() issue in https://github.com/php/php-src/pull/16129 I thought I could ask for some help. Hope you have time. 😊
It seems that even with the latest PHP 8.4-RC, we're still having an issue with \CuyZ\Valinor\Tests\Integration\Mapping\Namespace\NamespacedInterfaceInferringTest::test_interface_inferred_from_same_namespace_as_file_runs_correctly ; the issue lies in \CuyZ\Valinor\Type\Parser\Factory\Specifications\AliasSpecification::resolveNamespaced(): the closure is namespaced but the method still returns false.
Any idea what is wrong here? Thanks!

@romm Closures are never considered namespaced with PHP 8.4+. Generally speaking you can't really rely on a specific closure naming, because Closures are anonymous and thus you would be relying on an implementation detail. From how the PHP code looked like, even the namespacing of Closures prior to 8.4 was an accident (they are just named {closure} and the namespace was implicitly added like for any other function). There weren't any tests either.

@TimWolla thanks for your answer.
The usecase here is to get the namespace of a closure so that short class names in docblock can be transformed to FQCN. For instance:
namespace SimpleNamespace;

use CuyZ\Valinor\MapperBuilder;

interface SomeInterface {}

final class ImplementationOne implements SomeInterface {}

final class ImplementationTwo implements SomeInterface {}

return (new MapperBuilder())
    ->infer(
        SomeInterface::class,
        /** @return class-string<ImplementationOne|ImplementationTwo> */
        static fn (string $type): string => match ($type) {
            'one' => ImplementationOne::class,
            'two' => ImplementationTwo::class,
            default => throw new \RuntimeException(),
        },
    )
    ->mapper()
    ->map(
        SomeInterface::class,
        ['type' => 'one'],
    );

The annotation @return class-string<ImplementationOne|ImplementationTwo> should understand that ImplementationOne should be fetched from namespace SimpleNamespace.
It seems strange to me that closures cannot be namespaced, is there any chance the old behavior could be reverted and tested? If not, would you have a suggestion on how to get this information? Using PhpToken::tokenize on the source file content and fetching the correct namespace?

It seems strange to me that closures cannot be namespaced

Namespaces are not a first class citizen in PHP. It's really just compiler assisted automated prefixing of any names. The getNamespaceName() methods in Reflection really do just that: Extract the part before the last backslash.

is there any chance the old behavior could be reverted and tested?

Unfortunately not for PHP 8.4, it's much too late in the release cycle.

If not, would you have a suggestion on how to get this information?

The effect on docblock parsing is an unfortunate side-effect of the improved closure naming that I did not anticipate when initially implementing it.

Using PhpToken::tokenize on the source file content and fetching the correct namespace?

For any closure that is not a top-level closure you can strip the {closure: prefix and then find the last backslash. Anything in-between is the namespace. For top-level closures (i.e. closures without any surrounding function or method) you would need to tokenize the file, I'm afraid.

Thank you @TimWolla for the details. Tokenization was not that hard, and all this stuff gets cached anyway (if the cache is used), so that's not a big deal.

@romm FWIW: The tokenization solution is not quite correct in all cases, because the following is legal PHP code:
<?php
namespace Foo {
 use Bar\Bar;
 $closure = function () { var_dump(new Bar()); };
 class Foo { }
 var_dump($closure());
}

namespace Bar {
 use Foo\Foo;
 $closure = function () { var_dump(new Foo()); };
 class Bar { }
 var_dump($closure());
}

namespace {
 $closure = function () { };
}


403 forbidden

Hello! Sorry if this is not related to the repo but I hope it's ok that I ask this here.
In this example GitHub action usage.. do we need to set the token for ${{secrets.GITHUB_TOKEN}} somewhere?
This happens whenever I try to do a release...
Run npx changelogithub
npm WARN exec The following package was not found and will be installed: changelogithub
changelogithubv0.12.1
v0.2.11 -> v0.2.1[2](https://github.com/walmartwarlord/foodapp/runs/7167987099?check_suite_focus=true#step:4:7) (1 commits)
--------------
--------------
Creating release notes...
FetchError: 403 Forbidden (https://api.github.com/repos/walmartwarlord/foodapp/releases)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async sendRelease (file:///home/runner/.npm/_npx/b22f3b69[8](https://github.com/walmartwarlord/foodapp/runs/7169182091?check_suite_focus=true#step:4:9)9da43b0/node_modules/changelogithub/dist/chunks/generate.mjs:28:15)
    at async CAC.<anonymous> (file:///home/runner/.npm/_npx/b22f3b69[9](https://github.com/walmartwarlord/foodapp/runs/7167987099?check_suite_focus=true#step:4:10)db43a0/node_modules/changelogithub/dist/cli.mjs:39:5)
Error: Process completed with exit code 1.

If you are using GitHub Actions and it's triggered by the correct event, the GITHUB_TOKEN will be generated automatically. If not you might go to /settings/actions to check your permission setting.

Thanks @antfu ! Is there something wrong with my permissions?

Add permissions to release job is a better solution:
name: Release

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    # ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - uses: actions/setup-node@v3
        with:
          node-version: 16.x

      - run: npx changelogithub
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}


Import metaworld Error

when I try to use metaworld,I get a error.it is:
>>> import metaworld
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages/metaworld/__init__.py", line 20
    env_name: EnvName
            ^
SyntaxError: invalid syntax

could you help me?

@csufangyu I think you've installed the metaworld package incorrectly.
You should go ahead and do the installation procedure inside the readme.
Cheers,
@avnishn

hi，I do the installation according to the readme.and this is my procedure:
`(metaworld) fangyu@Robot-DGX-Station:~/robot_learning$ pip install git+https://github.com/rlworkgroup/metaworld.git@master#egg=metaworld
DEPRECATION: Python 3.5 reached the end of its life on September 13th, 2020. Please upgrade your Python as Python 3.5 is no longer maintained. pip 21.0 will drop support for Python 3.5 in January 2021. pip 21.0 will remove support for this functionality.
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting metaworld
Cloning https://github.com/rlworkgroup/metaworld.git (to revision master) to /tmp/pip-install-vr6q4a4n/metaworld_148b3c6cef4e4f27adb155adeca4c0c6
Running command git clone -q https://github.com/rlworkgroup/metaworld.git /tmp/pip-install-vr6q4a4n/metaworld_148b3c6cef4e4f27adb155adeca4c0c6
Requirement already satisfied: gym>=0.15.4 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from metaworld) (0.17.3)
Requirement already satisfied: mujoco-py<2.1,>=2.0 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from metaworld) (<IP_ADDRESS>)
Requirement already satisfied: numpy>=1.18 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from metaworld) (1.18.5)
Requirement already satisfied: pyglet<=1.5.0,>=1.4.0 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from gym>=0.15.4->metaworld) (1.5.0)
Requirement already satisfied: scipy in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from gym>=0.15.4->metaworld) (1.4.1)
Requirement already satisfied: cloudpickle<1.7.0,>=1.2.0 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from gym>=0.15.4->metaworld) (1.6.0)
Requirement already satisfied: glfw>=1.4.0 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from mujoco-py<2.1,>=2.0->metaworld) (2.1.0)
Requirement already satisfied: Cython>=0.27.2 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from mujoco-py<2.1,>=2.0->metaworld) (0.29.22)
Requirement already satisfied: imageio>=2.1.2 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from mujoco-py<2.1,>=2.0->metaworld) (2.9.0)
Requirement already satisfied: cffi>=1.10 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from mujoco-py<2.1,>=2.0->metaworld) (1.14.5)
Requirement already satisfied: lockfile>=0.12.2 in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from mujoco-py<2.1,>=2.0->metaworld) (0.12.2)
Requirement already satisfied: pycparser in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from cffi>=1.10->mujoco-py<2.1,>=2.0->metaworld) (2.20)
Requirement already satisfied: pillow in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from imageio>=2.1.2->mujoco-py<2.1,>=2.0->metaworld) (7.2.0)
Requirement already satisfied: future in /home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages (from pyglet<=1.5.0,>=1.4.0->gym>=0.15.4->metaworld) (0.18.2)
Building wheels for collected packages: metaworld
Building wheel for metaworld (setup.py) ... done
Created wheel for metaworld: filename=metaworld-0.0.0-py3-none-any.whl size=84316144 sha256=54f96751c4d8997f9ddb3b7ec4f27ef83d7503ec112bb51811c0eaf9d832a1e1
Stored in directory: /tmp/pip-ephem-wheel-cache-nebvuny4/wheels/04/48/e2/97bba5502231ba872082f8c74a9586d53a6bfa87fc4ef6e59e
Successfully built metaworld
Installing collected packages: metaworld
Successfully installed metaworld-0.0.0
(metaworld) fangyu@Robot-DGX-Station:~/robot_learning$ python
Python 3.5.6 |Anaconda, Inc.| (default, Aug 26 2018, 21:41:56)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

import metaworld
Traceback (most recent call last):
File "", line 1, in
File "/home/fangyu/anaconda3/envs/metaworld/lib/python3.5/site-packages/metaworld/init.py", line 20
env_name: EnvName
^
SyntaxError: invalid syntax
exit()
`

ok，I have change the verson of python,and it is ok!

Oh I see the problem here. We support python 3.6 and greater.


How can I match the end of file?

I have a parser that is supposed to look at the complete text of a file:
    public static Parser<JobFile> ParseJobFile
        = from rid in (
              ParseJob.ParseAs<Action<JobFile>, AtlasJob>(r => (JobFile f) => f.Jobs = f.Jobs.Append(r))
              .Or(ParseSubmissionMachine.ParseAs<Action<JobFile>, SubmissionMachine>(r => (JobFile f) => f.machines = f.machines.Append(r)))
              .Or(CommentLine.ParseAs<Action<JobFile>, string> (line => (JobFile f) => { }))
              ).Token().Many()
          select AsJobFile(rid);

If my text file contains a syntax error, it does not fail (an empty file is also a legal file). If my file contains good lines and some bad ones, it will parse fine and record results till the first bad line.
I tried replacing Many by XMany, and that works as long as the new line starts with something sensible and the mistake comes later on. So, if the first token after the last complete line parse is invalid, it will again give up.
So, I'd like to force it to parse every single character in the file and report any errors if it fails. I figured if I added a "from eof in Parse.EOF" or similar, I'd be set. But I'm not sure how to accomplish that.

Try: YourParser.End() - it's something like "at end of file" or "then end of file" and covers exactly this case. Thanks for the note!


Include original src packages in export-package output

Currently exported/compiled packages include the jobs + compiled packages, but not the original src packages.
This means you can get deployment errors:
Can't use release 'bosh/261.4'. It references packages without source code and are not compiled against stemcell 'bosh-vsphere-esxi-ubuntu-trusty-go_agent/3312.17':
 - 'director/a6bbfcee2c7cf65840ec525b6e3181da6cf59598'
 - 'health_monitor/3f862a244cfd5e81067300543a537757cb590b7e'
 - 'registry/7751f332d697c84b5137bdbc7a6cea78fffde75d'

The workaround is to upgrade/downgrade the stemcell - but this might not be sufficient for all situations. It's also not possible to re-upload a compiled nor src release for a new stemcell https://github.com/cloudfoundry/bosh/issues/1620
An uploaded compiled release could support any stemcell by having included the original src packages.

I keep arguing about this since forever. @cppforlife, can we have this now? Would solve so many problems, even compiled releases for cpis in create-env would only be half of a problem then...

@drnic @voelzmo we are purposefully avoiding including source because:

producers of compiled releases want to obfuscate source of the release
additional size consideration -- sometimes it's almost double the size if source is included

we also have plans to strip packages from compiled releases that are only necessary for compilation.

I think I've covered my discovered issue - new stemcells but with old releases - in the other ticket. If the solution isn't via flexible releases; then we'll need a way to re-upload releases to inject new compiled packages (as per other ticket).


Epic: Language Server Protocol Support

Noir Language Server Protocol
High-level overview of goals and components
Goals

Work natively and in the browser
The LSP should be developed in a way that allows us to execute it as a child process when called from a local editor, but we should also be able to instantiate it in the browser to support a Noir editing experience without any server communication. This will likely require a “core” component that is free from the native code that can be consumed by native and wasm-targeting code.
Use the same toolchain between terminal & extension
The toolchain that is used in the terminal should be the same as the one available to the LSP clients. We want to avoid situations where a user has Nargo v0.5.2 installed, but the latest extension is providing them with v0.6.0. To solve this, we can add a command to Nargo, such as nargo lsp, which starts a long-running LSP server. The extension will find nargo in the path and run this command for the user. Providing the LSP command in our nargo tooling also provides a nicer experience for editing experiences where the user must start the LSP process themselves.
Asynchronous
LSP servers process client messages asynchronously. A client may send messages out-of-order or may try to cancel a request that is in progress. Ensuring the LSP server is asynchronous ensures we can handle all the message types.
No file writing (or non-overlapping outputs)
The LSP should not write files if at all possible. Since it is a long-running process, it can store files in memory. If it absolutely needs to write files, it should write to a location isolated for just the LSP to avoid file locks—like we’ve all seen with rust-analyzer.

Components

Clients
LSP “clients” are the frontends, such as a VSCode extension, that request information from the LSP. They send messages that conform to the language server protocol and expect responses in the same format. The VSCode team provides a helper library that provides most of this functionality for us, so the first “client” will be implemented inside https://github.com/noir-lang/vscode-noir.
Server
LSP “servers” are the backends that respond to the various messages that the client sends. This usually requires processing files and responding with the message in the format the language server protocol specifies. These servers should be long-lived processes that maintain a cache of data in memory. Upon startup, the server provides the client with a set of features it supports (error messages, inlay hints, goto definition, etc), known as capabilities, so the client knows which types of messages it is allowed to send.

Research

Tower
Framework for building “clients” and “servers”
Request->Response based
Bad for stream-based processing

Tower-LSP
Builds on top of Tower
Lots of real-world use
Big problem with tower-lsp not working with cancelRequest: https://github.com/ebkalderon/tower-lsp/issues/284
Full demo of tower-lsp in browser: https://github.com/silvanshade/tower-lsp-web-demo

async-lsp
Builds on top of Tower
Less mature (“proof-of-concept”)
Written by nil author (nix LSP) so has some active real-world use
Heavily inspired by tower-lsp but solves problems with it, such as https://github.com/ebkalderon/tower-lsp/issues/284
No demo of it working in the browser, but hopefully similar to tower-lsp

lsp-server
low-level, written for & used by rust-analyzer

lsp-types
Rust types that map to LSP protocol messages

lsp-document or lsp-positions
Deal with utf-16 vs utf-8 differences between protocol and Rust
lsp-positions is written by github

noir-lsp
Proof-of-concept LSP for noir written by student
Contains “client” and “server” (duplicated content with our vscode extension)

- [x] Client - https://github.com/noir-lang/vscode-noir/issues/2
- [x] Server - https://github.com/noir-lang/noir/pull/1560
- [ ] https://github.com/noir-lang/noir/issues/1572
- [ ] https://github.com/noir-lang/noir/issues/1574
- [ ] https://github.com/noir-lang/noir/issues/1575
- [ ] https://github.com/noir-lang/noir/issues/1576
- [ ] https://github.com/noir-lang/noir/issues/1577
- [ ] https://github.com/noir-lang/noir/issues/1579
- [ ] https://github.com/noir-lang/noir/issues/1581
- [ ] https://github.com/noir-lang/noir/issues/1582
- [ ] https://github.com/noir-lang/noir/issues/1584
- [ ] https://github.com/noir-lang/noir/issues/1585
- [ ] https://github.com/noir-lang/noir/issues/1834
- [ ] https://github.com/noir-lang/noir/issues/1833
- [ ] https://github.com/noir-lang/noir/issues/1683
- [ ] https://github.com/noir-lang/noir/issues/1838

To devs reading: your contributions are most welcome!
Feel free to drop a comment on any of the tasks listed if you'd like to one on 🧑💻


Handle HTML answer from non-SOAP server

I just hit the case of the attached test: a client with local WSDL and URL to an Apache server.
Because of the local WSDL, the typo in the URL isn't detected when fetching the wsdl from the remote server. And, on the first POST, it isn't a 400 error but valid HTML (saying something like "it works").
And then, the wdsl instance of the client returns the parsed html as json (instead of an XML body).

Hey @mdhooge - thanks a lot for your contribution & sorry for the extraordinary long delay :disappointed:


[Telink] Enable -Wundef by default on Zephyr platform

Part PR of https://github.com/project-chip/connectedhomeip/pull/29582
Fix issue https://github.com/project-chip/connectedhomeip/issues/29593

@s07641069 And thank you for working on this; this is wonderful to see.  Sorry about all the nitpicks above; it's just that the parts I do understand had some changes that were not quite right, and I am trying to make sure I understand the parts I don't understand yet.

Gave you access to my fork: https://github.com/Damian-Nordic
Please change NRF related configs.

Can I prepare a patch to clear nRF config, which you could add to your PR? I don't quite like defining CONFIG_XXX macros as 0 or the need to add CHIP_DEVICE_CONFIG_ENALE_SED in the project config but I can help with resolving the original issues.

@s07641069 OK, I pushed one commit. Let's see if I haven't broken anything :).


struct Abcd: Fix outdated comment and use Ordering::Relaxed instead of SeqCst since C uses nothing

At some point I'd like to remove this atomic if possible, but this is good for now.

Yeah, if possible, that'd be good.  I'm not sure how we would though since it's in an Arc, and these atomics aren't accessed much so it seems pretty cheap.


 Christian - what's the plan for dowski.com/excuses?

Bitbucket: https://bitbucket.org/yougov/pmxbot/issue/15
Originally reported by: Jason R. Coombs
Originally created at: 2011-11-08T19:07:41.106

Removed excuse command. The web service doesn't seem to be available. Fixes #15.
→ <>

Original comment by: Jason R. Coombs

Probably worth internalizing the list, if Dowski can provide easily.

Original comment by: Anonymous


Why does this happen?

node v12.6.0
npm 6.9.0

Super helpful subject title and description... could you please detail what your issue is?


Multiple crashes in Google console for Pixel phones (API 28)

In the live app, we see multiple crashes in Google console, only for Pixel phones with API 28.
Affected phones:
Pixel 2 XL (taimen)
Pixel 2 (walleye)
Pixel XL (marlin)
Pixel (sailfish)

This problem is not reproducible in the emulators. In Google console it looks like this:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.appidentifier.app <<<

backtrace:

  #00  pc<PHONE_NUMBER>01cd66  /system/lib/libc.so (abort+58)
  #01  pc<PHONE_NUMBER>01cfdf  /system/lib/libc.so (__assert2+22)
  #02  pc<PHONE_NUMBER>4afd11  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #03  pc<PHONE_NUMBER>4afdd5  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #04  pc<PHONE_NUMBER>4ae8f9  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #05  pc<PHONE_NUMBER>4ae469  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #06  pc<PHONE_NUMBER>4aded3  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #07  pc<PHONE_NUMBER>07ede7  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #08  pc<PHONE_NUMBER>0515f1  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #09  pc<PHONE_NUMBER>051567  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/lib/arm/libflutter.so
  #10  pc<PHONE_NUMBER>009fa9  /data/app/com.appidentifier.app-IKKMq40kvYJW3w4FRP630A==/oat/arm/base.odex (io.flutter.view.VsyncWaiter.nativeOnVsync+136)
  #11  pc<PHONE_NUMBER>0015eb  /dev/ashmem/dalvik-jit-code-cache (deleted)

Is there anything we can do to debug this issue or maybe this is known problem that was fixed in the master branch?
flutter -v doctor
[✓] Flutter (Channel beta, v0.5.1, on Linux, locale en_US.UTF-8)
    • Flutter version 0.5.1 at /home/flutter/flutter_v0.5.1-beta/flutter
    • Framework revision c7ea3ca377 (3 months ago), 2018-05-29 21:07:33 +0200
    • Engine revision 1ed25ca7b7
    • Dart version 2.0.0-dev.58.0.flutter-f981f09760

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    • Android SDK at /home/android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • ANDROID_HOME = /home/android/sdk
    • Java binary at: /home/android/src/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 3.1)
    • Android Studio at /home/android/src/android-studio
    • Flutter plugin version 24.2.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

• No issues found!

There was one recent bug related to the vsync waiter that has been fixed on the master branch:
https://github.com/flutter/flutter/issues/19159
The assert/abort in the stack trace means that an assertion failed in the engine.  If you can get the Android logs immediately preceding the crash, then there should be a message indicating which assert caused this.

Thanks, all the crashes in console indeed related to vsync. I'll try to build with master branch and see if it helps.

I can confirm all vsync crashes are gone after switching to master.
[✓] Flutter (Channel master, v0.5.9-pre.41, on Linux, locale en_US.UTF-8)
    • Flutter version 0.5.9-pre.41 at /home/flutter/flutter_v0.5.1-master/flutter
    • Framework revision faffd3aef3 (6 days ago), 2018-08-15 01:01:30 -0700
    • Engine revision e54bc4ea18
    • Dart version 2.0.0-dev.69.5.flutter-eab492385c


Rely on the engine's reply to the _runInView service protocol method to decide if hot-restart succeeded.

Before the refactor, the engine did not return a reliable result to the _flutter.runInView engine service protocol extension. To work around this, isolate events were subscribed to so that the detection of a new runnable isolate could indicate that the hot-restart had correctly propagated. The issue with this approach was subscribing to the isolate events from the newly launched isolate and the call to launch the new isolate itself was racy. If the engine managed to launch the new isolate before the tool had a chance to subscribe to the new isolates events, it would hang forever since the VM would never send an event (since no one was listening to any events).
The Flutter engine now reliably is able to tell the service protocol (synchronously) that the new isolate has been launched. This allows us to check the result of the service protocol method. If the method succeeded, the engine guarantees that the new isolate has been launched.

@tvolkert & @jason-simmons are skeptics of my reasoning so I want to convince them that this is better than the current world where there is a real race condition.

A quick fix for this exact same issue is posted by @mravn-google at https://github.com/flutter/flutter/pull/16696.

I think current code is fine except there is confusion about futures in current implementation. I don't think there is intrinsic race condition in the way how code subscribes for the vm events and then expects to get isolate runnable event from vm.

@aam Not sure I follow. If I insert
await new Future<void>(const Duration(seconds: 2))

just before this line, I seem to be able to reproduce the hot restart hang every time.

see https://github.com/flutter/flutter/pull/16698.
I think in absence of async getter, await _sendRequest in _streamListen is not working as expected when that getter is used.


[Bug]-[2000]:The scrollbar in table widget is hard to use due to height and width

Is there an existing issue for this?

[X] I have searched the existing issues

Description
The scrollbar in our  table widget is hard to use. A user ( from datar ) was looking for a way to resize it. But that is not possible today. Also, the scrollbar shows at all times.
Ideally it should be shown on hover of table widget only - tracked here https://github.com/appsmithorg/appsmith/issues/3744
Steps To Reproduce

Drop table widget
Notice the scrollbar UX.

Public Sample App
No response
Version
1.7.1

Stats

Stat
Values

Reach
2000

Effort (months)
0.5

related to #3744

Discussed internally, if we are changing in one place we need to change everywhere. Removing from stability epic.


Symbiotic does not check the size of memory returned by malloc

#include <stdlib.h>
int main()
{
    void *mem = malloc(sizeof(mem));
    void **ok = mem;

    mem = malloc(sizeof(mem));
    char *warn = mem;

    mem = malloc(sizeof(char));
    void **err = mem;

    *err = NULL;

    free (ok);
    free (warn);
    free (err);
    return 0;
}

The code above contains an error on the line *err = NULL (the err has been malloced to the sizeof(char), and is being assigned a pointer). Symbiotic however does not report an error.
This may be related to this warning issued by symbiotic:

KLEE: WARNING ONCE: Alignment of memory from call "malloc" is not modelled. Using alignment of 8.

symbiotic --version
version: 6.1.0-dev

Yes, I am able to reproduce this one.


compile error with a demo

My codes:
#include <etcd/Response.hpp>
#include <iostream>
#include <etcd/Client.hpp>
using namespace std;

int main() {
    etcd::Client etcd("http://<IP_ADDRESS>:4001");
    etcd::Response response = etcd.get("abc").get();
    cout << response.value().as_string()<<endl;
}

And I compiled it through a CMakeLists.txt:
cmake_minimum_required(VERSION 3.16.3)
project(etcdclient)
include_directories("/usr/local/include/etcd")
include_directories("/usr/local/include/etcd/proto")
include_directories("/usr/local/include/etcd/v3")
include_directories("/home/myuser/etcd-cpp-apiv3")
add_executable(etcdclient main.cpp)
target_link_libraries(etcdclient grpc grpc++ cpprest ssl crypto boost_system boost_thread pthread)

Compile failed and I don't know what was missing, please give me some suggestions, thx.

Could you post the detail error message?

Sorry I found myself made a mistake when changed your CMakeLists.txt, now compilation worked well. Thank you for this nice project.


refactor the return and creat one liner

Hi,
First of all, great project. I wanted to help out a little and figure I refactor of code on the client. Let me know if there is anything I need to do or change. so far the test 406 passed, 4 skipped, 1 xfailed in 15.21s

No problem, I just want to get started on contribution to open source. :)

added the missing comment

sure, I added the code back and did some refactor of the returns. let me know if this works for you

sorry had to revert the single quotes because of black, which I use to clean up code but didn't mean to change thing dramatically

Codecov Report

Merging #1096 (9bab4f0) into master (ae6f57d) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #1096      +/-   ##
==========================================
- Coverage   95.86%   95.86%   -0.01%
==========================================
  Files          62       62
  Lines        4043     4039       -4
==========================================
- Hits         3876     3872       -4
  Misses        167      167

Impacted Files
Coverage Δ

httpie/client.py
98.56% <100.00%> (-0.05%)
:arrow_down:

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 ae6f57d...9bab4f0. Read the comment docs.

@nixbytes :champagne: :)

let me know if anything else I can do to help.


blotModernArt

Write a short description about your art piece, such as what your artwork represents and your experience drawing it!
when I think of blot i think of a modern way of creating art.
this inspired me to create stereotypical "modern art" with to me is sometimes just a bunch of random lines across the canvas. it was quite cool watching blot generate infinite pieces of seemingly random art just through a few lines of code.

[x] I have read the steps to getting a blot
[x] I am submitting art that...

[x] is algorithmically generated (will meaningfully change each time the program is run)
[x] is your own work that is not copied from somewhere else
[x] is drawable through the editor(does not use outside tools)
[x] doesn't call Math.random() (See the documentation on randomness)
[x] is drawable on Blot itself (doesn't have lines overlap more than 5 times)

[x] Doesn't overlap lines more than 5 times
[x] Fits in the working area of 125x125mm
[x] Doesn't rely on colour to look good

If you used based your art on something else, used a tutorial, or remixed it from something else, please link it here:
Lastly, link a picture of your art piece here:

Hey! This is a pretty cool concept, but falls short of our requirements! I would love to see you do more with this piece! If you need some inspiration, you can check out turtletoy or the blot gallery!


e.union is not a function

Good afternoon. The following error is being received from fqm-execution:
e.union is not a function
The measure bundle is available here.
The patient bundle is here.
This is being run against RC2  release.
I'm assuming this is bubbling up from cql-execution, but I thought I would start here. Bug or is this anticipated behavior?

Hi Stan,
This is likely not a bug with fqm-execution, and is either a problem with the ELM (which we've seen before in the ecqm-content-qicore repos), or an issue with cql-execution, or a combination of those two
After a very brief test, it seems like something with the SDE expressions in that measure is causing this. I will investigate more and see if I can identify a cause.

Thank you @mgramigna. This was based on an issue a user raised. If it ends up being an issue with cql-execution, I can post something there. But that update would have to be consumed by fqm-execution in order to bring it into MADiE, so I thought I would start here.

Yeah, makes total sense. I'll give it a good look tomorrow and we can identify next steps. Thanks!

@p9g That shouldn't affect calculation for the fqm-execution since it doesn't rely on resource IDs

@srankins sorry for the late response. I did some digging, and have confirmed my above suspicion.
TL;DR: The translator + cql-execution aren't playing nicely for the SDE expressions when no SDE extension are present on the patient resource
This issue is raised when executing SDE expressions. Specifically, I think there's some weirdness going on with lists, Codings, and how they're handled in both the translator and the execution engine. See the following differences between SDE Race/Ethnicity expressions in FHIR-based CQL vs. QICore-based CQL
From SDE Library using FHIR 4.0.1:
define "SDE Ethnicity":
  (flatten (
    Patient.extension Extension
      where Extension.url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity'
        return Extension.extension
  )) E
    where E.url = 'ombCategory'
      or E.url = 'detailed'
    return E.value as Coding

define "SDE Race":
  (flatten (
    Patient.extension Extension
      where Extension.url = 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-race'
        return Extension.extension
  )) E
    where E.url = 'ombCategory'
      or E.url = 'detailed'
    return E.value as Coding

From SDE Library using QICore 4.1.1:
define "SDE Ethnicity":
  Patient.ethnicity E
    return Concept {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }

define "SDE Race":
  Patient.race R
    return Concept {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }

The FHIR version appears to be returning a list of Codings, whereas the QICore version appears to be returning a list of Concepts. Also, the List casting with { E.ombCateogry } in Ethnicity but not in Race in the QICore version is interesting to me.
I think we need to loop in @brynrhodes in order to fully understand what the translator is doing for the SDE expression when using QICore and what the differences/expectations are there with the FHIR version.

W/r/t cql-execution, maybe something needs to change there in order to support nullish values getting returned from these SDE expressions. However, this issue only happens with the QICore version, not the base FHIR version, regardless of the presence of SDE extensions on the Patient bundle.

http://hl7.org/fhir/us/cqfmeasures/2023Jan/using-cql.html#concepts
CQL Concepts are not currently used within measure development and SHALL NOT be used within FHIR-based eCQMs, except to the extent that individual codes will be implicitly converted to concepts for the purposes of comparison with the Concept-value elements in FHIR resources.

Based on @p9g's link above, it sounds to me like perhaps the SDE library using QICore will need to be modified anyway. The question is whether it's the Concepts that are causing the problem, or if it's something else (in which case refactoring out the use of Concept might not help anyway).
I have not personally run QICore-based CQL in the execution engine before, so I can't easily debug it -- but I can probably take a look at the ELM and see if anything jumps out at me as being off.  I'm not sure I have time today, but I'll try to look soon. I'll also check in w/ @mgramigna to see if he has any more detail about his statement that "maybe something needs to change there in order to support nullish values getting returned from these SDE expressions."

Rethinking this through again, and if the issue is null union null or { null } union null, then that means the expression is returning a Concept with either codes: null or codes: { null }.  This breaks the logical model of what a Concept should be (as shown here), because a Concept is defined to have at least 1 Code.  So... it's possible that perhaps the execution engine is assuming a Concept has at least one code and the error is related to it processing a Concept that breaks that assumption.

@cmoesel I only mentioned null union null because that is what the following would equate to when there is no data:
R.ombCategory union R.detailed
or
{ E.ombCategory } union E.detailed
However, in QI-Core ombCategory type is System.code, and detailed is List<Sytem.code>. It would have to be in order to use the output of that expression to create the equivalent type for construction of Concept (Concept.codes is type List<System.code>).

Interestingly enough, I updated the race and ethnicity definitions to return something other than a Concept, and the issue still occurs when there is no race and ethnicity data in the test JSON (i.e., still receive e.union is not a function). However, I then ombCategory to a list in the "SDE Race" definition - that is:
define "SDE Race":   Patient.race R     return Concept {       codes: { R.ombCategory } union R.detailed,       display: R.text     }
I reran the execution (still no race and ethnicity data in the test JSON), and the error is gone.

Interesting... I guess that kind of makes sense though... By wrapping it with { }, you're forcing the null to become a list of null -- and now the engine knows how to union it.
In the US Core Race Extension, ombCategory is a list already (0..5) -- which is why the original CQL does not wrap it with { } (as opposed to US Core Ethnicity Extension, for which ombCategory is singular (0..1)). For that very reason, you don't really want the CQL to wrap the race extension's ombCategory in a list, because when there actually are codes there, you'll end up with an array inside an array.  So don't keep it like that -- but thanks for doing it, as it helped to shed some more light on what's going on.
I think there is something for us to look at in the engine regarding this, but really, the best thing would be for the CQL to be more careful about constructing Concepts, because a Concept with null codes and display doesn't really make sense.  You might want to consider taking an approach like this in order to ensure sensible Concepts:
define "SDE Ethnicity":
  Patient.ethnicity E
    return NullSafeCodesToConcept(
      { E.ombCategory } union E.detailed,
      E.text
    )

define "SDE Race":
  Patient.race R
    return NullSafeCodesToConcept(
      R.ombCategory union R.detailed,
      R.text
    )

define function NullSafeCodesToConcept(codes List<Code>, display String):
  if codes is null or Coalesce(codes) is null
  then null
  else Concept {
    codes: codes,
    display: display
  }

Thank you @cmoesel for the helpful info. I understand your comment about explicitly casting ombCategory to a list. I just found it interesting and wanted to share, in case it helped in troubleshooting. I am not the steward for this library. Again, this came about as an issue a user raised with MADiE. That said, SDE library is one of those common libraries that will be used by everyone, so it is important to get it right before everyone starts using it and then has to update their measures. For this reason, I'm really interested in getting @brynrhodes thoughts.
What I think I understand based on our back and forth today:

The return for the Race and Ethnicity definitions should really not be a Concept. QMIG is explicit about constructing Concepts; an author is not supposed to do it. We can update these return statements pretty easily by removing the name of the Tuple, if indeed we still want them to be Tuples.
When constructing types in CQL based on the physical layer of data, which may have null values, handle the nulls appropriately in the logic as opposed to pushing that responsibility over to the execution engine. At a minimum, understand the requirements and dependencies of the types being created and deal with them appropriately in the logic.

Yes, although I just realized that if this particular issue is with how the engine is performing those unions, then my suggested CQL above still does not solve this issue (because the CQL is still trying to do the union).  Oops.  It's been a long day.

It may be interesting to note how the SDE data gets packed into a MeasureReport http://hl7.org/fhir/us/davinci-deqm/2023Jan/MeasureReport-sde-example.html
The contained Patient has the SDE extensions, but other contained Observations also have the same codes, and extensions on the MeasureReport reference those Observations.

Does anyone know if @brynrhodes has been notified about this conversation? Do we need to send him a separate e-mail?

@srankins do you mind sending a separate email just to get it on the radar?

@srankins do you mind sending a separate email just to get it on the radar?

Done.

Sorry for being late to the party :(. For the case of race specifically, where the ombCategory extension is multiple cardinality, the left argument to the union should be list-valued. Here's the relevant ELM:
<operand localId="34" locator="41:14-41:26" xsi:type="Query">
   <resultTypeSpecifier xsi:type="ListTypeSpecifier">
      <elementType name="t:Code" xsi:type="NamedTypeSpecifier"/>
   </resultTypeSpecifier>
   <source alias="$this">
      <expression xsi:type="Query">
         <source alias="$this">
            <expression path="extension" xsi:type="Property">
               <source name="R" xsi:type="AliasRef"/>
            </expression>
         </source>
         <where xsi:type="Equal">
            <operand name="ToString" libraryName="FHIRHelpers" xsi:type="FunctionRef">
               <operand path="url" scope="$this" xsi:type="Property"/>
            </operand>
            <operand valueType="t:String" value="ombCategory" xsi:type="Literal"/>
         </where>
         <return distinct="false">
            <expression path="value" xsi:type="Property">
               <source name="$this" xsi:type="AliasRef"/>
            </expression>
         </return>
      </expression>
   </source>
   <return distinct="false">
      <expression name="ToCode" libraryName="FHIRHelpers" xsi:type="FunctionRef">
         <operand name="$this" xsi:type="AliasRef"/>
      </expression>
   </return>
</operand>

In the case that there is no data in the extension element, that may return null, but it would be a "list-valued" null, which an engine should be able to union.
I've just committed a set of tests to the ecqm-content-qicore-2022 repository that demonstrates each case (ombcategory and detailed, only detailed, neither ombcategory nor detailed, and no race extension), and the results for the Java engine are:
Patient=Patient(id=example-with-race)
SDE Race=Concept {
	Code { code: 2106-3, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: White }
	Code { code: 1002-5, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: American Indian or Alaska Native }
	Code { code: 2028-9, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Asian }
	Code { code: 1586-7, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Shoshone }
	Code { code: 2036-2, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Filipino }
	Code { code: 1735-0, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Alaska Native }
}

Patient=Patient(id=example-without-category)
SDE Race=Concept {
	Code { code: 1586-7, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Shoshone }
	Code { code: 2036-2, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Filipino }
	Code { code: 1735-0, system: urn:oid:2.16.840.1.113883.6.238, version: null, display: Alaska Native }
}

Patient=Patient(id=example-without-codes)
SDE Race=Concept {
}

Patient=Patient(id=example-without-race)
SDE Race=null

Having said all that, I think there are definitely some specification issues that could use clarification:

The CQL Concept is intended to be the CQL representation matching FHIR's CodeableConcept. Although the type specification allows for concepts with no codes, or a null codes element, as well as a null display element, the syntax and (as @cmoesel points out) the ELM definition require at least one code to be specified. I think this is an oversight and that concepts without codes should be allowed, as CodeableConcepts without codes are certainly allowed, and so we need a way to represent that value. I think the CQL specification could use clarification on this point and so I've logged an issue here

The reason the extensions are constructed as concepts in the SupplementalDataElements library was mostly one of convenience, since it is a structure that supports a list of Codes and an accompanying text description. We could just make it a Tuple and avoid the potential confusion there, but I'm not 100% sure that it's a violation of the notion of a CodeableConcept in FHIR, since they are all codes indicating the concept of ethnicity. I've always assumed that the designers of the USCore Race and Ethnicity extensions intentionally modeled them the same way as CodeableConcepts so that they could be easily represented with that structure. I could be wrong about that, it would be worth a discussion with terminology and/or the USCore team on that point.

As @p9g points out, the QM IG does prohibit the use of Concepts except as they arise in the context of comparisons with Concept-valued elements in FHIR resources, which I would argue that this is such a case. I'd be happy to add a clarification to that conformance requirement to make that clear though if you wanted to submit a ballot comment on the QM IG currently in ballot for that.

And having said all that, I wouldn't be opposed to changing the SupplementalDataElements library to construct a Tuple rather than a Concept to potentially avoid the semantic mixing going on there, however, I don't think that would address the technical issue here, since we'd still have to union potentially null list values to get all the codes we need.

Thoughts?

My only thought around Concept - Based on a Concept's definition, my understanding is that a Concept is supposed to contain equivalent codes across different code systems or even within the same code system. Are we conflating the Concept for Race if we have non-equivalent race codes?

In the case that there is no data in the extension element, that may return null, but it would be a "list-valued" null, which an engine should be able to union.

I agree. I was just remarking that in the case of the JavaScript engine, that only comes across as JavaScript null, with no additional typing to indicate it is "list-flavored". That's a limitation in the engine. Still, I think we should be able to handle it better than we are.

I think this is an oversight and that concepts without codes should be allowed, as CodeableConcepts without codes are certainly allowed, and so we need a way to represent that value.

Agreed. Although I think a Concept with no codes has very limited value in CQL, since it's a construct used in FHIR, we at least ought to allow for it.

I'm not 100% sure that it's a violation of the notion of a CodeableConcept in FHIR, since they are all codes indicating the concept of ethnicity.

I agree with @srankins on this one; the individual Codings should represent the same concept. The only variation discussed in the FHIR spec is either variations in the system used or variations in granularity. In this case, the concepts in the coding do not represent the concept meaning "ethnicity" (e.g., the question), but rather, they represent specific (different) ethnicities (e.g., the answers).
But... the CQL specification makes this even more clear in its definition of ConceptDef: "All codes within a given concept must be synonyms." Although that's for ConceptDef (not Concept) I think it can be assumed to apply to Concept since ConceptDef's only purpose is to create Concepts.

I've always assumed that the designers of the USCore Race and Ethnicity extensions intentionally modeled them the same way as CodeableConcepts so that they could be easily represented with that structure.

Perhaps, but I actually took it the exact opposite way. If they intended it to be easily represented in a CodeableConcept, wouldn't they have made the detailed sub-extension a CodeableConcept? That surely would have been easier than separate sub-extensions for the codings and text. To me, the separate sub-extensions indicate intentional avoidance of using CodeableConcept.
(All that said, it begs the question of how you would represent multi-valued ethnicity in an Observation? A CodeableConcept certainly would be easiest, but still a questionable use of CodeableConcept.)

I wouldn't be opposed to changing the SupplementalDataElements library to construct a Tuple rather than a Concept to potentially avoid the semantic mixing going on there

Based on my understanding of the intent of CodeableConcept, and CQL's statement that a concept's codes must be synonyms, it seems technically inappropriate to use a Concept here.

I don't think that would address the technical issue here, since we'd still have to union potentially null list values to get all the codes we need.

Agreed. That something we need to fix in cql-execution anyway.

would cql-execution be updated after this change takes place, or would the update be made simultaneously?

There's no hard dependency here, so I think those updates can happen independently.

@brynrhodes - I think I've tracked down the issue in cql-execution. It has to do with how we handle queries for which the source is null. When the query source is null, we can't tell if the source is supposed to be a list or an object -- which affects how we return the query results.
This leads me to a general question, however. As far as I can tell, the CQL spec doesn't specify what should happen when a query's source is null - and it seems there are a few different ways that could go. What do you think?
// Does the query below return null, an empty list, or a Concept w/ empty or null codings?
define NullListQuery:
  (null as List<FHIR.CodeableConcept>) L
    return Concept {
      codes: L.coding C return FHIRHelpers.ToCode(C)
    }

// Does the query below return null or a Concept w/ empty or null codings?
define NullObjectQuery:
  (null as FHIR.CodeableConcept) O
    return Concept {
      codes: O.coding C return FHIRHelpers.ToCode(C)
    }

Given that CQL has a tendency to propagate nulls in general, I'm guessing (and hoping) that both those queries return null. 🤞

Checking on status of this ticket. It has been a little while since we have been able to discuss. It looks like @cmoesel had a question for @brynrhodes or the group based on identification of the issue within cql-execution, which I'm not sure has been answered. Based on previous conversations at eCQM Standards Coordination meeting, there were concerns about some of the content in the SDE library around concept structures used for the ethnicity and race definitions. It sounded like updates would be made to the SDE library, but there may still be lingering questions or conversations around library updates.

Hi @srankins
@brynrhodes @cmoesel and I got together at the connectathon to discuss this issue more. This resulted in https://jira.hl7.org/browse/FHIR-40225, which will add a clarification to the CQL about how to handle null-sourced queries (details in the ticket)
cql-execution will be updated to ensure that null-sourced queries return null, which will fix the doUnion issue from the original post on this issue. This update will then immediately be pulled into fqm-execution, and we will release a new patch version.

@mgramigna, thank you for the update. Also, it was good to meet @laclark22 and you at the Connectathon - finally can put some faces to some names. Regarding the solution for SDE, do you know if there is a plan to update SDE library?

@srankins -- It looks like the SDE in ecqm-content-qicore-2022 was updated very recently. The relevant definitions are now returning Tuple instead of Concept.  See: https://github.com/cqframework/ecqm-content-qicore-2022/blob/master/input/cql/SupplementalDataElements.cql

Fixed in v1.0.4


Update peserta.md

Hi,
This change says you have solved "Sudah 10,13-14,18,67".
However you have solved "Sudah 1-10,13-14,18,67".
;-)
I will merge this commit.
Could you add another commit to correct that?

Oh sorry. I didn't realize that. I will change this soon.
Thank you for letting me know about it :)
On Wed, Sep 7, 2016 at 6:50 PM, John Vandenberg<EMAIL_ADDRESS>wrote:

Hi,
This change says you have solved "Sudah 10,13-14,18,67".
However you have solved "Sudah 1-10,13-14,18,67".
;-)
I will merge this commit.
Could you add another commit to correct that?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/BesutKode/BesutKode.github.io/pull/72#issuecomment-245256626,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUJcT9WizdTSVUinhJQ3qL2WZKNMvMqzks5qnqUUgaJpZM4J20Vw
.


Fix binary location in pkg_tar

Fix binary location in pkg_tar
close  https://github.com/bazelbuild/rules_pkg/issues/803

It looks like #860 needs to merge first. Is that correct?
Do we have an example/test that exercises this fix?

Sorry forgot to squash previous commits


refactor: Used 1.18

Checklist:

[ ] Tests for the changes have been added (for bug fixes / features / refactoring)

Codecov Report

Merging #193 (d22cf1e) into main (da9fcaa) will increase coverage by 2.63%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##             main     #193      +/-   ##
==========================================
+ Coverage   65.69%   68.33%   +2.63%
==========================================
  Files          10       10
  Lines         379      379
==========================================
+ Hits          249      259      +10
+ Misses        123      110      -13
- Partials        7       10       +3

Impacted Files
Coverage Δ

internal/openapi3/example.go
100.00% <ø> (ø)

internal/server/handler.go
39.09% <0.00%> (ø)

internal/openapi3/mediatype.go
85.71% <90.00%> (ø)

internal/faker/faker.go
95.27% <100.00%> (ø)

internal/faker/person.go
95.65% <0.00%> (ø)

internal/faker/internet.go
100.00% <0.00%> (+14.28%)
:arrow_up:

internal/openapi3/parse.go
32.00% <0.00%> (+32.00%)
:arrow_up:

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 be618f6...d22cf1e. Read the comment docs.


Support for dot notations for attribute names containing colons

Hi @mmorga. I've copied your issue here. This is a clone of that gem, with a couple of modifications that I'm maintaining. I'm still in the process of rewriting many of the things in this gem, but I'm accepting PRs here. Care to port your change over here? I would appreciate it.

This issue can be closed now with the respective PR merged.


Black background behind keyboard can be seen when keyboard closes

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Tap on fab icon > new chat
Scroll

Expected Result:
You shouldn't see the black background.
Actual Result:
Black area behind the keyboard can be seen briefly
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.3.28-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/5b0f8c4b-4600-4ad9-8ffc-3ac173a9429c
https://github.com/Expensify/App/assets/43996225/61aea4a3-5e15-466a-ae1e-27ebd8960abf
Expensify/Expensify Issue URL:
Issue reported by: @Puneet-here
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686286129368869
View all open jobs on GitHub

This was already previously reported and determined it would not move forward.
https://github.com/Expensify/App/issues/18906
@kavimuru you were on that previous GH as well where that was determined.


@all-contributors please add @etimberg for code,ideas

@all-contributors please add @etimberg for code,ideas

@all-contributors please add @etimberg for code ideas


Update README.md

Change Description

Add up-to-date instructions on using ESModules
Fixed case from NodeJS to Node.js
NodeJS dependency can be an unclear phrasing, especially for people working on client-side

API Changes

[ ] API Changes

Documentation Additions

[x] Documentation Additions

Thanks @gomesalexandre !


Fix: Update doc-blocks of view helpers

This PR

[x] simplifies and fixes inconsistent doc-blocks of view helpers __invoke()

Thanks, merging!


Add dual stack support in machine-controller for GCP

https://github.com/kubermatic/machine-controller/pull/1236


Add openGroup() and writeToFile() to SqliteChangesetReader

This change supports the use case for version comparison, where it is necessary to group or combine changesets before enumerating the changes.
Another minor modification involves allowing the Db& to be provided to the constructor or changeset reader/writer, which is solely utilized for the Dump() function in the changeset as Db*. This would make it optional, and if it's not supplied, the Dump() would perform no action.
itwinjs-core:https://github.com/iTwin/itwinjs-core/pull/7080

/azp run imodel-native


Fix 'Open in Explorer' crash when nothing is selected

See title.

Fixed in 983df7ae795b5fb29ea04578b8a72f55ac0632c9, herp a derp.


Contact filter

As a nautobot user, I want to be to able to filter by contact associations in an object list view, so I can easily find objects by a contact or team.

Required on both default and advanced filter forms on the list view.
Default: Maybe adding a contact and a team filter field on NautobotFilterForm.
Advanced: Adding a contact and a team filter on NautobotFilterSet.


Create a SECURITY.md

The current security disclosure process is buried here: https://github.com/containerd/containerd#reporting-security-issues
I recommend creating a SECURITY.md file that outlines the process in containerd/containerd or .github/containerd so it is applied to all repos in the org.

FWIW,
I concur.  We recently went through a similar exercise and leveraged the Kubernetes SECURITY.md in our github.com/containers/* projects.  The majority of those projects point to this SECURITY.md file https://github.com/containers/common/blob/master/SECURITY.md.  The ones that don't already had one in play prior to that exercise or the project owner wanted something a bit more specific.

@caniszczyk can you take a look at https://github.com/containerd/project/pull/55 ? We can link to there from the different repos after it's merged.

@dmcgowan here's what I propose: https://github.com/containerd/.github/commit/fd43f5f992651403b8c0864d9471bb36e0083289
Another option could be to rename containerd/project -> containerd/.github and just use the .github as the repo for common project files and other things


Proposal: dropdown list with tag selection

I just found this component and I think it would be nice to have in in material 2 without using bootstrap.
http://valor-software.com/ng2-select/
It's a critical missing feature for an UI kit imho.
Thanks

See #118, #117, and #120


refactor: style structure

closes #252

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


Sync nodes via global timestamp from master

Master should push out its global time.
All nodes should save this timestamp and use the nextcoming timestamp to calculate a common delta

#22 should solve this


All Streamed Items Playlist

Apologies, I emailed you this request before figuring out this project was OSS
Hey, I'm a new user coming from the demise of Grooveshark.
One feature I'm missing from Grooveshark is the ability to hear all the songs you've played once before. They have a special playlist (you can call it My Library, My Collection, My Station, or similar) that contains all the songs you've ever played. You can delete songs from them, but you can't delete the playlist itself.
Implementation
I've only quickly glanced over the code, so I could be way off, but here are some of my findings
It appears YoutubePlayer.loadVideoById() is the call that is made to play the next video in the stream. This can hooked into to send a song over to a the library playlist
It appears playlists are saved on Streamus.com: https://streamus.com/share/playlist/xxxxxxx, where xxxxxxx is some ID which is randomly generated each time Copy URL is clicked.
So there would have to be an endpoint such as /library/xxxxxxx that handles a user's library. Now since the user doesn't have an account it might be tricky to have this in sync.
I believe the simplest solution depends on #432. The user can have a setting called library_key which contains the xxxxxxx that points to their library playlist. There might be a better way.

My biggest concern regarding this is hammering my server. A user's stream is sandboxed to their local PC where playlists are synced with my server. If a user spam clicks 'next' on radio mode with each 'next' causing this playlist to need to be updated then that will greatly increase the number of requests received by my server.
I think it might be possible if I keep this playlist saved locally and then send periodic bursts of updates to the server, but that's obviously more complex. I'll keep it in mind, though! Some sort of 'history' would indeed be nice. It'd probably happen alongside Last.FM support since that is essentially history.


JS Error: Cannot read property 'extend' of undefined

Problem
On Slate, I'm getting a console error stating: Uncaught TypeError: Cannot read property 'extend' of undefined in theme.js.
The problematic line is: slate.Sections.prototype = $.extend({}, slate.Sections.prototype, { on line number: 262.
I'm struggling to figure out whether it's one of my files that's the problem or one of Slate's.
I've not modified theme.js or any of it's JS includes.
If anywhere, it's coming from my custom.js, so maybe there's a conflict of some sort?

@ConduciveMammal Is this an issue you're still experiencing?  If so, could you please let us know:

If you're having an issue with the latest release of Slate
What devices and browsers you're seeing this on.

Closing for inactivity

I'm experiencing this error as well


20532 version D???

I'm delivering 20532 version D right now, but the Allfiles is only version C.
This means that I do not have any exercise for the new module 10, that is inserted between module 9 and module 10 in version C. When can I expect the github files to be updated?
Best regards
Peter W

+1

I have this class on this week. And I decide to use an old (20532C v3.2.1) solution files and make some mix from old and new lab instructions...
By the way - slides (from Learning Download Center) and Handbook (both - on Skillpipe and PDF-version from Learning Download Center) are also do not match...

So after a ton of headache and pain, the bug in the repository has a work-around.
I still can't commit directly to the repository without "unwinding" history again. It's very strange and I have no clue why it's happening after getting expert opinions and trying to fix this issue myself for weeks.
The remaining labs were brought in with Pull Request #208 today.
The latest release of the D Labs are here: https://github.com/MicrosoftLearning/20532-DevelopingMicrosoftAzureSolutions/releases/latest.
The labs are built automatically but you can build it yourself manually if you would like. The instructions are here: https://github.com/MicrosoftLearning/20532-DevelopingMicrosoftAzureSolutions/tree/master/.build.
I hope this gets you unstuck! I apologize again for how long this took, I was under the gun to come up with a solution and the fastest way to get a solution this week was to delete everything and start over.

I got feedback from multiple people that the Skillpipe and PDF books don't match. I escalated this with people at Microsoft Learning who are directly involved with that and we are waiting for an answer.


zuul not allow dispatch options request

microservice:
curl --verbose -H "Origin: http://localhost" -H "Access-Control-Request-Method: GET" -H "Api-Version: v10" -X OPTIONS <IP_ADDRESS>:5701/usr/sessions
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 5701 (#0)
> OPTIONS /usr/sessions HTTP/1.1
> User-Agent: curl/7.35.0
> Host: <IP_ADDRESS>:5701
> Accept: */*
> Origin: http://localhost
> Access-Control-Request-Method: GET
> Api-Version: v10
>
< HTTP/1.1 200 OK
< X-B3-TraceId: 21df12c1c948fbd
< Access-Control-Allow-Headers: X-Mx-ReqToken, Keep-Alive, User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Type, Accept-Language, Origin, Accept-Encoding, Only-Own, Api-Version
< Access-Control-Expose-Headers:
< X-B3-Sampled: 1
< Date: Tue, 01 Nov 2016 03:43:21 GMT
< Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
< Connection: keep-alive
< Access-Control-Allow-Origin: http://localhost
< X-B3-SpanId: 21df12c1c948fbd
< Access-Control-Allow-Credentials: true
< Content-Length: 0
< X-Application-Context: user-api-provider:5701
< Access-Control-Max-Age: 1728000
< Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, PATCH
<
* Connection #0 to host <IP_ADDRESS> left intact

zuul proxy:
curl --verbose -H "Origin: http://localhost" -H "Access-Control-Request-Method: GET" -H "Api-Version: v10" -X OPTIONS <IP_ADDRESS>:8090/usr/sessions
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8090 (#0)
> OPTIONS /usr/sessions HTTP/1.1
> User-Agent: curl/7.35.0
> Host: <IP_ADDRESS>:8090
> Accept: */*
> Origin: http://localhost
> Access-Control-Request-Method: GET
> Api-Version: v10
>
< HTTP/1.1 403 Forbidden
< Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
< Connection: keep-alive
< Content-Length: 20
< Date: Tue, 01 Nov 2016 03:43:48 GMT
<
* Connection #0 to host <IP_ADDRESS> left intact

zuul config:
spring:
  mvc:
    dispatchTraceRequest: true
    dispatchOptionsRequest: true

version:
    springDependencyManagementVersion = "0.6.1.RELEASE"
    springBootGradlePluginVersion = "1.4.1.RELEASE"
    springCloudStarterParentVersion = "Camden.RELEASE"

See #923, #1423


Gm usage permissions

How can I grant permissions to a group on gamemode spectator and survival? But so that the player in the group could not use creative, adventure.

This entirely depends on your Server setup and not LP itself, as it doesn't manage the gamemodes of players.
If you use a plugin like Essentials(X) that manages the /gamemode command, check its documentation for the command permissions.
If it is the default vanilla command, then the permissions would be minecraft.command.gamemode
Note that vanilla /gamemode doesn't have permissions to restrict it for specific gamemodes only, while EssentialsX does.

This entirely depends on your Server setup and not LP itself, as it doesn't manage the gamemodes of players.
If you use a plugin like Essentials(X) that manages the /gamemode command, check its documentation for the command permissions.

Yes, I have essentialsX, but I did not quite understand where to enter the permissions.

https://github.com/lucko/LuckPerms/wiki/Usage

I issued such permissions for the players. But it still doesn’t work

No . at the end. Also be sure to click save and to run the command.

No . at the end. Also be sure to click save and to run the command it shows after clicking save.

it's worked, thank u <3

You're welcome. Feel free to close this issue.


Enable the new model serialization for work load monitor

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

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


better fix for stopping using item from server side

only modify isBeingUsed in the player's client side if stopUsing() was called from server side

@VietnamNeko can you plz add spaces between if condition and bracket and do proper indentation like the rest of the code?
thxxx


added Readme

@adithyabhatkajake Awesome work! Can you add a small courseplan for your project?

Working on it. Will improve the readme too.
Regards,
Adithya Bhat
On May 8, 2016 15:15, "Chinmay Deshpande"<EMAIL_ADDRESS>wrote:

@adithyabhatkajake https://github.com/adithyabhatkajake Awesome work!
Can you add a small courseplan for your project?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/IEEE-NITK/SummerProjects16/pull/1#issuecomment-217706544

Looks good.


Fixing get_pixel_locations()

Updated get_pixel_locations():

Switched order of col, row.
Added one to pixel index.
Removed rounding of col, row.

Hi @christinahedges, I made your commit and also added comments to the test. The "true" value is determined by independently querying tessrip to get the average WCS for the sector/camera/ccd, then using the function wcs_world2pix() with origin=1 to convert the coordinate to col, row.

Hi @altuson this looks great to me. I've updated this to ensure the tests pass and the black and flake8 continuous integrations run.


Quests - Cooldowns not working

What is your Quests version / build number (do not say "latest")?
4.5.1 - b346
Describe the problem and how to replicate it.
Whenever I accept a quest, I can complete it. There should be a 1 hour cooldown (or any cooldown), but the quest doesn't recognize there is a cooldown, it will just let you complete it, and take it again without waiting for the cooldown.
Any console errors to share?
N/A.

If applicable, can you provide an example quest from quests.yml?
name: Baked Potatoes
    ask-message: Hey there! Would you please bake 64 potatoes and bring them back
      to me? I will reward you!
    finish-message: Thank you! Here is your reward!
    npc-giver-uuid: c4860ec3-e369-4f58-9e11-6909d7c16ddc
    gui-display:
      ==: org.bukkit.inventory.ItemStack
      v: 3105
      type: POTATO
      meta:
        ==: ItemMeta
        meta-type: UNSPECIFIC
        display-name: '{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"dark_purple","text":"Baked
          Potatoes "},{"italic":false,"color":"green","text":"(Completed)"}],"text":""}'
        lore:
        - '{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"dark_green","text":"Hey
          there! Would you please bake 64 "}],"text":""}'
        - '{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"dark_green","text":"potatoes
          and bring them back to me? I "}],"text":""}'
        - '{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"dark_green","text":"will
          reward you! "}],"text":""}'
        ItemFlags:
        - HIDE_ENCHANTS
        - HIDE_ATTRIBUTES
        - HIDE_UNBREAKABLE
        - HIDE_DESTROYS
        - HIDE_PLACED_ON
        - HIDE_POTION_EFFECTS
        - HIDE_DYE
    requirements:
      quest-points: 1
    stages:
      ordered:
        '1':
          items-to-deliver:
          - ==: org.bukkit.inventory.ItemStack
            v: 3105
            type: BAKED_POTATO
            amount: 64
          npc-delivery-uuids:
          - c4860ec3-e369-4f58-9e11-6909d7c16ddc
          delivery-messages:
          - Thank you!
          start-message: Bring 64 Baked Potatoes back to Cora for a reward
          complete-message: Thank you for the Potatoes!
    rewards:
      items:
      - ==: org.bukkit.inventory.ItemStack
        v: 3105
        type: IRON_BLOCK
      - ==: org.bukkit.inventory.ItemStack
        v: 3105
        type: EXPERIENCE_BOTTLE
        amount: 32
      - ==: org.bukkit.inventory.ItemStack
        v: 3105
        type: GOLDEN_APPLE
        amount: 3
      money: 250
      quest-points: 2
    planner:
      cooldown: 3600
      override: false
    options:
      allow-commands: true
      allow-quitting: true
      ignore-silk-touch: true
      use-parties-plugin: true
      share-progress-level: 1
      same-quest-only: true
      share-distance: 0.0
      handle-offline-players: false
      ignore-block-replace: true

Use https://ci.codemc.io/job/PikaMug/job/Quests/347/


[doc] Add rdocs for RedisMemo::MemoizeQuery

Summary
Add rdocs for memoize_query
Testing
After making all other methods as private, specs still pass

Need to fix build, also probably want to leave RedisMemo::MemoizeQuery.invalidate methods as public methods


[1pt] PR: Fix output pathing, plus catchments bugs

This PR covers a couple of minor fixes:

Issue 72 - Change output ras2fim folder name: It was named output_ras2fim_models, now being named output_ras2fim.
Issue 83 - A change to correct a re-occurring rasterio package issue.
There was also a minor bug fix in column names in the ras2catchments.py, now fixed.

Changes

src

ras2catchments.py - Fix to match a column name for our inputs folder nwm_catchments.gkpg. Also small text adjustments for the adjusted output_ras2fim folder name.  Also removed some code which loaded a depth grid TIF to figure out it's CRS and apply that to output files from catchments. Now, it just loads the CRS value from the shared_variables.py file.
ras2fim.py - It was hardcoding EPSG:3857 which is passed to other files and resulted in the CRS of the output depth grid TIFs. This is value is now moved up to shared_variables.py as a constant so other code can use it and be consistent (such as catchments).  Also changed the timing of when the new HUC output folder is created. Note: The "step" system is WIP and being removed.
reformat_ras_rating_curve.py: Text changes for the new output folder path.
shared_variables.py: Changed output folder name default, plus added the new default CRS constant.

Testing

tested with some combination of the using the -o output folder name and ensured it does default to the renamed folder of output_ras2fim.

Checklist
You may update this checklist before and/or after creating the PR. If you're unsure about any of them, please ask, we're here to help! These items are what we are going to look for before merging your code.

[x] Informative and human-readable title, using the format: [_pt] PR: <description>
[x] Links are provided if this PR resolves an issue, or depends on another other PR
[x] If submitting a PR to the dev branch (the default branch), you have a descriptive Feature Branch name using the format: dev-<description-of-change> (e.g.: dev-revise-levee-masking)
[ ] Changes are limited to a single goal (no scope creep)
[x] The feature branch you're submitting as a PR is up to date (merged) with the latest dev branch
[x] Changes adhere to PEP-8 Style Guidelines
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[ ] n/a - Placeholder code is flagged / future todos are captured in comments
[x] Project documentation has been updated (CHANGELOG and/or README)
[x] Reviewers requested

Testing on src/reformat_ras_rating_curves.py:

On a small HUC with only one raster file, the code and new envrionment worked just fine (if import rasterio.merge is commented out).
On a large HUC with many raster files (12090301), there was an error saying that rasterio.merge is not available.

Testing on src/ras2fim/py:

On a subset of the 12090301, errored out saying that rasterio.merge is needed and not available in the environment.

Overall, this PR downgrades rasterio in the environment update and that causes issues because both tested scripts rely on rasterio.merge to run.

Testing on src/reformat_ras_rating_curves.py:

On a small HUC with only one raster file: worked as expected.
On a large HUC with many raster files (12090301): worked as expected.

Testing on src/ras2fim.py on a subset of the 12090301:

Initially, there was a model catalog error saying that there was no model catalog at the default path (c:\ras2fim_data\OWP_ras_models\OWP_ras_models_catalog_12090301.csv). After a model catalog link was provided, this error ceased. This issue could be due to my folder setup or could be due to an issue with default pathing.
There was a v flag error due to there being mixed units. After I included -v 'foot' in the run command, this error went away.
There was a warning that said that HEC-RAS was unable to locate certain files. When I looked for the files in question, they were indeed not there. ras2fim ran just fine other than that, so I think it might have to do just with my using a weird model catalog file.

Overall, this PR runs perfectly on reformat_ras_rating_curves.py and, other than a  few hiccups which are potentially due to my file structure, this PR also seems to run on ras2fim.py.


embassy-net: Separate device from stack?

Right now it seems impossible to add a way to access the underlying device with embassy-net. In its current form it can't simply be added with a device_mut method on the stack because the device will be borrowed across await points causing lifetime errors.
It seems to me they need to be split; this is the way smoltcp went anyways, the iface only needs the device and sockets when polling. I'm happy to work on this but I'd need a bit of direction as the changes needing to be made. My end goal is the have a task like this:
#[embassy_executor::task]
async fn connection(_stack: &'static Stack<WifiDevice>) {
    println!("start connection task");
    let mut device = unsafe { WifiDevice::new() }; // TODO THIS IS BAD - but there is no way to get access to the device in the stack at the moment
    println!("Device capabilities: {:?}", device.get_capabilities());
    loop {
        match esp_wifi::wifi::get_wifi_state() {
            WifiState::StaConnected => {
                // wait until we're no longer connected
                WifiEvent::StaDisconnected.await;
                Timer::after(Duration::from_millis(5000)).await
            },
            _ => {}
        }
        if !matches!(device.is_started(), Ok(true)) {
            let client_config = Configuration::Client(ClientConfiguration {
                ssid: SSID.into(),
                password: PASSWORD.into(),
                ..Default::default()
            });
            device.set_configuration(&client_config).unwrap();
            println!("Starting wifi");
            device.start().await.unwrap();
            println!("Wifi started!");
        }
        println!("About to connect...");

        match device.connect().await {
            Ok(_) => println!("Wifi connected!"),
            Err(e) => {
                println!("Failed to connect to wifi: {e:?}");
                Timer::after(Duration::from_millis(5000)).await
            },
        }
    }
}

where I don't have to conjure the device to handle the uplink process.
Perhaps I'm going about this the wrong way, please feel free to tell me so! :)

I'd rather not do this. It increases the API complexity quite a bit, requiring the user to write the poll loop themselves. Exposes implementation details and gives the user too much rope to hang themselves with. I regularly see people hanging themselves in the smoltcp issue tracker :)
(smoltcp has to do it that way because it has to stay fully unopinionated. embassy-net can be more opinionated because it can assume you have a multitasking async executor).
Even if embassy-net requires &mut on the device, it doesn't mean the device internally can't share state via mutexes/atomics. You can return two objects: the device, and a "control" object that can be used to join a wifi network, query state, etc.
This is how cyw43 does it: https://github.com/embassy-rs/cyw43/blob/master/examples/rpi-pico-w/src/main.rs#L69

Thanks, I actually just stumbled across the cyw43 repo right after posting this :D. I like the control struct idea, and luckily the control and packet-sending parts of the driver are independent anyways, hence why creating a driver unsafely in the task above works.


Clear cache workflow

What
Checklist

[x] I have read and agree to Contributor Guide and the Code of Conduct
[x] I've included a screenshot or gif (if applicable)
[x] I have tested demo.rerun.io (if applicable)

PR Build Summary
Docs preview
Examples preview

This just adds a workflow to clear the cache. It's not actually being used, but I want to try to use it together with https://github.com/rerun-io/rerun/pull/2704 to see if using the regular rust-cache (which currently doesn't even fit into our cache limits because of sccache entries) will help with build times.


kicad-testing: 7.0-2024-01-07 -> 7.0-2024-01-27

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for kicad-testing is: Open Source Electronics Design Automation suite
meta.homepage for kicad-testing is: https://www.kicad.org/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
kicad result is not automatically checked because some binaries stick around

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
kicad-testing
kicad-testing-small

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/npsjnlxgg4dnpkahmap8rfdq80zclfgr-kicad-testing-7.0-2024-01-10 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kicad-testing https://github.com/r-ryantm/nixpkgs/archive/1660f1ace8322d8a1593e07bb674f3891eb3b64b.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1660f1ace8322d8a1593e07bb674f3891eb3b64b#kicad-testing

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/npsjnlxgg4dnpkahmap8rfdq80zclfgr-kicad-testing-7.0-2024-01-10
ls -la /nix/store/npsjnlxgg4dnpkahmap8rfdq80zclfgr-kicad-testing-7.0-2024-01-10/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

kicad-testing
kicad-testing-small

Maintainer pings
cc @evils for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for kicad-testing is: Open Source Electronics Design Automation suite
meta.homepage for kicad-testing is: https://www.kicad.org/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
kicad result is not automatically checked because some binaries stick around

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
kicad-testing
kicad-testing-small

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/pchi4qwfydwr28dk31c6myq51f8sqqs8-kicad-testing-7.0-2024-01-22 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kicad-testing https://github.com/r-ryantm/nixpkgs/archive/1105ef5e0da7cc1ef92a9bd5bfc925c49a5c305e.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/1105ef5e0da7cc1ef92a9bd5bfc925c49a5c305e#kicad-testing

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/pchi4qwfydwr28dk31c6myq51f8sqqs8-kicad-testing-7.0-2024-01-22
ls -la /nix/store/pchi4qwfydwr28dk31c6myq51f8sqqs8-kicad-testing-7.0-2024-01-22/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

kicad-testing
kicad-testing-small

Maintainer pings
cc @evils for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for kicad-testing is: Open Source Electronics Design Automation suite
meta.homepage for kicad-testing is: https://www.kicad.org/
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
kicad result is not automatically checked because some binaries stick around

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
kicad-testing
kicad-testing-small

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/5sih7j2af01b5s8dzjfwavjyvp0vmhlw-kicad-testing-7.0-2024-01-27 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kicad-testing https://github.com/r-ryantm/nixpkgs/archive/3a43e5269a682aa25b26ec16fa027acb35a4e5a0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/3a43e5269a682aa25b26ec16fa027acb35a4e5a0#kicad-testing

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/5sih7j2af01b5s8dzjfwavjyvp0vmhlw-kicad-testing-7.0-2024-01-27
ls -la /nix/store/5sih7j2af01b5s8dzjfwavjyvp0vmhlw-kicad-testing-7.0-2024-01-27/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

kicad-testing
kicad-testing-small

Maintainer pings
cc @evils for testing.


Document how to use third party React libraries

Preact has a React compatibility layer with which most React-based component libraries can be used with Preact. Document how this can be set up in fresh.
Aliases are not supported with npm: so far, but work with esm.sh when setting them in the import map:
  {
+   "react": "https://esm.sh/preact/compat",
+   "react-dom": "https://esm.sh/preact/compat",
+   "react/jsx-runtime": "https://esm.sh/preact/jsx-runtime",
+   "<react-library>": "https://esm.sh/<react-library>?external=react,react-dom,react%2Fjsx-runtime",
  }

Once set up, there is the caveat that those can only be used inside an island as they need client side JS to run

Thanks for creating this. I already wanted to do this, but sadly wasn't able to get it working. (Even with your hints here!) I tried using flowbite, after seeing this conversation: https://github.com/denoland/fresh/discussions/1363.
Are you saying that it's not possible to do this as server rendered components? This stuff will only work as islands?

FYI: Just fixed that for a discord user for radix-ui with the following changes: https://github.com/hapaxlife/test-fresh-radix-ui/pull/1/files

I try to use https://floating-ui.com/docs/react.  But ESBUILD always complaint:
✘ [ERROR] Module not found "https://esm.sh/@floating-ui/react@0.25.4?external=react,react-dom,react/jsx-runtime". [plugin deno-loader]

    uuid.tsx:3:28:
      3 │ import { useFloating } from "@floating-ui/react";
        ╵                             ~~~~~~~~~~~~~~~~~~~~

error: Uncaught (in promise) Error: Build failed with 1 error:
uuid.tsx:3:28: ERROR: [plugin: deno-loader] Module not found "https://esm.sh/@floating-ui/react@0.25.4?external=react,react-dom,react/jsx-runtime".
  let error = new Error(text);
              ^
    at failureErrorWithLog (https://deno.land/x/esbuild@v0.19.2/mod.js:1625:15)
    at https://deno.land/x/esbuild@v0.19.2/mod.js:1034:25
    at runOnEndCallbacks (https://deno.land/x/esbuild@v0.19.2/mod.js:1460:45)
    at buildResponseToResult (https://deno.land/x/esbuild@v0.19.2/mod.js:1032:7)
    at https://deno.land/x/esbuild@v0.19.2/mod.js:1061:16
    at responseCallbacks.<computed> (https://deno.land/x/esbuild@v0.19.2/mod.js:679:9)
    at handleIncomingPacket (https://deno.land/x/esbuild@v0.19.2/mod.js:738:9)
    at readFromStdout (https://deno.land/x/esbuild@v0.19.2/mod.js:655:7)
    at https://deno.land/x/esbuild@v0.19.2/mod.js:1923:11
    at eventLoopTick (ext:core/01_core.js:183:11)

import_map
{
  "imports": {
    "react": "https://esm.sh/preact/compat",
    "react-dom": "https://esm.sh/preact/compat",
    "react/jsx-runtime": "https://esm.sh/preact/jsx-runtime",
    "@floating-ui/react": "https://esm.sh/@floating-ui/react@0.25.4?external=react,react-dom,react/jsx-runtime"
  }
}

Could you teach me how to use it in proper way?

@ynwd ah, looks like the slash in react/jsx-runtime must be encoded for URLs.
  {
    "imports": {
      "react": "https://esm.sh/preact/compat",
      "react-dom": "https://esm.sh/preact/compat",
      "react/jsx-runtime": "https://esm.sh/preact/jsx-runtime",
-     "@floating-ui/react": "https://esm.sh/@floating-ui/react@0.25.4?external=react,react-dom,react/jsx-runtime"
+     "@floating-ui/react": "https://esm.sh/@floating-ui/react@0.25.4?external=react,react-dom,react%2Fjsx-runtime"
    }
  }

Thanks @marvinhagemeister .
The error completely disappeared after I set import_map like this:
  "imports": {
    "react"<EMAIL_ADDRESS>    "react-dom"<EMAIL_ADDRESS>    "react/jsx-runtime"<EMAIL_ADDRESS>    "preact"<EMAIL_ADDRESS>    "preact/"<EMAIL_ADDRESS>    "@floating-ui/react": "https://esm.sh/@floating-ui/react@0.25.4?alias=react:preact/compat,react-dom:preact/compat,@types/react:preact/compat&deps=react"
  }

and add configPath at esbuild deno-plugins:
plugins: [
  ...denoPlugins({
    configPath,
  }),
]

@ynwd Why was the configPath argument needed?
The aliasing works too, although it's a bit more verbose than marking modules as external.

The plugin requires it to read from the deno.json path.

Is there a risk that the suggested approach will cause problems due to different versions of Preact? I think you might have to be careful to include the same version specifier in the https://esm.sh URLs of 5 different import map entries - "preact", "preact/", "react", "react-dom" & "react/jsx-runtime".
I've been using an approach similar to @ynwd above - aliasing the react dependencies using the alias query parameter, and using the external query parameter to ensure the same preact  version/source is used throughout the application.
I've also had to be careful to specify an "es" target, otherwise the components may include Deno-specific code and fail in islands.
"<react-library>": "https://esm.sh/<react-library>?alias=react:preact/compat,react-dom:preact/compat,@types/react:preact/compat/src/index.d.ts&external=preact&target=es2022",

It's unpleasantly verbose, but it's working well for several different packages.
React dependencies are hard to avoid, and I found it very difficult to work out how to do this, so documentation would be extremely useful. It's a shame that there's no aliasing support (yet?) using npm: specifiers, as that might be easier.

@marvinhagemeister are you sure about the "only to be used inside an island" caveat? I've been rendering some components imported this way on the server with no problems. Might it depend on the specific package/component?

@adamgreg yeah depends on the package.

With Fresh 2.0 being published in jsr, the approach of aliasing react using esm.sh no longer works, due to fresh depending on npm:preact and jsr import can't be mixed with esm.sh import.
but unfortunately, since deno does not support doing npm package aliasing yet https://github.com/denoland/deno/issues/18191, it's not possible to do so with only deno.
Instead I've figured out a way to make fresh 2.0 works with react using node-modules-dir manual and bun.
Following is the setup (using deno 2.0.4 and bun 1.1.33)
deno.json
  "imports": {
    "fresh": "jsr<EMAIL_ADDRESS>    "@fresh/plugin-tailwind": "jsr<EMAIL_ADDRESS>    "preact/jsx-runtime"<EMAIL_ADDRESS>  },

all jsr dependencies added to deno.json imports, with the occassional import-map mapping as required (e.g. preact/jsx-runtime imported by fresh)
package.json
  "nodeModulesDir": "manual",
  "dependencies": {
    "@coreui/react": "npm<EMAIL_ADDRESS>    "@preact/signals": "npm<EMAIL_ADDRESS>    "esbuild"<EMAIL_ADDRESS>    "esbuild-wasm"<EMAIL_ADDRESS>    "preact"<EMAIL_ADDRESS>    "preact-render-to-string"<EMAIL_ADDRESS>    "react": "npm<EMAIL_ADDRESS>    "react-dom": "npm<EMAIL_ADDRESS>  }

all npm dependencies added to package.json to be managed by bun, including transitive npm dependencies of the jsr dependencies.
react and react-dom is aliased by bun by configuring it in package.json.
bun install
deno task dev

Note: not all react npm components work this way, coreui does work because it seemed they published an esm module,
but react-insta-stories didn't work because of https://github.com/preactjs/preact/issues/2690, I assumed because they're not publishing esm module, and the webpack require caused a double preact import.
A working repository example is provided here: https://github.com/shanipribadi/spikefreshreact


[WIP] neomutt: 2017-10-27 -> 2017-12-08

Motivation for this change
The new version contains lots of bugfixes and some new features, compared to the old.
The Neomutt Team has changed their build system to autosetup, which means
# Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
"ac_cv_path_SENDMAIL=sendmail"

won't apply anymore. However, neomutt's autosetup behaves exactly the same way, so i need to figure out how to fix that.
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)

[x] NixOS
[ ] macOS
[ ] 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"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

When i want to change "from toogley:master" to "from toogley:some_other_branch", i would have to start a new PR, right? In this PR, i can change to what this PR should be merged (via editing the title of this PR), but not the above "from toogley:master".

Yes, the source branch can not be changed.

closing in favor of https://github.com/NixOS/nixpkgs/pull/32546


Simplified menu generation and added support for nested active status

I added highlighting of the parent item in nav when visiting a nested page as I discussed in issue #271
I also improved the menu generation to remove some duplicated code blocks.

This only works when I set the the render method to be runtime for some reason. I don't know if its an issue with my install or the code maybe you could take a look @madoublet.
Note I didn't commit the vulcanization because I am not updated to 4.6 and I didn't want to overwrite other modules.

The on publish rendering for the menu happens in:
https://github.com/madoublet/respond/blob/respond4.6/api/libs/Publish.php
Look for:
foreach($html->find('respond-menu[render=publish]') as $el){

Yah I saw that line but it looks like that still pulls from the respond-menu.html for generation.

The PHP just generates the menu when render=publish.  It mimics what happens in respond-menu.html, but does not pull from it.