Bluetooth controller ACL data packets stall

My test setup
nRF52840_pca10059, hci_usb sample. Proprietary host stack and application (fuzzer) in Linux
Peer: csr8510, Linux kernel
Proprietary application is used for Bluetooth SMP fuzzing. Test target is running also linux.
Describe the bug
After certain test cases Zephyr controller goes to the state that it does not send HCI ACL packets out. Control packets are still working fine: i.e. connection can be created. When controller is in bad state, host stack sends HCI ACL packets to controller until controller tx buffer is full but host never receives Number of completed packets events. Dongle needs to be unplugged and plugged again to recover.
Configuring CONFIG_BT_CTLR_TX_BUFFERS=1 makes this problem not reproducible.
Hci logs and sniffer captures as attachment: zephyr_captures.zip
To Reproduce
I can reproduce this reliably. Requires proprietary application.
Test sequence consists of sending 1024 bytes of 0xff, valid public key, pairing random, dhkey check and trying to start encryption. This is done many times until ACL packets are stalling.
Expected behavior
Controller is expected to send ACL packets out normally.
Impact
Stopper.
Environment (please complete the following information):

OS: Linux
Toolchain Zephyr SDK
Commit 972221423cde92639f685542b10a8caa35793ec5

Thank you @cvinayak for looking into this!
I will try with hci_uart example once I've got dev kit. I guess I cannot test it with nrf52840_pca10059?
Still there is a thing that really bothers me: I consistently see that after sending Start encryption request to controller, if host receives Number of completed packets only three times before getting Encryption change event, on next connection ACL data will stall.
See two screenshots below.
First one is screenshot from case with no problems, ACL data does not stall on next connection.

Second one is the case, where on next connection ACL data will stall.

This behaviour is consistent but I'm unsure whether there is correlation.

@mkarhumaa

I will try with hci_uart example once I've got dev kit. I guess I cannot test it with nrf52840_pca10059?

Not unless you have an external debugger.
I am very interested in this behaviour. I know we already discussed this on Slack, but can you still double-check whether disabling CONFIG_BT_HCI_ACL_FLOW_CONTROL has any effect?
The other option is what @cvinayak mentions, the fact that USB uses different endpoints for commands and data, which leads to unsolvable race conditions. @jhedberg might be able to comment on this as well.

@carlescufi , thanks for your comments!

I am very interested in this behaviour. I know we already discussed this on Slack, but can you still double-check whether disabling CONFIG_BT_HCI_ACL_FLOW_CONTROL has any effect?
I re-tested with config CONFIG_BT_HCI_ACL_FLOW_CONTROL=n (confirmed from build/zephyr/.config) and I don't see any difference. ACL packet TX still stalls after a while. I don't actually know what difference I should see in hci log when CONFIG_BT_HCI_ACL_FLOW_CONTROL is disabled. To my understanding it should affect received ACL data?

The other option is what @cvinayak mentions, the fact that USB uses different endpoints for commands and data, which leads to unsolvable race conditions.
I verified that once controller is in bad state and TX stalls, ACL data RX still works fine. Are the ACL RX and TX using same USB endpoint?

I used following setup:
nrf52840_pca10059 and Zephyr hci_usb, Linux bluetoothctl
Peer: Android 8 phone, nRF connect as a gatt server.
First I used our application to get controller into bad state, then changed to bluetoothctl (hci reset was done), scanned, connected to android device. nRF connect tried to do Gatt service discovery but did not get any response so it disconnected. I have hci logs from both sides and it clearly shows that on zephyr side RX works but TX does not.

Ok, thinks are getting clearer now. It indeed seems that problem is somewhere in USB endpoint.
I captured both usb and hci traffic to same pcap. From the pcap we can see that once things start go wrong we do not get URB_BULK outs with type URB_COMPLETE for those URB_BULK outs with type URB_SUBMIT we have sent. Once we give up and disconnect we finally get ÙRB_BULK outwith typeURB_COMPLETEand status-ENOENTwhereas the status normally isSuccess`.
Capture is as attachment: tx-stall-usb-bt-capture.pcapng.zip
Any hints where should I look next to debug this further?

After all this ended up being problem in subsystem/usb/class/bluetooth.c.
If we ran out of buffers in acl_tx_pool we stopped reading stuff from hci tx endpoint.
See pr: https://github.com/zephyrproject-rtos/zephyr/pull/14936


Mod incompatible with latest Cold Sweat version

Minecraft version 1.20.1
Forge Version 47.3.12
Mars Popsicle version 1.0.0
Cold Sweat version 2.3.8
Ad Astra version 1.15.18
Crash during startup:

Crash report:
crash-2024-11-11_09.26.15-fml.txt

I am experiencing this as well.
Minecraft 1.20.1
Mars Popsicle 1.0.0
Cold Sweat 2.3.8
Ad Astra 1.15.18


Cannot open sqlite databases for Safari and Firefox when in Python 3.8 venv

Describe the bug
Cannot open sqlite databases for Safari and Firefox when in venv (created by Pipenv).
To Reproduce
Steps to reproduce the behavior:

Create pipenv
install browser-history
run browser-history -b Firefox or -b Safari
See error sqlite3.OperationalError: unable to open database file

Expected behavior
See the history.
Desktop (please complete the following information):

OS: macOS 11.2.3
browser-history Version 0.3.0
Python version: 3.8.7

Additional context
Chrome works, Brave works, Firefox and Safari work outside of virtualenv.

That's weird. I'm not sure why pipenv would make it fail (although I have not used it before, so I'm not aware of the nuances of it). Could you try the following?

close all open browser windows and run the tool only when there is no browser running in the background
try the version from the current master branch. Command to install is here

browser-history creates a temporary directory to copy over the history files to it and then tries to open the file from there. Could it be related to storage space on your system?

So I did some more digging, and the problem is apparently not the virtualenv, but might be with Python 3.8(.9, installed with pyenv and then used in pipenv). Pipenv with 3.9(.4) works. Sadly, for 3.9 there are install issues for another dependency I have in the project I am working on. Might there be something incompatible betweet 3.8's sqlite implementation and the Firefox DB?

Storage is not an issue, btw.

Might there be something incompatible betweet 3.8's sqlite implementation and the Firefox DB?

That could be a reason. Another culprit I could think of is tempfile.TemporaryDirectory() used here. It could be a permission issue with Mac OS. I have an older Mac OS system (Mojave) that I will test on later today or tomorrow.
We can rule out the SQLite issue if you could manually copy the places.sqlite file and run this through python (3.8):
path = "<path to places.sqlite file here>"
conn = sqlite3.connect(f"file:{path}?mode=ro", uri=True)
cursor = conn.cursor()
cursor.execute("SELECT * FROM moz_historyvisits")

Sorry about this issue :grimacing:, I'm not sure what's going wrong here either.

On Mac OS (Mojave), Firefox and Safari both work in a 3.7.3 installation. Will check on 3.8 through pipenv later.

The code above runs smoothly in 3.8.9.

Arrgh, actually it does not, sorry. Got lost in environments. But it also does not work with 3.7. So it seems to be something about my weird system.

So, it works in a pipenv with 3.8.9, but not in my projects environment. So has to be some conflict with another package. Sorry for bothering you. Might not be a problem on your side. I'll investigate further, but feel free to close this,

Sorry, have to correct myself again, it does not work in 3.8.9. Only if I opened it before with brew-installed 3.9.4 and the -wal and -shm files are still there. If I delete those, neither pipenv/pyenv-installed Python 3.8 nor 3.7 can execute the sqlite code above.

I did some more testing on the Mac OS system and was able to reproduce the issue on a pipenv environment with python 3.8.9.
The issue most likely is that the temporary directory made by tempfile.TemporaryDirectory() isn't writable by SQLite for some reason.
After scourging the sqlite documentation, I found a potential fix that seems to work. I changed this line to add a few more query parameters:
conn = sqlite3.connect(f"file:{copied_history_path}?mode=ro&immutable=1&nolock=1", uri=True)

It works on the python 3.8.9 pipenv environment.

You can make changes to browser-history by cloning the repo into a separate directory and installing it in pipenv using pipenv install -e <path to browser-history>. Any changes you make in the directory will be reflected immediately when you run browser-history again.

I can open a PR for this later, or you can do it too if it works 😄

The test script works with that adoption.
As does using the file path instead of the URI.
Is there a reason to open it in ro mode, except for good practice?

The test script works with that adaptation.

Good to know!

As does using the file path instead of the URI.

Do you mean it works without the ro flag?

Is there a reason to open it in ro mode, except for good practice?

IIRC there was an issue on Windows without it, I don't remember now xD. Since we don't need write access, it works as a good practice.

The URI instead of file thing was added in the first code commit, so I'm really not sure why it was added. If the tests work, we can consider reverting it to just the file path.

Already gone with the URI for the PR

But feel free to change anything or to scrap it.

I tested it and can confirm this. I'm not sure why it behaves this way. Do you have any idea?

macOS being funny with its pre-installed sqlite3 binary (most likely outdated). Or requiring something like 'Full Disk Access' permissions. But tbh, really no clue.

macOS being funny with its pre-installed sqlite3 binary (most likely outdated). Or requiring something like 'Full Disk Access' permissions.

Ah okay, that makes sense. Does it mean that python uses that binary internally? Since the sqlite3 module is supposed to be a C implementation of sqlite, I don't know if having it depend on the binary makes sense.

I'd think it simply uses the binary it finds on your PATH first. But just guessing here, don't know the sqlite package except for using it. Thanks for merging the PR. When would you expect the next release on PyPI? (Asking to decide whether it makes sense to wait or to find out how to git install in beeware).

I was planning to make a release soon, but that will take a couple of days. The earliest I can do is tomorrow night (that is 20-24 hours from now). Let me know if that works.

No rush, project is in early stages. Just checking feasibility.

Haha, that's okay. A release has been overdue for a while now. There have been around 10-15 PRs since the last release.

I've made a new release (v0.3.1). Let me know if this fixes your issue and sorry for the delay!

Already worked with the github version. Seems to work now also with the Pypi version. Thanks! And no worries. Not a paying customer ;)

Good to know!


Various updates to emphasize community resources

Fixes #185 which requests that we make it easier to find community resources on the website:

Adds a Contribute button to the front page of the site, linking to the contributor's guide.
Adds a section in the contributor's guide about the community page.
Moves the community page higher in the list of "about" pages.
Updates the info on the community page.
Adds a section on the Kubeflow page about the community and contributor's guides.
Makes various small improvements to the contributor's guide.

This change is

/assign ewilderj


MD5 Search

Implement the ability to search torrents by their hash value. Sometimes I know exactly what I'm looking for, and using a title or file name search may return multiple results. By allowing users to search directly by the MD5 hash Bitmagnet can provide a way to quickly find a single, precise result.
Related

Advanced Search Options
Scope Search to Title, Content or Both
Numeric Range Filters
Exact Phrase Search
Boolean Operators
Saved Searches
Regular Expression Search
Wildcard Matching
Field-Specific Search

Yeah sorry I meant that.

Hi, search by info hash should already work


Initial db setup

created initial DB table schema defs

for now, no FKs or anything. Seems weird to make an extra instances table that just holds instance ID's so we can have FK's for the other tables, but maybe we'll want to change this?

cargo-culted docker compose files from serverservice
generated sqlboiler models

Codecov Report

Merging #13 (f8792d9) into main (78cf13d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #13   +/-   ##
=======================================
  Coverage   85.91%   85.91%
=======================================
  Files           1        1
  Lines          71       71
=======================================
  Hits           61       61
  Misses         10       10

Flag
Coverage Δ

unittests
85.91% <ø> (ø)

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

Continue to review full report at Codecov.

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


Custom command not called

I posted this a while ago in the pre release forum topic but I thought actually creating an issue might be better. After migrating to 2.5 (both pre and release) my custom command script is not called anymore. I have it set up the same way as I did in 2.4 in my profile folder, the script is executable and I can run it from within the docker (after manually installing pip). I do not get any error in the rhasspy log but I can tell that my script does not run because I have my own log that should get a new entry in my log as soon as the script is called (directly after the imports).
Here are my settings:

I also tried without the curly brackets around the profile dir.
Here is what the log says when I recognize the intent with handle checked:

I also did tests in "productive" mode, meaning using a wakeword and then asking the question in case the checkbox is broken but the result was the same.
I do know that I can use mqtt directly but I try to be as modular as possible so I want to support every option available and also, since i just came from 2.4 I do not have a mqtt script written yet.
Daenara

Thanks, I'll take a look. I haven't tested the local command much, and I may have broken something in the last few months.

It appears I am having the same issue.
Followed the docs, using the example handler.py and it still doesn't work.
Happy to do any testing I can - but I'm pretty inexperienced, so might need a bit of detail 😄 .
DeadEnd

I was digging in the code trying to understand more, and I think I found something but don't know if it would cause a problem...
In the intent handler, there is a reference to satellites... but at least in the GUI there is no way to set them... I wasn't sure if this would cause it to error when trying to use a local intent handler.
rhasspy-supervisor/rhasspysupervisor/hasspysupervisor/init.py
Lines 140-145
    # Intent Handling
    handle_system = profile.get("handle.system", "dummy")
    if handle_system not in {"dummy", "hermes"}:
        satellite_site_ids = str(profile.get("handle.satellite_site_ids", "")).split(
            ","
        )

Since I'm pretty dev dumb... would this cause an error if the value doesn't exist and doesn't have a fallback default?

Something more interesting... I watched the docker logs... and was getting this error:
[ERROR:2020-08-04 17:02:10,967] rhasspyremote_http_hermes: handle_intent
Traceback (most recent call last):
  File "/usr/lib/rhasspy/rhasspy-remote-http-hermes/rhasspyremote_http_hermes/__init__.py", line 798, in handle_intent
    stderr=asyncio.subprocess.PIPE,
  File "/usr/lib/python3.7/asyncio/subprocess.py", line 217, in create_subprocess_exec
    stderr=stderr, **kwds)
  File "/usr/lib/python3.7/asyncio/base_events.py", line 1529, in subprocess_exec
    bufsize, **kwargs)
  File "/usr/lib/python3.7/asyncio/unix_events.py", line 190, in _make_subprocess_transport
    **kwargs)
  File "/usr/lib/python3.7/asyncio/base_subprocess.py", line 37, in __init__
    stderr=stderr, bufsize=bufsize, **kwargs)
  File "/usr/lib/python3.7/asyncio/unix_events.py", line 775, in _start
    universal_newlines=False, bufsize=bufsize, **kwargs)
  File "/usr/lib/python3.7/subprocess.py", line 800, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.7/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '${RHASSPY_PROFILE_DIR}/handler.py': '${RHASSPY_PROFILE_DIR}/handler.py'

So I didn't use the reference, and instead typed out /profiles/en/handler.py
and now IT WORKS!
So it appears there is an issue with using the variable paths with the intent handler.
@Daenara can you replace your ${RHASSPY_PROFILE_DIR} with an absolutely path (/profiles/en in the container).  See that fixes it for you as well!
DeadEnd

That was it, it works now. I never looked at the full log, just the part that it showed in the webgui so I never caught that. Thanks for figuring that out @DeadEnded

So I have to say... I am VERY excited... I think I found the problem and have created a pull request for the solution.
After a LOT of digging to understand where everything is (total noob) I was able to compare the intent handler with the wav file directory fields.  I found the line of code that expands the environmental variables - and it wasn't present for the intent handler.
I added it in my container and after a restart it appears to be working.
This was just a 1 line change, but I am very happy to have been able to troubleshoot it and find the solution.
I use a lot of open source software, so I am always trying to contribute.
Here is the pull request - not sure what the requirements are... I created it against Master which I expect is not the "correct" way... so I might have to re-create it for one of the tags... unless the maintainers allow it because it is a single line addition - so very little to review.
https://github.com/rhasspy/rhasspy-supervisor/pull/4
Cheers!
DeadEnd

Thanks for your valuable contribution, @DeadEnded! I merged https://github.com/rhasspy/rhasspy-supervisor/pull/4, always nice to get a one-line fix for a long-standing problem :-)

May I ask what if I added a Python library in the custom command? I am getting a module not found when I import the library.

May I ask what if I added a Python library in the custom command? I am getting a module not found when I import the library.


insiders.vscode.dev loads stable version of GHPRI extension

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

Navigate to https://insiders.vscode.dev/github/microsoft/vscode/pull/187713
Open the Extensions viewlet and I see the stable version of GHPRI extension

Same on github.dev. The issue seems to be more that the pre-release isn't offered on web.

Bug is in vscode.dev and therefore fix will be done there


feat: within for interval

Codecov Report

Merging #14 (d941946) into main (0849d83) will decrease coverage by 0.30%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main      #14      +/-   ##
==========================================
- Coverage   78.27%   77.96%   -0.31%
==========================================
  Files          14       14
  Lines         755      758       +3
==========================================
  Hits          591      591
- Misses        164      167       +3

Impacted Files
Coverage Δ

src/interval/closed.rs
67.56% <0.00%> (-2.86%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Add reset provinces data to province mappings

More provinces in Africa should be marked to be resettable to V2 defaults.

In addition, support separate resettable regions:
https://forum.paradoxplaza.com/forum/index.php?threads/the-eu4-to-v2-converter-project.707362/page-183#post-20614084
https://forum.paradoxplaza.com/forum/index.php?threads/the-eu4-to-v2-converter-project.707362/page-183#post-20615336

I think reset province data should be based on owner's tech group, not geographical position.
With the current system, Great Britain gets land in West Africa but England may probably never united.
I think the tech groups whose countries would be "reset" should be West African, Central African, Mesoamerican, Andean, North American and South American.

??
This feature is entirely about the fact that older versions of EU4 ensured that the Scramble for Africa wouldn't happen. No need for South America to be involved, nor for something that's simply about restoring a section of the map to involve other mechanisms.

Okay, got it. Adding resettable regions to ye olde versions of EU4 in the next release.


Add FBInstant.canCreateShortcutAsync()

One of these should be createShortcutAsync :)

Released: https://github.com/defold/extension-fbinstant/releases/tag/3.6.0


pip uninstall breaks the SDK

To reproduce:
$ pip install azure==2.0.0rc6
Successfully installed azure-2.0.0rc6
$ python -c "import azure.mgmt.compute; print('OK')"
OK
$ pip uninstall azure-mgmt-network
Successfully uninstalled azure-mgmt-network-0.30.0rc6
$ python -c "import azure.mgmt.compute"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named azure.mgmt.compute

This is because we have a packaging issue, and that every package have their own copy of azure/__init__.py. So when uninstalling, this file is removed and it breaks the package.
Note that this can be seen only in Python 2.7, thanks to PEP420 on Python 3 (this is not on purpose...)

Since azure==2.0.0rc7, this is fixed. However, uninstalling an old package will still break, so it's recommended to do NOT update from 2.0.0rc6, but to create a new virtual env. If you do update from 2.0.0rc6, please do it twice forcing the second install:
pip install --force-reinstall --upgrade azure==2.0.0rc7

You can check by individual package when it's done looking at the changelog for this sentence:

This wheel package is now built with the azure wheel extension

Note also that azure-storage contains the fix since 0.34.2


Podman Socket Requires Timeout

The current implementation of the podman socket
podman system service -t "$SEC" unix:"$PATH"
starts a synchronous process that persists until timeout period has expired (see https://github.com/containers/libpod/blob/master/docs/source/markdown/podman-system-service.1.md). After launching an async spawn, the CLI needs should pause for some time (e.g. 0.5 seconds while socket starts).
Hopefully, future the Podman system service will support flags like the ssh -f with "ExitOnForwardFailure" set to true, then this will not be required since socket can be started synchronously.

This issue was currently solved in 84bd2a6949a031f1f5764fb60501f58b1e7f0f9a by adding a simple sleep statement after the socket is started.


Clarify the HOF

I think things must be as simple as possible for any person to understand.. one of the problems we have in the dev community is to be learning "friendly".

I personally think the original description was easier to understand and more clearly describes higher order functions.

See also #9

I had started my own PR on this before leaving for some errands.  Both the original and this one have real problems with accuracy.  The definition from #9 is still simple but also accurate.
I'd still like to see simpler examples, probably several of them, one for a a function that accepts a function as input, one for one that returns a function, and one for a function that does both.  But I would vote for the definition from #9.

#9 is merged, thanks @weblancaster


google_maps_flutter android performance

When a google map is present in a given page performance drops terribly.
My use case is a ModalBottomSheet opening over the map and the framerate drops well below 20. It also happens when keyboard opens and closes. This looks like it have something to do with Mediaquery or safe area widgets? But then again it is only present in android while ios works fine.
this is from an iphone 8:
https://user-images.githubusercontent.com/100851392/195601207-c4930283-c157-4848-96f1-c75b629a68b5.MP4
this is from a pixel 4a:
https://user-images.githubusercontent.com/100851392/195601327-d4d1d180-428b-4bdc-9dbe-7bc6dbeb127d.mp4
both run on release mode. Android is almost unusable and it almost feels like it runs worse on release mode.
using
google_maps_flutter: 2.2.1
and flutter 3.3.4
also using latest renderer like this:
MapsInitializer.initialize(getContext(), MapsInitializer.Renderer.LATEST, renderer -> {});
Tried to create a test project but it seems that it is too light to recreate the problem. Even though no build method is called when i debug it seems that the more complex the screen and the more screens are in the stack the worse this issue becomes.
Here is the test project that i tried
class TestScreen extends StatelessWidget {
  const TestScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () => showModal(context),
      ),
      // body: SizedBox(),
      body: GoogleMap(
        initialCameraPosition: CameraPosition(
          target: LatLng(37.43296265331129, -122.08832357078792),
          zoom: 14,
        ),
        markers: {
          Marker(markerId: MarkerId('1'), position: LatLng(37.43296265331129, -122.08832357078792)),
          Marker(markerId: MarkerId('2'), position: LatLng(37.43296265331129, -122.08832357078792)),
          Marker(markerId: MarkerId('3'), position: LatLng(37.43296265331129, -122.08832357078792)),
        },
      ),
    );
  }

  void showModal(BuildContext context) {
    showModalBottomSheet(
      context : context,
      isScrollControlled: true,
      builder: (context) => Column(
        children: [
          SizedBox(height: 150),
          Container(
            width: double.infinity,
            height: 40,
            margin: const EdgeInsets.all(16),
            color: Colors.grey[100],
            child: TextField(),
          ),
        ],
      ),
    );
  }
}

Flutter (Channel stable, 3.3.4, on macOS 12.6 21G115 darwin-arm, locale en-GR)
• Flutter version 3.3.4 on channel stable at /Users/nikostsesmelis/Tools/flutter/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision eb6d86ee27 (8 days ago), 2022-10-04 22:31:45 -0700
• Engine revision c08d7d5efc
• Dart version 2.18.2

This is painfully visible when you also have a page with the map and then transition to another page. The animation looks terrible.
Android only.

Hello @NikosTsesmelis. Thank you for filing this issue. Can you please provide the following information?

A complete and minimal, reproducible example. Ideally, a single main.dart file that can be run directly.

Please provide the information in the form of text. See how to make collapsible sections with Markdown here.

I believe this showcases the problem somewhat.
Note that no animation is present in the screen which makes it ever weirder why this happens.
I test this on iphone 8 which works fine and pixel 4a that really drops frames.
Also note that in a real app this problem is much much worse.
void main() async {
  runApp(MaterialApp(
    onGenerateRoute: (settings) => MaterialPageRoute(
      builder: (context) => const TestScreen(),
    ),
  ));
}

class TestScreen extends StatelessWidget {
  const TestScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () => showModal(context),
      ),
      body: Stack(
        children: [
          const LargeWidget(),
          GoogleMap(
            initialCameraPosition: const CameraPosition(
              target: LatLng(37.43296265331129, -122.08832357078792),
              zoom: 14,
            ),
            markers: {
              const Marker(markerId: MarkerId('1'), position: LatLng(37.43296265331129, -122.08832357078792)),
              const Marker(markerId: MarkerId('2'), position: LatLng(37.43296265331129, -122.08832357078792)),
              const Marker(markerId: MarkerId('3'), position: LatLng(37.43296265331129, -122.08832357078792)),
            },
          ),
        ],
      ),
    );
  }

  void showModal(BuildContext context) {
    showModalBottomSheet(
      context: context,
      isScrollControlled: true,
      builder: (context) => Column(
        children: [
          const SizedBox(height: 150),
          Container(
            width: double.infinity,
            height: 40,
            margin: const EdgeInsets.all(16),
            color: Colors.grey[100],
            child: const TextField(),
          ),
          GestureDetector(
            onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) => TestScreen())),
            child: Container(
              width: double.infinity,
              height: 40,
              margin: const EdgeInsets.all(16),
              color: Colors.red,
              child: Text('NEXT SCREEN'),
            ),
          ),
        ],
      ),
    );
  }
}

class LargeWidget extends StatelessWidget {
  const LargeWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        _grid(),
        _grid(),
        _grid(),
        _grid(),
        _grid(),
      ],
    );
  }

  Widget _grid() {
    return GridView.count(
      crossAxisCount: 10,
      shrinkWrap: true,
      children: children(),
    );;
  }

  List<Widget> children() {
    List<Widget> list = [];
    for (int i = 0; i < 1000; i++) {
      list.add(Text("Simple text"));
    }
    return list;
  }
}

Hello @NikosTsesmelis. This issue is solvable. First thing is that the LargeWidget that you have a very inefficient. You are rendering 5000 widgets at once, every frame. You are also using an anti-pattern, which is you're using methods instead of widgets. Flutter isn't able to optimize method calls. If you need that GridView, use a GridView.builder instead. Using shrinkWrap is also very expensive as per documentation.
After removing that widget, and modifying main() like this:
 void main() async {
  final GoogleMapsFlutterPlatform mapsImplementation =
      GoogleMapsFlutterPlatform.instance;
  if (mapsImplementation is GoogleMapsFlutterAndroid) {
    mapsImplementation.useAndroidViewSurface = true;
  }

  runApp(MaterialApp(
    onGenerateRoute: (settings) => MaterialPageRoute(
      builder: (context) => const TestScreen(),
    ),
  ));
}

The performance problem almost disappeared. There is still 5 GridViews that are rendering that kinda serve no purpose since they are hidden by the map. Removing that unnecessary widgets completely solves all performance problems.

Complete Code Sample
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:google_maps_flutter_android/google_maps_flutter_android.dart';
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';

void main() async {
  final GoogleMapsFlutterPlatform mapsImplementation =
      GoogleMapsFlutterPlatform.instance;
  if (mapsImplementation is GoogleMapsFlutterAndroid) {
    mapsImplementation.useAndroidViewSurface = true;
  }

  runApp(MaterialApp(
    onGenerateRoute: (settings) => MaterialPageRoute(
      builder: (context) => const TestScreen(),
    ),
  ));
}

class TestScreen extends StatelessWidget {
  const TestScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      floatingActionButton: FloatingActionButton(
        onPressed: () => showModal(context),
      ),
      body: Stack(
        children: [
          const LargeWidget(),
          GoogleMap(
            initialCameraPosition: const CameraPosition(
              target: LatLng(37.43296265331129, -122.08832357078792),
              zoom: 14,
            ),
            markers: {
              const Marker(
                  markerId: MarkerId('1'),
                  position: LatLng(37.43296265331129, -122.08832357078792)),
              const Marker(
                  markerId: MarkerId('2'),
                  position: LatLng(37.43296265331129, -122.08832357078792)),
              const Marker(
                  markerId: MarkerId('3'),
                  position: LatLng(37.43296265331129, -122.08832357078792)),
            },
          ),
        ],
      ),
    );
  }

  void showModal(BuildContext context) {
    showModalBottomSheet(
      context: context,
      isScrollControlled: true,
      builder: (context) => Column(
        children: [
          const SizedBox(height: 150),
          Container(
            width: double.infinity,
            height: 40,
            margin: const EdgeInsets.all(16),
            color: Colors.grey[100],
            child: const TextField(),
          ),
          GestureDetector(
            onTap: () => Navigator.pushReplacement(context,
                MaterialPageRoute(builder: (context) => const TestScreen())),
            child: Container(
              width: double.infinity,
              height: 40,
              margin: const EdgeInsets.all(16),
              color: Colors.red,
              child: const Text('NEXT SCREEN'),
            ),
          ),
        ],
      ),
    );
  }
}

class LargeWidget extends StatelessWidget {
  const LargeWidget({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: const [
        Grid(),
        Grid(),
        Grid(),
        Grid(),
        Grid(),
      ],
    );
  }
}

class Grid extends StatelessWidget {
  const Grid({super.key});

  @override
  Widget build(BuildContext context) {
    return GridView.builder(
      gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 10,
      ),
      itemCount: 1000,
      itemBuilder: (context, index) => const Text('Simple text'),
    );
  }
}

Since this is not an issue with google_maps_flutter or Flutter itself, I am closing this issue. If you disagree, please comment and I can reopen it. Thank you.

What? this is just a test example so i can showcase the issue... It is inefficient by design... Am I supposed to create a fully functional complex screen as a test example?

In addition how do I use this code? What libraries do I need to add to my project because I cannot import these out of the box
final GoogleMapsFlutterPlatform mapsImplementation =
      GoogleMapsFlutterPlatform.instance;
  if (mapsImplementation is GoogleMapsFlutterAndroid) {
    mapsImplementation.useAndroidViewSurface = true;
  }

See the Complete Code Sample which includes the imported libraries, namely google_maps_flutter_android and google_maps_flutter_platform_interface

useAndroidViewSurface makes no difference.
And my code is optimized enough.
Build methods inside my widgets are not called during the animations so this is not the issue.
It seems like the map is rebuilding unnecessarily which I have no way to test. That is the reason for this issue in the first place.

In addition no matter how unoptimized the code is that should not matter because these navigations shouldn't have anything to do with my code. I have not subscribe to any event that would trigger a rebuild. In addition this performance drop happens only when map is present. The same screen without the map works fine.

Could you show a video demonstration of the performance issue as well as the timeline traces? See how to collect timeline traces here

I dont know how best to showcase this. I have already uploaded two videos on the description.
Here is an animation on a screen with a small map on it:
https://user-images.githubusercontent.com/100851392/196196126-f4fbd527-5828-4b33-ba0f-e6c0dfb5b680.mp4
Here is same animation without a map on the screen:
https://user-images.githubusercontent.com/100851392/196196864-432f2a9d-e6f2-4e20-9552-7293765a9fa7.mp4
In real conditions the difference is bigger that what shows in this video.
What do you need from the traces? I attach two photos and an export I found but I don't know if that is what you need.

dart_devtools_2022_10_17-1666014474334000.json.zip
I thought it happened only during navigator events but this happens during all animations which makes it feel like the map is constantly rebuilding on its own.
Note that no build method of unrelated widgets is called.

useAndroidViewSurface makes no difference.

The suggestion to use true above is actually the default; does setting it to false improve performance?
There are two modes currently supported by the plugin; Texture Layer Hybrid Composition is likely much faster, but (as noted in that README link) not always correct at the moment.

Setting this to false introduce a ton of bugs for the map.

Yes, I'm aware; I wasn't suggesting it as a short-term solution, but to gather information about whether this would be resolved if/when we are able to fully support this plugin in TLHC mode. Our ability to improve performance of HC mode is very limited due to fundamental limitations of synchronizing Flutter rendering with native view rendering.

even then the map is taking up too much resources constantly so every animation still drops frames and it is visible. What is an unmoving map doing every frame and takes this much resources?

It sounds like this will need to be profiled under TLHC to see what improvements may be possible there.

Ok after further inspection I figured that performance actually regressed at version 2.1.11.
Up until 2.1.10 it is not perfect but it is miles ahead what it is now.
So could you investigate what changed there and revert it?

Version 2.1.10 has issues with map updates and ok performance while 2.1.11 has no issues with map updates but terrible performance. It almost feels like the fix for updates is to constantly update the map so that it updates eventually. If that is the case it makes sense that map affects everything in the screen.

The difference between google_maps_flutter 2.1.10 and 2.1.11 is that the Android implementation moved to a federated package, so in practice what you're testing there is the difference between google_maps_flutter_android 2.3.2 and 2.1.10. Isolating a specific Android change would require pinning google_maps_flutter_android versions, not google_maps_flutter versions.
But primarily what changed is that in 2.1.10, nothing had been updated for the platform view changes in Flutter 3.0, so it would always use TLHC mode, whereas the current version has been updated so that mode selection works again, and defaults to HC.

Unfortunately i see that 2.1.10 has issues with map updates so I cannot use this temporarily.

It has issue with updates because starting in Flutter 3.0 the configuration it was using would be TLHC.

So could you investigate what changed there and revert it?

We are not going to revert changing the default to HC. You are welcome to switch to TLHC in your own code, but we're not going to opt everyone using the plugin into a mode that we know has correctness issues.

It almost feels like the fix for updates is to constantly update the map so that it updates eventually.

No, the fix was to use a platform view rendering mode that doesn't suffer from the missed updates problem for TextureView.

Ok so can you investigate what makes the map so heavy that performance of the whole screen is affected?

Any updates to this issue? I have the same situation map with one marker and when I launch bottom modal it lags application

Solved, set useAndroidViewSurface = false, also set render to latest to avoid NullPointerException crash calling by google_maps_flutter.
// * To avoid crash with Google Maps on Android devices
final GoogleMapsFlutterPlatform mapsImplementation = GoogleMapsFlutterPlatform.instance;
if (mapsImplementation is GoogleMapsFlutterAndroid) {
mapsImplementation.useAndroidViewSurface = false;
await mapsImplementation.initializeWithRenderer(AndroidMapRenderer.latest);
}

Hello, we really need an update on this.
We are about to release our app and the performance of the map is just not acceptable.
Here is a sample of the same app run in native android and flutter on the same old phone (both released on play store).
https://user-images.githubusercontent.com/100851392/223988145-33b953b4-2a20-4edc-bb52-bbd651bd9d99.mp4
https://user-images.githubusercontent.com/100851392/223988303-d785c832-9253-46a9-9543-a2607d5bd637.mp4
We are in a really tight spot here, as I see it our only option as of now is to ditch google maps altogether.

There is no update; please see https://github.com/flutter/flutter/wiki/Issue-hygiene#when-will-my-bug-be-fixed

I didn't just ask for an update. I showed you an example to showcase the severity of the issue. Google maps is supposed to be an important functionality of the flutter framework which is used by a big percentage of the apps developed and as of now it is unusable. Did you see the video of my app as an example? It is not an issue of improving the performance by a little. There has to be a major bug somewhere for this kind of performance difference to exist. I just hope you give it a second look.

Not sure if this is your issue, but I just noticed that Android (when using useAndroidViewSurface) may be unnecessarily double serializing the data structures passed to the widget each build. The build function of the widget serializes these parameters every time, but they are only used for initial creation of the native map. Further updates are done by sending the updates to the controller, but the build function still serializes the data anyway (though it doesn't go over the method channel or anything).
Do you have a fork you can play with? Can you try adding late to this initialization?
-    final Map<String, dynamic> creationParams = <String, dynamic>{
+    late final Map<String, dynamic> creationParams = <String, dynamic>{
      'initialCameraPosition':
          widgetConfiguration.initialCameraPosition.toMap(),
      'options': mapOptions,
      'markersToAdd': serializeMarkerSet(mapObjects.markers),
      'polygonsToAdd': serializePolygonSet(mapObjects.polygons),
      'polylinesToAdd': serializePolylineSet(mapObjects.polylines),
      'circlesToAdd': serializeCircleSet(mapObjects.circles),
      'tileOverlaysToAdd': serializeTileOverlaySet(mapObjects.tileOverlays),
    };

For me, this saves 4-20 ms per frame in profile mode (with ~1000 markers and polylines). However, the root cause for my performance issues seem to lie elsewhere. I might update here with what else I find, or spin off another issue if the root cause turns out to be different.

Our ability to improve performance of HC mode is very limited due to fundamental limitations of synchronizing Flutter rendering with native view rendering.

Android-Platform-Views

To avoid tearing or other visual artifacts, Flutter's composition must be done on the platform thread rather than a dedicated thread.

Hi @stuartmorgan,
I wonder why we need a performance tradeoff when using HC mode. Could you explain the effects if we do not render flutter in the platform thread, or link the bug ticket which leads to the decision?

Could you explain the effects if we do not render flutter in the platform thread

As it says in the text you quoted, tearing (during scroll), and in general lack of synchronization between native and Flutter drawing. But discussing HC's entire design is not in scope here; please feel free to file a new issue, or a submit a design document, if you have improvements to suggest.

How this bug has almost a year now and was not fixed yet? The performance between 2.1.6 and 2.3.0 has dropped drastically, to the point it is actually unusable on prod env.
Look at the comparison, no code changes between compared versions at all (except setting useAndroidSurfaceView in 2.3.0).
2.1.6
https://github.com/flutter/flutter/assets/78504503/55ea9659-e90c-4825-b0cc-f04726695033
2.3.0 (using android view surface, but it does not make any difference anyway)
https://github.com/flutter/flutter/assets/78504503/3971013a-e0f9-40c6-8b10-c72a28cef6e0
Please, move this bug priority to something higer than P2. For such a problem scale, P2 seems to be waaaaay to low - at least if you care about the google_maps_flutter package clients.

@incloudss It was marked as a duplicate because it didn't contributed any new, concrete information beyond what has already been said above; per our documentation "Comments should be reserved for making progress on the issue".

@stuartmorgan do any of the comments in this topic provide the information which google_maps_flutter version is working fine? No. My did. Also, i made the video comparison between two flutter apps with just different google maps package version, not the native android vs flutter, as the author did, so it gives more details, at least we do know that nothing more is involved than the package itself.
There is one more thing. If i am considering adding new dependency to my project, i look at the issues first and based on that make my decision. So my comment is also for those people who consider using google_map_flutter in its current state, to warn them about the performance issues.
How you can mark this as a duplicate is beyond me, unless you have other motives after all.

I tried all this solutions and not work 🥲 any solution please

I'm also facing this issue. Using a drawer while showing the map is impossible. Also, when navigating out of a screen with the map it's very visible the laggy animation.
This started happening for me when I updated to Dart 3.

It seems that Google Maps plugin is internally calling initExpensiveAndroidView instead of initSurfaceAndroidView in GoogleMapsFlutterAndroid's _buildView method. Changing this method call greatly improves performance for me in various scenarios including scrolling (as reported in #135026).
Not that this is not the same as switching to AndroidView (virtual displays) but to a different implementation of platform view.
The documentation for initExpensiveAndroidView says:

This attempts to use the newest and most efficient platform view implementation when possible. In cases where that is not supported, it falls back to using Hybrid Composition, which is the mode used by [initExpensiveAndroidView].

So, for some reason current Google Maps plugin implementation is actually forcing use of (probably) the worst version of hybrid view. Not sure if there was any reason for this or an implementation bug?

So, for some reason current Google Maps plugin implementation is actually forcing use of

It is not forced; see https://pub.dev/packages/google_maps_flutter_android#display-mode

(probably) the worst version of hybrid view.

Plugin clients who reported the correctness issues that caused the switch would likely disagree with the characterization that the current version is the worst option.

Not sure if there was any reason for this or an implementation bug?

The reason is https://github.com/flutter/flutter/issues/103686, as documented in the README.

@stuartmorgan Sorry if I've mistaken and if my comment came off as rude, but I am not sure if you understood my comment completely.
The switch you mentioned (which I am aware of) mapsImplementation.useAndroidViewSurface = true doesn't actually change the method call for initializing platform link (initExpensiveAndroidView / initSurfaceAndroidView). It completely changes the hosting of native Android view between hybrid and virtual display mode which as you said (and I agree) brings some issues mentioned in the issue you linked above. So basically that switch chooses if we're using PlatformViewLink or AndroidView.
What I am talking about here, that in the preferred scenario of setting mapsImplementation.useAndroidViewSurface to true (in other words, using PlatformViewLink) the current code calls initExpensiveAndroidView instead of initSurfaceAndroidView. See the exact line of code here.
By changing that line of code (I can make a pull request if you want), the peformance changes a lot in my case.
By forcing I meant that current implementation forces call to initExpensiveAndroidView instead of initSurfaceAndroidView.

The switch you mentioned (which I am aware of) mapsImplementation.useAndroidViewSurface = true doesn't actually change the method call for initializing platform link (initExpensiveAndroidView / initSurfaceAndroidView).

Yes, it does. In particular it switches between initExpensiveAndroidView (HC on all devices) and initAndroidView (TLHC on most devices, VD on old devices).

It completely changes the hosting of native Android view between hybrid and virtual display mode.

Changing the hosting mode of the Android view is what the variants of init*AndroidView are for. It is the sole reason for the existence of more than one such method.

What I am talking about here, that in the preferred scenario of setting mapsImplementation.useAndroidViewSurface to true (in other words, using PlatformViewLink) the current code calls initExpensiveAndroidView instead of initSurfaceAndroidView. See the exact line of code here.

I'm very aware of what that line of code does given that I wrote it, and also wrote portions of the implementations of all of the init*AndroidView methods.

By changing that line of code (I can make a pull request if you want), the peformance changes a lot in my case.

At the expense of correctness, yes, as discussed in the issue I linked to.

EDIT: To clarify further I am attaching two images of frame times. The first one uses initExpensiveAndroidView, the second one initSurfaceAndroidView

Yes, TLHC has better performance than HC. Nobody is disputing that.

What did you mean by:

It is not forced; see https://pub.dev/packages/google_maps_flutter_android#display-mode

I mean that having an option of which mode to use is the opposite of forcing a specific mode.

That does seem forced to me, there are basically 2 switches then (one for VD and other one for HC), but none for TLHC.

Please re-read my comments and the linked README; this statement is incorrect.

@stuartmorgan Thank you for the further clarification, I understand now - didn't fully understand the subject.
It seems that all maps features work as expected using TLHC, guess something was fixed/changed about it in the meantime.

@matijakevic
TLHC cannot display a SurfaceView, VD and HC mode can. GoogleMap uses SurfaceView so it cannot use TLHC.
There are comments about SurfaceView in PlatformViewsController.java that said these views like SurfaceView required to call View#invalidate() to notify Flutter about the update. but when I test it, it just cannot record the SurfaceView using TLHC.

GoogleMap uses SurfaceView so it cannot use TLHC.

Google Maps does not always use a SurfaceView; in some cases it uses a TextureView, which is where the missing update issue shows up.

There are comments about SurfaceView in PlatformViewsController.java that said views like SurfaceView are required to call View#invalidate() to notify Flutter about the update.

That comment is explicitly not about SurfaceView.

That comment is explicitly not about SurfaceView.

You are right. Thanks for pointing that out.
That comment block is a bit obscure, don't you think?

I didn't just ask for an update. I showed you an example to showcase the severity of the issue. Google maps is supposed to be an important functionality of the flutter framework which is used by a big percentage of the apps developed and as of now it is unusable. Did you see the video of my app as an example? It is not an issue of improving the performance by a little. There has to be a major bug somewhere for this kind of performance difference to exist. I just hope you give it a second look.

hi! i experience exactly the same issue! Did you find any solution or workaround?

just add this line in your main function and your issue will resolve
Future main() async {
if (defaultTargetPlatform == TargetPlatform.android) {
AndroidGoogleMapsFlutter.useAndroidViewSurface = false;
}
return mainBase();
}

I created a plugin simple_google_maps_flutter which uses the real native view like HC mode and has better performance.
But it requires using a custom engine to run.

In the next release of the Flutter Google Maps plugin, we will default to TLHC mode which has better performance than HC mode.

In the next release of the Flutter Google Maps plugin, we will default to TLHC mode which has better performance than HC mode.

When It will happen approximatley?  This case is opened for 2 months, people can't release their app like that.

In addition how do I use this code? What libraries do I need to add to my project because I cannot import these out of the box
final GoogleMapsFlutterPlatform mapsImplementation =
      GoogleMapsFlutterPlatform.instance;
  if (mapsImplementation is GoogleMapsFlutterAndroid) {
    mapsImplementation.useAndroidViewSurface = true;
  }

It helped me!!!! working now, You are my hero! what a king

When this PR lands: https://github.com/flutter/packages/pull/5408

NOTE: Using TLHC mode (aka mapsImplementation.useAndroidViewSurface = true) has rendering glitches. My PR resolves the rendering gltiches.

My PR has landed, please update to the latest version of google_maps_flutter_android to ensure that TLHC mode doesn't have rendering glitches.

You should be specifying .useAndroidViewSurface = false;

If you have performance issues in TLHC mode, please file a new bug.


Revert "disable zookeeper readiness probe (#471)"

This reverts commit ab8cd8c600672d10ae80c395fee6eb90a7d320a7.
The PR to the upstream official docker image to restore nc
by adding netcat to the apt-get list in the Dockerfile used
to build the official zookeeper image was merged.
Fixes #469

easier to close & redo to resolve conflicts.


In "Not So Space Invaders," you play as a space jet through an endless rain of incoming asteroids. Your goal is to avoid the obstacles for as long as possible.
The game is simple: move left or right to get out of the way of the rocks. Every second you survive, your points increase. But don't get cozy, because the pace ramps up every ten points, the game speeds up... exponentially.
You make one mistake, and it is game over. See how high you can get the score before you get the [taskkill] treatment.

How do you play your game?
Press A and D to move, and when prompted to reset, press W. Avoid the asteroids by moving left to right (using A and D).

Code
Check off the items that are true.

[x ] The game was made using the Sprig editor.
[x ] The game is placed in the in the /games directory.
[x ] The code is significantly different from all other games in the Sprig gallery (except for games labeled "demo").
[x ] The game runs without errors.
[x ] The name of the file/game contains only alphanumeric characters, -s, or _s.
[x ] The game name is not the same as the others from gallery

Image (If an image is used)

[x ] The image is in the /games/img directory.
[x ] The name of the image matches the name of your file.

Thanks for your PR!

Bug has been squashed. (It's my first time using js :P )
I'll try working on a laser-shoot kinda function. wasn't able to figure it out right now, and I should probably sleep.
Not-so_pace_invaders_fix.txt


please update old jiveon.com links

The file CertificateAuthority/README.md links to jiveon.com for the certificate policy,
but as the industrialdataspace.jiveon.com is no longer available, this is a dead link.
Can someone replace the https://industrialdataspace.jiveon.com/docs/DOC-3611 link (maybe by uploading the referenced silde/file).

Hello @robertgroh,
This issue has been notified in issue #105
I will assign to this issue a person that could fix it

Sorry,  I didn't search for the other issue.
Lets close this as a duplicate of #105


Don't prompt for React Router if exists.

When using blix add the user is prompted with do you want to add React Router even if they already have react-router in their project.
Recommended solution - Do a quick check for react-router in the user's package.json prior to running the script.

I'll also go after the empty App folder bug


[ASv2] add convenience functions to identity sdk

Overall goal is to abstract away the concept of an identifier, such that user only interacts with plaintext phone number
functions:

publishAttestation
deleteAttestation
lookup
createEscrow
withdrawEscrow
revoke

no longer doing due to lack of demand


Reduced performance of sending logs

At a certain point, when we reached a heavy load we encountered the problem of low speed of sending logs via promtail

The difference is the speed of reading promtail logs from a file with the same configuration. In the screenshot promtail sent all messages to loki

Configuring the client part of promtail:
clients:
  - url: http://<IP_ADDRESS>:3111/loki/api/v1/push
    batchwait: 1s
    batchsize: 100
    backoff_config:
      min_period: 100ms
      max_period: 5s
    external_labels:
      job: ${HOSTNAME}

The solution was simple, we raised the second loki log receiver. After that we can observe a decrease in the graph above. The result is the same

The average resource utilization of an instance was no higher than 30 percent

The qryn process is single threaded so you either need to scale multiple writers/readers and distribute traffic to achieve your desired capacity or use the qryn otel-collector and write directly into ClickHouse at max speed.

Rather, the description of the panels was confusing. I use qryn otel-collector, it was on it that I encountered the problem
  loki:
    protocols:
       grpc:
        endpoint: <IP_ADDRESS>:3200
       http:
        endpoint: <IP_ADDRESS>:3100

If you are using the otel-collector to ingest, then I would assume the bottleneck being either with the collector or clickhouse rather than qryn itself. Did you observe any resource bottlenecking while operating the setup?

No, I did not observe such a problem, it resolved immediately after I started sending to another receiver

I'm not sure if it's a resource problem, because it works correctly when I bring up another receiver

We definitely need to investigate this further to understand what the root cause is. Could you show the multi-receiver config too?


Add cookie support for Session-based WS

WS which are session-based (multi-operation with connect first and without token) are not handled by this library
If the HTTP library handled cookies, that would enable users using this kind of WS
EX : I have to connect to a SOAP webservice which has a Connect method which is to call first
subsequent calls to other operations trigger SOAPFault : "you are not connected"

I have given this some thought and have decided against attempting to add support for cookies.  I might be wrong, but am hoping cookie based stateful web services are not common.  For those exceptions where cookies are used, I think it is better for the client to handle them (can get from the headers returned and send in future request headers).

I am also dealing with this issue as well.


Unable to set a listener [Panic Mode]

Empire Version
[Version] 2.0
OS Information (Linux flavor, Python version)
Kali Linux Rolling Stones
4.9.0-kali2-amd64 #1 SMP Debian 4.9.13-1kali1 (2017-03-01) x86_64 GNU/Linux
Expected behavior and description of the error, including any actions taken immediately prior to the error. The more detail the better.
Unable to set a listener.
(Empire) > listeners
[!] No listeners currently active
(Empire: listeners) > set Name test
*** Unknown syntax: set Name test
(Empire: listeners) >
Screenshot of error, embedded text output, or Pastebin link to the error
Attached

Any additional information

Empire 2.0 has changed the way listeners are created. To create a new listeners use the command 'uselistener'. In you case you will probably want the http listener. Use the command 'uselistener http'. Now you can set your options.

Ah, works now. Thanks a stack.


Bad aspect ratio and sound glitches after episode change

Hi
I just setup dizquetv with these settings

So, I have this issue. Sometimes after an episode ends and another starts, sound glitches terribly, basically all I get is noise.
Also, after a 4:3 episode ends a 16:9 episode is stretched to 4:3 and looks horrible.
Is there any way to improve this?

Enable normalization in ffmpeg tab

ah, alright, so I'm forced to using transcoding?
I prefer to use directplay whenever possible...
Another slightly unrelated question, when transcoding, will plex then transcode again if using this remotely honoring the remote transcoding parameters?

You are not forced to use transcoding. But you are forced to choose between the three following things:

Transcoding
Using the same format in all the media playing in a channel
Stream breaking when the the episode switches

It's because dizquetv has to maintain a single stream running.

Thank you


[AutoDiff] Add '@differentiable(reverse)'.

Compiler:

Add Forward and Reverse to DifferentiabilityKind.
Expand DifferentiabilityMask in ExtInfo to 3 bits so that it now holds all 4 cases of DifferentiabilityKind.
Parse @differentiable(reverse) and @differentiable(_forward) declaration attributes and type attributes.
Emit a warning for @differentiable without reverse.
Emit an error for @differentiable(_forward).
Rename @differentiable(linear) to @differentiable(_linear).
Make @differentiable(reverse) type lowering go through today's @differentiable code path. We will specialize it to reverse-mode in a follow-up patch.

ABI:

Add Forward and Reverse to FunctionMetadataDifferentiabilityKind.
Extend TargetFunctionTypeFlags by 1 bit to store the highest bit of differentiability kind (linear). Note that there is a 2-bit gap in DifferentiabilityMask which is reserved for AsyncMask and ConcurrentMask; AsyncMask is ABI-stable so we cannot change that.

_Differentiation module:

Replace all occurrences of @differentiable with @differentiable(reverse).
Delete _transpose(of:).

Resolves rdar://69980056.

TODO: Update all the call sites.

@swift-ci please test

Build failed
Swift Test OS X Platform
Git Sha - d457cb7a93f49375fb975502608099ffc137dd39

Build failed
Swift Test Linux Platform
Git Sha - d457cb7a93f49375fb975502608099ffc137dd39

@swift-ci please test

@swift-ci please test

@swift-ci please smoke test

@swift-ci please test source compatibility

Build failed
Swift Test OS X Platform
Git Sha - f2baf57f47e9d9be0e92d697c5bc26b85a19687f

Build failed
Swift Test Linux Platform
Git Sha - f2baf57f47e9d9be0e92d697c5bc26b85a19687f

@swift-ci please test and merge

@swift-ci please test macOS

apple/swift-syntax#258
@swift-ci Please clean test


Author Signature file not found.

When I run deploy.ps1, I get the following warnings
Warning: Not found tizen signature file
Warning: Not found tizen author signature file,
which result in a signature error.
I already have created a Samsung account profile , checked that the time on the watch is the same as my computer and my phone.
When I try to change the profiles.xml path using "tizen cli-config "default.profiles.path=C:\tizen-studio\tools\ide\conf\profiles.xml"" it gives me a key:value error. Any ideas on how to fix this issue? I am on windows if that helps. Tizen Studio (not cli)  lets me deploy a normal webapp to my watch.

Exactly the same issue here. If and when I find a solution, I'll let you know.

I know why is that. In the deploy.ps1 file find the line
tizen package --type wgt --sign develop -- $buildResultFolder
Replace the word develop with the profile name you used when you created your own profile. Mine is called tizencertificate, for example. To find out your profile name from the profiles.xml run the command:
tizen security-profiles list
I hope this helps, Miklos

Fixed my issue, thank you!


net/http: build tag to disable HTTP/2

Background:
I am writing an iOS App Extension in Go. This particular extension is hard limited by the OS to 16MB RAM, which seems to be based on RSS. This means binary size is counted in the RAM limit, and indeed appears to dominate the RAM use. It is easy to keep heap < 5mb and stacks < 2mb, but the simplest Go programs blow out into 10mb binaries (after removing DWARF).
Suggestion:
Add a build tag to disable HTTP/2. This lets users cut 600kb off their (DWARF-less) binaries.
Experimenting with my app, it includes the HTTP client from net/http and is currently 8.6mb when compiled with -ldflags=-w. By deleting h2_bundle.go (the HTTP/2 implementation) and the few references to it in the other files of net/http, my binary size drops to 7.99mb.

/cc @bradfitz

Is it viable to instead make just the HTTP/1 client available in an external package, and use that instead of net/http?
The challenge of adding a build constraint for this is that it adds a new configuration that’ll need to be tested, and it may scale poorly when there’s also HTTP/3.

The challenge of adding a build constraint for this is that it adds a new configuration that’ll need to be tested,

We already do similar with osusergo and netgo and have a testing story there. (test that they compile in a separate cmd/dist test). I don't think we'd need any builder coverage other than making sure it compiles.

We started some simple discourse on Twitter.  At least we can avoid "not no". Like "not omit". Maybe omithttp2. It's not disabled. It doesn't exist. We don't generally use underscores in build tags.

and I agreed with

Yeah:
+build !omithttp2
works. I like the “omit” prefix

So a current pitch is to use +build !omithttp2 if using building tags

The existing precedent seems to be to prefix the build tag with the package name (netgo for the net package, osusergo for the os/user package). If we kept that up it'd be nethttpomithttp2 which is kinda a mouthful but ... specific. I'm okay with it.
We'd probably want to make the clientServerTest helper just t.Skip when http2 isn't compiled in. Hopefuly it's not much more than that.

In any case, I'm fine with this, especially if it's as small of a patch as I'm imagining. I haven't tried.

@crawshaw
Knowing workaround to memory limit of iOS App Extension :
using go1.9.x

Changing to NeedsFix per https://github.com/golang/go/issues/35082#issuecomment-545239713. Should go back to NeedsDecision if there are complications.


Replace chat with ytcFilter / Only show ytcFilter

Feature request / enhancement
For users that don't care about any of the chat but what matches their filters, it would be nice to have the ability to be able to only see the filtered chat and not the original chat box.
In other words, there could be an option to have ytcFilter take the position/size of the original chat box, and not show the original chat box, visually replacing it.

For the next version, I have already increased the possible value for the slider. Actually I think I will try to have to limit the max value so that it correspond to the size it needs to completely replace Youtube's chat. Or just a checkbox for "replace", unsure yet.

Implemented in 1.6.0 with "auto max height" option


README.md in Resource folders

In the SharePointDsc module, each resource has a README.md. That is probably specific to SharePointDsc right now. But if it has a good purpose then maybe that is something we should implement in other resources as well?
Is that part of the automatic build of the release notes from the .MOF file maybe?
@BrianFarnhill Can you elaborate on this one?

@johlju Yes this is answered in #167, so I'm going to close this as a duplicate.
The pull request with the doc-generator is currently open in #171 and awaiting further review from @KarolKaczmarek


91 | Decode Ways | C++

Decode Ways -
Addding New Code -
Type of Issue -

[x] Adding New Code

Programming Language

[x] C++

Self Check

Ask for issue assignment and wait to get assigned to it before making Pull Request.
Add your file in the proper folder
Clean Code and Documentation for better readability
Add Title and Description of the program in the file

:star2: Star it :fork_and_knife:Fork it :handshake: Contribute to it!
Discord server ✉ - https://discord.gg/CXksGdn
Happy Coding,

Please assign this issue to me. @SuryankDixit

@SSKale1 @Yashica7

@Mannan2812 You can create an issue and get assigned to it

Thank You @Yashica7


update README and TwoMoons example for discussion

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 49.31%. Comparing base (ea0d049) to head (fbb370e).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #191      +/-   ##
==========================================
- Coverage   51.76%   49.31%   -2.46%
==========================================
  Files         141      141
  Lines        3224     3224
==========================================
- Hits         1669     1590      -79
- Misses       1555     1634      +79

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Please squash before merging.


Incompatibility with py-passbolt 0.0.15

Hello,
I am trying to use this collection to fetch values from my passbolt. Any lookup gives:
{"msg": "An unhandled exception occurred while running the lookup plugin 'anatomicjc.passbolt.passbolt'. Error was a <class 'json.decoder.JSONDecodeError'>, original message: Expecting value: line 1 column 1 (char 0). Expecting value: line 1 column 1 (char 0)"}

I tracked the error to this specific call to json:
https://github.com/passbolt/lab-passbolt-ansible-collection/blob/8f8726e9b4e42cf6cee4e7513db6878f07a60d90/plugins/lookup/passbolt.py#L303
Adding debug prints, I get
self.dict_config.get("gpg_library", "PGPy") == "gnupg" -> False
self.p.decrypt(self.p.get_resource_secret(resource.get("id"))) -> MyPassword
type(self.p.decrypt(self.p.get_resource_secret(resource.get("id")))) -> <class 'str'>
And so json.loads gets a malformed json (or no json at all ...), and raises a json.decoder.JSONDecodeError.
The culprit seems to be passbolt.PassboltAPI.decrypt not returning a json string.
According to ansible-galaxy collection list, I have anatomicjc.passbolt v0.0.11 installed
According to pip list, I have py-passbolt v0.0.15 installed

Hey,
i also hit this Issue. I fixed it by enabling encryption on the Description of the Object in the Passbolt GUI. This makes the decrypt function return a json object instead of str since there is a second encrypted field. Seems like the decrypt function only returns json if there is more than one field returned by py-passbolt.

Thank you both for tackling this issue and @paulfi94 for the explanation. I will try to properly mitigate this in the ansible plugin.

I just published 0.0.12 version with a fix for this issue: https://galaxy.ansible.com/ui/repo/published/anatomicjc/passbolt/ thanks to @RobinR1 pull request.


Update IPython notebook

This is just minor updates to the IPython notebook I had forgotten to check in.

What should we do with this PR?

No reason not to merge it!

Oh, there's a conflict.  Let's just close this.


missing self for client

Codecov Report

Merging #576 into master will increase coverage by 0.27%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #576      +/-   ##
==========================================
+ Coverage   93.38%   93.65%   +0.27%
==========================================
  Files          40       40
  Lines        2946     2946
==========================================
+ Hits         2751     2759       +8
+ Misses        195      187       -8

Impacted Files
Coverage Δ

vent/api/plugins.py
92.97% <100%> (+2.24%)
: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 89a5c88...125f9a7. Read the comment docs.


Bug - please upgrade to CumulusCI version 3.48.1 or later

On my personal install of Metecho, on Heroku, I received the following error message while trying to create a scratch org :
Uh oh. There was an error creating your new Scratch Org for Epic “My Epic.” click.exceptions.UsageError: This project requires CumulusCI version 3.48.1 or later. To upgrade, please run this command: pip install --upgrade cumulusci
Please upgrade Metecho to the latest version of Cumulus CI.

This typically happens because when you generate a new cci project with cci project init, CumulusCI adds a minimum_cumulusci_version specification to cumulusci.yml with the current version. If you don't actually depend on changes in a recent version of CumulusCI, you can remove that line.
That said, we do intend to update the version of CumulusCI used by Metecho soon.

OK, understood.
But the current latest version is 3.48.2, whereas it is asking for 3.48.1 ...

Le 14 déc. 2021 à 18:57, David Glick @.***> a écrit :
This typically happens because when you generate a new cci project with cci project init, CumulusCI adds a minimum_cumulusci_version specification to cumulusci.yml with the current version. If you don't actually depend on changes in a recent version of CumulusCI, you can remove that line.
That said, we do intend to update the version of CumulusCI used by Metecho soon.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/SFDO-Tooling/Metecho/issues/1590#issuecomment-993835015, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALTAP56WA4QPEGH3V652CLLUQ6AQ5ANCNFSM5KBQJGPA.

@davisagli
Just to confirm : your suggestion fixed my problem.


Unable to login

When I set it up it says account does not exist. This is most likely due to the fact that my account is on the eu server, not the au. However, I cannot figure out the correct gateway to use, could you please guide me?
I tried https://eugateway.isolarcloud.com but it looks like their certificate is expired and event testing with http://eugateway.isolarcloud.com does not work
[15:05:51] INFO: Login to iSolarCloud using gateway https://augateway.isolarcloud.com ...
Error: Account does not exist '账号不存在'
Usage:
  GoSungrow api login [flags]
Examples:
	GoSungrow api login
Flags: Use "GoSungrow help flags" for more info.
Additional help topics:
ERROR: Account does not exist '账号不存在'

I also tried portaleu.isolarcloud.com but I get a 405 method not allowed

https://gateway.isolarcloud.eu worked for me

gateway.isolarcloud.eu worked for me

This worked for me as well, thanks!


useCanvas question

How exactly does the useCanvas option work?  If set to false, does it still use the canvas if it's available?

I know it's been a while, but I don't know what you mean by useCanvas.  You can't set useCanvas directly.  Its value is based on other properties.
And no, if useCanvas is false, it does not draw the image to a canvas before rendering.  It just spits it out into an <img /> and that's what you drag around.

What determines useCanvas to become true?


Update Poetry Lockfile

The recent 2.2.0 release didn't go through, seemingly because of a lockfile issue. I'm updating the lockfile and then going to try the release again.
Link to failed release job.

📚 Documentation preview 📚: https://garden-ai--513.org.readthedocs.build/en/513/

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 66.48%. Comparing base (b6ebc9e) to head (9baac16).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #513   +/-   ##
=======================================
  Coverage   66.48%   66.48%
=======================================
  Files          53       53
  Lines        3575     3575
=======================================
  Hits         2377     2377
  Misses       1198     1198

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


handle reconnect better to gregord CORE-3142

@maxtaco this implements the ping loop to get word about the connection being down from the daemon to gregord.

:mag_right: No visual changes found as a result of these commits.

:mag_right: No visual changes found as a result of these commits.

👍


catch possible unnknown errors when loading submission

It catches possible unknown errors when training the submission
hopefully closes: #471

Looks good. Is the instance killed when worker status is 'error' ? This may be related to #474, as when the work status is error, we do this:
            if worker.status == 'error':
                set_submission_state(session, submission_id, 'checking_error')
                continue

which I don't think kills the instance so we have the 'ghost instances'.

good point @lucyleeow
What do you think now?

This is good - with regards to the teardown when status is error, why did we not have this already for the condaworkers? I am not so familiar with the condaworkers - I am just wondering if there is/was any reason to not teardown in this place, before?
I also wonder if we also need to add a worker 'error status and teardown to the collect_result results part of the dispatcher. During this part the dispatcher is continuously checking if the worker has finished via _wait_until_train_finished, _training_finished and _has_screen. It seems possible to get error here as well - as you pointed out in #479

yes. You are right @lucyleeow . I was also wondering why teardown was not called here:
https://github.com/paris-saclay-cds/ramp-board/blob/26762a460d188033aea29144471b52aa06062727/ramp-engine/ramp_engine/dispatcher.py#L227
I couldn't find where it was called elsewhere when error status is set.
Maybe here? (although it does not seem to answer it fully): https://github.com/paris-saclay-cds/ramp-board/blob/26762a460d188033aea29144471b52aa06062727/ramp-engine/ramp_engine/local.py#L126
@glemaitre @rth could please confirm?

It depends if you want to do the action of the teardown which usually clean-up stuff.

Thanks @glemaitre
So do you agree on putting teardown here: for all the checking errors: https://github.com/paris-saclay-cds/ramp-board/blob/26762a460d188033aea29144471b52aa06062727/ramp-engine/ramp_engine/dispatcher.py#L171
which are usually unknown errors coming from the worker itself.
Perhaps it is not an ideal long term solution and we should teardown or not depending on the exact error, but for now we are left with 'ghost instances' on AWS and I think this should solve the problem. But perhaps it could introduce another one if we are loosing the data on teardown?

Thanks @glemaitre @lucyleeow and @rth


document that we use log level 7 (also DEBUG for SPIRE server and agent); that’s intentional and the users shall lower them for produciton uses — also provide a values-vsecm-prod.yaml that sets up these options for the end-user.

Done.


[fix] prevent unused types warning

Fixes #6290
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Just realized it's also benefitial to add a ts-nocheck comment at the top of all of these, so in case there are type errors they don't show up twice

hahaha this is an incredible solution — i was thinking about walking the AST to see if the import type declaration was unused so we could remove it altogether. real 'the russians used a pencil' energy

This really does feel like we need type tests :smile:  I don't know that we need to hold this up for tests since there's so much on our plates right now, but it might be nice to do post-summit

I agree we need type tests, but this one isn't really related to that. It's a hidden file generated from the user's file, and there are already tests for it.

Ah, I missed that there's a test because it was in the src die and I'm so used to all our tests being integration tests. Thanks for correcting me!


Support audience and issuer as keys to authenticators using an authenticator manager

What this PR does / why we need it:
This code takes ideas from #22 and refactors it to enable a specific access from issuer or issuer+aud to an authenticator.
Reverts #22

Tested with OIDC from central.portworx.com and configured with a client-id, it works well:
INFO[0004] Authorized                                    correlation-id=eb03a062-b516-480d-8272-ac5829175a93<EMAIL_ADDRESS>groups="[]" issuer="https://apicentral-dev3.pxbaas.com/api" method=hello.v1.hellogreeter.sayhello name=xxx origin=grpc-framework/server roles="[]" subject=90 username=90

We discussed it offline and we are not going with this PR. Instead we will be adjust the current code.


param_shmem: do fsync after param write

We have seen cases on Snapdragon where the params were "saved" but still didn't persist after a power-cycle, presumably because power was yanked before the param file had been synced to disk.
Therefore, we now do fsync after param save.
@priseborough FYI

Jenkins: test this please

Jenkins: test this please

Jenkins: test this please


Reset spool

I'm planning on reusing the spool registered in spoolman instead of creating a new one, since I usually forget to set which spool is loaded (even harder with multi material) I just configured custom gcode for esch filament and that sets the spool.
When I unpack a new spool currently I need to edit the existing one and say that the used weight is 0, and unset first and last used dates easily.
A reset button that sets used to 0, and clears first and last used dates would cover my needs. I'm aware this may not be what's intended but that's the workflow that works for me.

I was looking for a feature to better manage multiple spools of the same type (so I don't have lots of clones), maybe some sort of grouping feature, and came across this.  Maybe a way of solving both problems would be to 1. group non-loaded spools of the same type for capacity purposes, and 2. have some sort of option to "auto-load" a spool when you or klipper change the capacity to empty, with the default assumption that it will go to a spool of the same type.

Same here, I'm always running the same type of filament back to back in a production environment.  A simple reset option on the Mainsail screen instead of having to go into Spoolman and edit the weight would be awesome.


Copy and paste not working when using "Paste as plane text"

Microsoft PowerToys version
v0.68.1
Installation method
PowerToys auto-update, Microsoft Store
Running as admin
Yes
Area(s) with issue?
Paste as Plain Text
Steps to reproduce
Not able to copy and paste with Ctrl-C and Ctrl-V when the Paste as plane text" is on.
I then have to manualy right click an paste it from there.
✔ Expected Behavior
To be able to Ctrl-C and Ctrl-V when the Paste as plane text" is on.
And it is formatting the text as planed.
❌ Actual Behavior
To be able to Ctrl-C and Ctrl-V when the Paste as plane text" is on.
And it is formatting the text as planed.
Other Software
No response

Hello and thanks for your message. What is the hotkey that is set for the toy?

Just disregard this, I had it set to the same shortcut in another program and they were fighting about who should do the task.
På tirsdag 21. mars 2023 kl. 18:50:56 CET skrev microsoft-github-policy-service[bot] @.***> følgende:
Hi there!
We need a bit more information to really debug this issue. Can you add a "Report Bug" zip file here?  Then drag the zipfile from your desktop onto the GitHub comment box in this issue. Thanks!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


bugfix: fix images filter when show multi-tag images

Signed-off-by: zhangyue<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
In current impl, when pouch images filter occur multi-tag images, the result will include all images ref, since there image id was same. For example
$ pouch images
IMAGE ID       IMAGE NAME                                          SIZE
8c811b4aec35   registry.hub.docker.com/library/pouch:test          710.81 KB
8c811b4aec35   registry.hub.docker.com/library/busybox:1.28        710.81 KB
4ab4c602aa5e   registry.hub.docker.com/library/hello-world:linux   5.25 KB

$ pouch images -f reference=registry.hub.docker.com/library/busybox:*
IMAGE ID       IMAGE NAME                                     SIZE
8c811b4aec35   registry.hub.docker.com/library/busybox:1.28   710.81 KB
8c811b4aec35   registry.hub.docker.com/library/pouch:test          710.81 KB

It's was not accurate.
This pr will fix it.
Ⅱ. Does this pull request fix one issue?

None.
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
None.
Ⅳ. Describe how to verify it
$ pouch images
IMAGE ID       IMAGE NAME                                          SIZE
8c811b4aec35   registry.hub.docker.com/library/pouch:test          710.81 KB
8c811b4aec35   registry.hub.docker.com/library/busybox:1.28        710.81 KB
4ab4c602aa5e   registry.hub.docker.com/library/hello-world:linux   5.25 KB

$ pouch images -f reference=registry.hub.docker.com/library/busybox:*
IMAGE ID       IMAGE NAME                                     SIZE
8c811b4aec35   registry.hub.docker.com/library/busybox:1.28   710.81 KB

Ⅴ. Special notes for reviews
None.

@fuweid PTAL, thanks.


Inconsistent changelog

Environment data
dotnet --info output: irrelevant
VS Code version: 1.28.2
C# Extension version: 1.17.0
Steps to reproduce

(optional) have outdated version of extension installed;
look in the Changelog tab in VS Code what changes were made in the extension update.

Expected  behavior
Changelog tab has the final info about published version.
Actual behavior
Changelog wasn't updated for the release, showing outdated info.
Readme tab duplicates some update info as an excerpt.
This look amateurish tbh. Didn't expect that from an extension with 9.4M installs...
Please improve your release publishing procedure to ensure consistency of information.

@KillyMXI Thanks for the feedback. We'll discuss this and improve our process to avoid this in the future.


Ensure WGS coordinates used for the geojson pipelines

Stuart and I had to fix "The North" geojson because it used an outdated coordinate system. In ~2018, they enforced that you use WGS (latitude and longitude) to make the file user's life easier. We used QGIS to convert it, but might be other ways you know how to do this @ChristianSpence Christian.
Lume currently requires the geojsons in .json format, not .geojson. Are we able to fix this @gilesdring ?
Final point: we're limiting to 5dp in the coords. This will be fine for the latitude we are at (roughly 50cm), and reduces the file size considerably.

Fixed the .geojson issue - I discussed with Stuart yesterday, and the fix is adding the following to _config.ts
import jsonLoader from "lume/core/loaders/json.ts";

site.loadData([".geojson"], jsonLoader);

Closing as the .geojson file format is now useable, and the rest of this ticket is captured in #41


http method for upload should be POST

When I first used android-obd-reader I wrote a simple rest backend, wait for POSTs. From the settings and from my understanding of http methods this would have been ok. It turns out PUT requests are issued instead.
While it would be more backwards compatible to just change the settings description I think it would be wrong. From RFC 2616 [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html]:
For POST:

[...] The POST method is used to request that the origin server accept the entity enclosed in the request as a new subordinate of the resource identified by the Request-URI in the Request-Line. POST is designed to allow a uniform method to cover the following functions: [...]

Extending a database through an append operation.
[...]

For PUT:

The PUT method requests that the enclosed entity be stored under the supplied Request-URI. If the Request-URI refers to an already existing resource, the enclosed entity SHOULD be considered as a modified version of the one residing on the origin server.

My interpretation: PUT updates an existing entity or creates a new entity with a known identity, while the POST is a generic "here you have a new entity, handle it" request.
In this case it is a new dataset, that has no identity, until the target server assigns one. So I'd vote to change OdbService to indicate a POST operation.

@matthiasblaesing very good insight actually. It's been a long time since I last worked on that code and at the time I didn't gave it much thought. I should have :+1:
I'll be working on this.

@nomwerp @anti43 @MaxBenChrist @Pho3niX90 just letting you know (since you are the most active users around) that PUT has been replaced with POST.

Thank you!

Thanks for the notification!
I implemented a multi entity post in my branch. If somebody is interested, here is the snippet:
HttpClient client = new DefaultHttpClient();
        // TODO: option einführen
        HttpPost post = new HttpPost( );

        MultipartEntityBuilder builder = MultipartEntityBuilder.create();

        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        builder.addPart("logfile", new FileBody(file));
        builder.addTextBody("filename", file.getName());

        try {
            post.setEntity(builder.build());
            HttpResponse response = client.execute(post);
            Log.d(TAG, EntityUtils.toString(response.getEntity()));

            if (response.getStatusLine().getStatusCode() == 201) {

                file.delete();
                Log.d(TAG, "Deleted file" + file.getName());

                return true;
            } else {
                return false;
            }

        } catch (ClientProtocolException e) {
            Log.e(TAG, e.toString());
            return false;

        } catch (IOException e) {
            Log.e(TAG, e.toString());
            return false;
        }

Awesome thanks. Haven't been active in a while.


File uploaded but permission is wrong. Can't view it in browser.

How to set permission during upload ?

Read #6 and then this stackoverflow post

Very short version:
Just add headers: {                 'x-amz-acl': 'public-read'  }

@zfrenchee @NoRKin Thanks guys!


ci: enable Automatic Merge of Approved Pull Requests

Add automation that will merge approved PRs with passed CI checks automatically.
It uses the following GitHub Actions:

gather-pull-request-metadata - to gather important data about PRs (used in following actions)
pull-request-validator - to check if PR is approved and has passed CI checks and more
auto-merge - to merge approved PRs
issue-commentator - to comment on PR with status of PR and merge status

Here are some examples of use from the systemd source-git. Please notice the Pull Request validation and Auto Merge sections:

https://github.com/redhat-plumbers/systemd-rhel9/pull/281#issuecomment-2165555171
https://github.com/redhat-plumbers/systemd-rhel9/pull/277#issuecomment-2139901121
https://github.com/jamacku/nginx-container/pull/5#issuecomment-2182743930
Similar PR is here: https://github.com/sclorg/nginx-container/pull/306
/cc @jamacku

I agree, but let's test it on two containers and later on we will decide whether we will use it in all repositories.


Add a policy of ec2 in order to pass the ec2-integration-test

In order to in pass the test/lib/ex_aws/ec2/integration_test.exs  of TravisCI,
you need to add the EC2 of the policy to the IAM.
Can you add the policy of EC2 to IAM that are used in TravisCI?

Thanks!!!


Is this library still active?

Asking because the last deploy was about a year ago and many issues on this board have went unaddressed.

Yes it's still active. I've been launching some big projects at my day job plus dealing with some health issues so I couldn't put much time into this project this year. The project is due for a major rewrite that I need spend some time on but as it won't pay my medical bills I have to prioritise paying work at the moment. Hopefully, the problems I'm facing should be resolved by around October timeframe so version 2.0 might be coming around this time.

Good news for your health.
Thank you very much for taking over the maintenance of this fabulous component. It is simple, direct and works perfectly.

If you like, we can help you do the refactoring you're planning. Just pitch it out and i'll be sure to help!

Count me int!

I hope everyone's fine !
Any updates on version 2.0 of this amazing library?


Add precip variability notebook

Opening this PR to bring the jupyter notebook and parameter file into the metric branch.

@acordonez thanks for the PR! In my understanding generate_parameter_files in Demo 0 finds all *.in files so no need to update Demo 0 for the new basic_precip_variability_param.py.in file. Notebook looks great.


Migration description during execution

Hey, @matthewfitz! Is there any ability to display migration description during execution (why do we then need that description) and maybe any code actually executed? Cause all what I see is:
Migrating up to<PHONE_NUMBER>2802 from 0

  ++ migrating<PHONE_NUMBER>2802

  ++ migrated (0s)

If there is no such feature, I'd like to implement it and send the PR.
Thanks!

+1


Rename Project

The EasternEdgeRobotics/2016 project name no longer makes a lot of sense. ControlSoftware is already taken by the old C# project, and 2017 is kind of a lame name.
Lets think of some good names @EasternEdgeRobotics/developers !

I suggest ControlSoftware: Tokyo Drift

@Stephenchislett I like your style. I'll keep that going by suggesting 2 Control 2 Software.
Additionally I'd like to suggest 2016 2: Electric Boogaloo

Liking these suggestions so far lol

Control Software 2: Control Harder
Or also: Still Control Software

As good as these suggestions are, went with 2017


2ship2harkinian: init at 1.0.1

Description of changes
Closes https://github.com/NixOS/nixpkgs/issues/316326
https://github.com/HarbourMasters/2ship2harkinian
From the team behind Ship of Harkinian, 2ship2harkinian is an unofficial PC port of Majora's Mask with modern controls, widescreen resolution, 60+ FPS and more!

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 317889 run on x86_64-linux 1

1 package built:

_2ship2harkinian