Stitching Together Separate Webpack Project Builds

This is help question that I have been unable to get answered in any of the forums.
I am having difficulty accomplishing the following (and I am not sure if it is even valid use case for Wepack).
Goal
Load chunks built by separate Webpack project builds at runtime without a top level Webpack application build.
Requirements

Each project creates a main chunk and chunk for each dependency
Chunks should be interchangeable between separate Webpack project builds
Module and Chunk Ids should be deterministic across separate Webpack project builds
Chunks should be able to be assembled by any web application and not require a top level Webpack application build

Background
There are multiple teams building like projects for different web applications. Each project relies on some common shared dependencies and non-shared dependencies. There is not a top level Webpack application build that stitches these projects together. The usage of externals and globals is not desired.
Solution
Currently each project build generates chunks for each dependency, so that the project main only contains the project source. Each project dependency chunk should include its dependencies (this can be optimized later). I wrote a handful of Webpack plugins that normalize module and chunk ids to ensure that they are consistent across the separate builds. The Webpack runtime is a single  chunk. I am using the optimization and entry configurations to ensure that each dependency is a single chunk. This is working somewhat well, but I am coding by coincidence now as i tweak configurations and plugins. I do not understand Webpack internals and I do not know where to begin to solve this use case correctly. I do not think my current solution will scale.

webpack 5 will include deterministic chunk and module ids that should give you a high chance that chunks that include the same modules are identical. A high chance is not a guarantee, but it should work in pratice. There are some options which allow to increase the probability.
To make it work you follow these conditions:
Potential shared dependencies should have the same path relative to the context directory in webpack. This is true by default if you run webpack from the root of the project directory and dependencies are in node_modules which is also in the root. This makes sure that potential shared dependencies get the same module ids.
Config in each project should be similar enough to generate similar output. Best share a common webpack config between all projects, but this is optional.
Use [contenthash] in filename. Identical file will get the same filename. Not identical files will get different filenames.
Configure optimization.splitChunks in a way that create chunks per npm package, at least for the dependencies that are potential shared.
Deploy all output files from all project into the same output directory. This way identical files can be shared.
It's possible that different projects use a different version of a shared dependency. In this case module and chunk ids will be equal, but because the contenthash differs it won't use the same filename.
The deterministic ids algorithms only choose the same ids with a high chance. In case of id collisions they may choose a different id. You could increase the chance by increasing the id length, but check if it is necessary first.
This does not allow multiple projects on the same page! There is a chance that this will break, even if it works in 95%.

@sokra Thank you so much for the detailed response. I really appreciate you taking the time to address my questions.
Follow Up Question
When you said "This does not allow multiple projects on the same page!", does this mean that chunks from separate Webpack projects cannot run on the same page together and use shared chunks interchangeably? In my small examples this is somewhat working, but if this not going to scale, which it sounds like it won't (my fear), then I will need to change directions rather quickly. My backup plan is externals and the expose-loader. Is that the best alternative?
Response to Suggestions
It sounds like I am doing things as you suggested.
The plugins I have written are doing a good job of creating deterministic module ids. Each project build generates a white list of module names and the plugins (optimizeModuleIds, beforeModuleIds) use this list to determine if the module id should be deterministic. I use (node) module name + version as the module id. In some cases, e.g., web components, I do not care about the version, I want the latest version to win always, so I only use the (node) module name. I am splitting on ? for module ids that contain a hashed parameter and replacing it with a deterministic parameter - I use the path of the module.resource relative to its main (I know this is not a maintainable approach).
I am using the module name + version to create the file names.
I am using optimization.splitChunks to create chunks per whitelisted module (I think :)).
All output files for each build are being written to the same directory path.
I have control over all project builds, to a certain degree, so it makes all of the above possible.
Understanding Webpack Internals
Is there a learning path that you can suggest for better understanding Webpack internals? I have written numerous configs, scoured plugin source code, and written my own plugins and loaders, but I still don't understand Webpack enough to feel that I am making the correct design decisions for cases like this.
Would it be possible to partner with someone from the Webpack team on fixing, implementing progressively challenging bugs and features? Are there are any other design docs or learning resources?
I am very open to learning, so I don't mind taking on the tedious tasks that no one wants. :)
Closing
Thanks again for your help.

When you said "This does not allow multiple projects on the same page!", does this mean that chunks from separate Webpack projects cannot run on the same page together and use shared chunks interchangeably?

yes, that doesn't work. At least there is a chance that it don't work. Let me explain why:
Let's assume projectA uses depA@1 and projectB uses depA@2. depA@1 and depA@2 would get the same module ids and the chunk containing depA the same chunk id. Both projects are loaded into the page. Now projectA loads the chunk containing depA@1. This would also count as loading the depA@2 for projectB as they have the same module ids. projectB now runs with an incorrect version of depA that is potential incompatible. Usually it's recommended to use a different output.jsonpFunction to separate chunk loading from each other, but this would also prevent reuse of shared chunks.
The same could happen in case of id conflicts, which has more major impact as a totally different module is loaded.

If you need to have multiple projects on a page, there is an alternative approach which requires a bit more manual work.
You can build each shared library separately into a Dll bundle (DllPlugin), and reference these dll bundles with the DllReferencePlugin. Each of this dll bundles need to manually added to the HTML if needed by the projects on the page.

Doesn't the following ensure that project bundles would reference the correct dependencies?
The module ids for depA@1 and depA@2 would be depA_1 and depA_2. The projectA bundle would reference depA_1. The projectB bundle would reference depA_2. There would be separate bundles for depA_1 and depA_2. Both would be loaded on the page in addition to the project bundles.
The case where only the module name is used as a module is very limited and very controlled, so version incompatibility is not concern. Occasional breakage is expected during development cycles.

The module ids for depA@1 and depA@2 would be depA_1 and depA_2.

The algorithms in webpack 5 doesn't use the package version in the module id. But assuming it would (or your custom algorithm do), full names are used as module ids (which would avoid hash conflicts) and the same config is applied, it should actually work.
In this case each of your projects should probably also has a unique prefix to avoid conflicts between similar named files in different project.
Another problem might be different lockfiles. They can make depA@1 and depA@1 in different projects to have different generated source code. In projectA depA@1 may depends on<EMAIL_ADDRESS>and in projectB depA@1 depends on<EMAIL_ADDRESS>Not sure if this can become a problem. I can't guarantee that it works fine. Maybe putting all projects in a monorepo with a single lockfile can avoid that.

hi @jstrimpel, wanna checkup on if you had success on this path? i am about to do the same and write some webpack plugins to unblock my teams to have independent deployments, and stitch the share chunks at runtime

@yoshi95 We had to go down a more reliable path using a combination of the expose loader and externals configuration. We are still creating multiple bundles and re-assembling them at run time though.


Comment input boxes are the wrong color for dark themes.

I can't see any text that I'm entering. This limits my engagement with others. I don't want to typo or have swype enter the wrong word and make me regret writing comments.

What app or browser are you using? Any other theming in your browser? Seems to work fine in Brave, Chrome and Firefox.
Please double check and reopen with screenshots.

LBRY F-Droid

Oh. I think it's when I don't have enough LBRY credit to comment. One problem is that the app says "Post for 1 credit," which isn't clear if that's a give or take from your wallet balance.
It should say something like "Post for 1 credit cost."
Yeah, I was confused by it.


make sure output file names are safe?

There are cases in NLMv1 where the original files are like
001.tiff
001a.tiff
...

after a scam pass this means the output will be
001a.tiff
001aa.tiff
...

this is ok as there is no name conflict, but it makes the filenames a bit confusing as the resulting 001a.tiff is a derivate of 001.tiff and has nothing to do with the original 001a.tiff.
What I propose is that if I spot some name conflicts I can add a _ in the file name:
001_a.tiff
001a_a.tiff
...

this is just for convenience. @TBRC-Travis what would be best for you?

no problem here, closing


Move specs to the website

the drop-down only works once.. if you change the weight the same happens in the opposite order. maybe there's some state involved.

https://deploy-preview-558--wazero.netlify.app/
the problem is likely in ./site/layouts/partials/logo.html or possibly the js generated by the theme (or both!)

Thanks for fixing this @anuraaga!


🐛 BUG: Failed to start server: listen udp: address :::53: too many colons in address

What version of nebula are you using? (nebula -version)
1.6.1
What operating system are you using?
Linux (Debian bookworm)
Describe the Bug
When trying to use IPv6 for the DNS server, I get the following error: Failed to start server: listen udp: address :::53: too many colons in address
Logs from affected hosts
root@lighthouse:/etc/nebula# nebula -config ./config.yml
{"firewallRule":{"caName":"","caSha":"","direction":"outgoing","endPort":0,"groups":null,"host":"any","ip":"","proto":0,"startPort":0},"level":"info","msg":"Firewall rule added","time":"2024-03-29T15:56:18Z"}
{"firewallRule":{"caName":"","caSha":"","direction":"incoming","endPort":0,"groups":null,"host":"any","ip":"","proto":0,"startPort":0},"level":"info","msg":"Firewall rule added","time":"2024-03-29T15:56:18Z"}
{"firewallHash":"21716b47a7a140e448077fe66c31b4b42f232e996818d7dd1c6c4991e066dbdb","level":"info","msg":"Firewall started","time":"2024-03-29T15:56:18Z"}
{"level":"info","msg":"Main HostMap created","network":{"IP":"<IP_ADDRESS>","Mask":"////AA=="},"preferredRanges":null,"time":"2024-03-29T15:56:18Z"}
{"level":"info","msg":"UDP hole punching enabled","time":"2024-03-29T15:56:18Z"}
{"level":"info","msg":"Loaded send_recv_error config","sendRecvError":"always","time":"2024-03-29T15:56:18Z"}
{"build":"1.6.1","interface":"nebula0","level":"info","msg":"Nebula interface is active","network":"<IP_ADDRESS>/24","time":"2024-03-29T15:56:18Z","udpAddr":{"ip":"::","port":4242}}
{"dnsListener":":::53","level":"info","msg":"Starting DNS responder","time":"2024-03-29T15:56:18Z"}
{"level":"error","msg":"Failed to start server: listen udp: address :::53: too many colons in address\n ","time":"2024-03-29T15:56:18Z"}
^C
{"level":"info","msg":"Caught signal, shutting down","signal":"interrupt","time":"2024-03-29T15:56:19Z"}
{"level":"info","msg":"Goodbye","time":"2024-03-29T15:56:19Z"}

Config files from affected hosts
pki:
  ca: /etc/nebula/ca.crt
  cert: /etc/nebula/lighthouse.crt
  key: /etc/nebula/lighthouse.key

static_host_map:

lighthouse:
  am_lighthouse: true
  serve_dns: true
  dns:
    host: "::"
    port: 53

listen:
  host: "::"
  port: 4242

punchy:
  punch: true

sshd:
  enabled: false

relay:
  am_relay: false
  use_relays: false

tun:
  disabled: false
  dev: nebula0
  drop_local_broadcast: false
  drop_multicast: false
  tx_queue: 500
  mtu: 1300
  use_system_route_table: true

logging:
  level: info
  format: json

firewall:
  outbound_action: drop
  inbound_action: drop

  conntrack:
    tcp_timeout: 12m
    udp_timeout: 3m
    default_timeout: 10m

  outbound:
    # Allow all outbound traffic from this node
    - port: any
      proto: any
      host: any

  inbound:
    # Allow all inbound traffic to this node
    - port: any
      proto: any
      host: any

@Pandapip1 Please try setting lighthouse.dns.host to [::]

It looks like that fixed the issue. Could that be better documented, since it's inconsistent between that and listen.host?


[ILVerify] Make non-essential types optional

ILVerify type system fails when non-essential types like ByRefererence<T> are missing. These types should be optional for ILVerify instead.

I take this. Resolving this is a prerequisite for integrating ILVerify into our test suites.


Rename sub-commands to use more common names?

Re-think sub-command naming to better conform with 'standards'

Use init instead of create?
Use build instead of nothing?

@adamreichold What do you think?

@adamreichold What do you think?

I have no real preference with regards to init versus create. Having a build verb makes sense, but I think it should stay the default when omitted as it is by far the most common invocation.

I have no real preference with regards to init versus create. Having a build verb makes sense, but I think it should stay the default when omitted as it is by far the most common invocation.

Thanks for sharing your opinion. So if you don't see it as inconsistency, I will probably leave it as is. Also, I noticed that init does in most cases need no arguments, while create here does.

Thanks for sharing your opinion. So if you don't see it as inconsistency, I will probably leave it as is. Also, I noticed that init does in most cases need no arguments, while create here does.


add holocene timestamp and hardfork activation

Adding a New Chain
This PR updates the holocene timestamp of lisk sepolia to the registry.
Checklist

[x] I have run just codegen to ensure that the chainlist and other generated files are up-to-date and include my chain.

/ci authorize 6202f2ccf2d9e690e8e42365023f836f0c40e00a

/ci authorize 6202f2ccf2d9e690e8e42365023f836f0c40e00a


[CARBONDATA-2875]Two different threads overwriting the same carbondatafile.

Problem :- During concurrent load through two different threads in a external table for non transactional tables , two different threads were overwriting the same carbondata file.
Solution : This was happening because both the threads were assigning the same filename for the carbondata files so one was overwriting the other.This problem chances is  reduced by changing the timestamp attached to the filename from millisecond to nanosecond.
Be sure to do all of the following checklist to help us incorporate
your contribution quickly and easily:

[ ] Any interfaces changed?

[ ] Any backward compatibility impacted?

[ ] Document update required?

[x] Testing done
Manually.

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Can one of the admins verify this patch?

The probability of problem is only reduced not eliminated, right?

retest this please

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/8525/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/455/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/285/

add to whitelist

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/295/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/8540/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/470/

retest this please

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/314/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/8560/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/490/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/8777/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/532/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/1987/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/10239/


Ability to download from private repos

I'm submitting the ability to download private repos as a separate issue from #14 because I'm not sure how or if you would like to use it. I made a minor release (non-breaking) change to flipxfx/download-git-repo that allows for private repos.
You can still doing the following for a normal http download:
download('owner/repo', 'tmp', function(err) {})

But the new version allows you to use git-clone to download both public and private repos.
download('owner/repo', 'tmp', { clone: true }, function(err) {})

The problem is that using git clone can be a bit slower (at least for Bitbucket). Due to this I'm not sure if the better way would be to use clone for all template downloads or if there should be an option to specify clone in the cli itself. It's not a ton slower but I didn't want to assume you were ok with the additional time to enable private repo downloads.
These are my stats from the tests in flipxfx/download-git-repo showing http download vs clone.
    via github
      ✓ downloads the master branch by default (881ms)
      ✓ download branches too (428ms)
      ✓ downloads from github by default (734ms)
      ✓ clones the master branch by default (592ms)
      ✓ clones branches too (651ms)
    via bitbucket
      ✓ downloads the master branch by default (189ms)
      ✓ download branches too (175ms)
      ✓ clones the master branch by default (1370ms)
      ✓ clones branches too (2040ms)

I think something like vue init my/repo myproject --clone should be fine.


Update nutcracker branch

Purpose
Update nutcracker to match master
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.14 out of 15 committers have signed the CLA.:white_check_mark: Dilhasha:white_check_mark: KavinduZoysa:white_check_mark: LakshanWeerasinghe:white_check_mark: gayaldassanayake:white_check_mark: azinneera:white_check_mark: Shadow-Devil:white_check_mark: rdulmina:white_check_mark: dulajdilshan:white_check_mark: NipunaMadhushan:white_check_mark: TharmiganK:white_check_mark: lnash94:white_check_mark: mindula:white_check_mark: heshanpadmasiri:white_check_mark: keizer619:x: gimanthaYou have signed the CLA already but the status is still pending? Let us recheck it.


The program looking for screen tearing even if "Enable tear analysis" slider is disable

Hi! Trying a new version of the program. Faced with issue when the frame time graph is clean, but FPS graph report lower FPS. After some experiments I could find the problem. On the ninth second of the video at the top of the frame there is horizontal bulk. If I enable tear analyzes it think that it is a tear. But same behavior on FPS graph with tear detection disable. If I enable tear detection, but set "dismissed tear percentage" on 100%, the issue is gone. As far I can understand, "Enable tear analysis" slider does not turn off tear detection, but only turn off its visual representation.
YouTube Link

Hm, so it looks interesting. Could you maybe send me the raw video via wetransfer.com to<EMAIL_ADDRESS>

Hm, so it looks interesting. Could you maybe send me the raw video via wetransfer.com to<EMAIL_ADDRESS>

Sorry, it more than 2GB. Maybe Mega or other file transfer service?

Sorry, it more than 2GB. Maybe Mega or other file transfer service?

Sure a mega link is fine too.

Sure a mega link is fine too.

Mega

Mega

So first of all - I really need to include a time description in the export window. This would make debugging easier for the future.
The enable tear detection does indeed only "disable" the visualization, I still included the detection of the tears in the framerate as its very important to handle them somehow. Otherwise the framerate will just jump from from 30 to 60 if we just remove this part of the algorithm.
So from the first impression, I feel this shouldn't be detected as a tear at all, am I right with that? Cause if I check the video without delta-rendering it doesn't look like a tear to me. Would you propose is to update the tear algorithm that it doesn't affect this video?
The frame-index 568 -> 569 shows a "tear" with 29.9 FPS (pixel-difference set to 10) but in reality its just that the screen is moving perfectly from top to bottom which results in a false-positive. From this I actually found a bug in the code, which I will have to fix with then next release (https://github.com/cirquit/trdrop/blob/master/trdrop/headers/cpp_interface/frameprocessing.h#L400).
To make the correct 30 FPS shown you have to do the following:

set pixel-difference to 10
set dismissed tear percentage to 100% in the Tear tab in Options
disable tear analysis in General tab in Options

I will take a look at the tear detection algorithm as its really naive as this did video showed.

So first of all - I really need to include a time description in the export window. This would make debugging easier for the future.
The enable tear detection does indeed only "disable" the visualization, I still included the detection of the tears in the framerate as its very important to handle them somehow. Otherwise the framerate will just jump from from 30 to 60 if we just remove this part of the algorithm.
So from the first impression, I feel this shouldn't be detected as a tear at all, am I right with that? Cause if I check the video without delta-rendering it doesn't look like a tear to me. Would you propose is to update the tear algorithm that it doesn't affect this video?
The frame-index 568 -> 569 shows a "tear" with 29.9 FPS (pixel-difference set to 10) but in reality its just that the screen is moving perfectly from top to bottom which results in a false-positive. From this I actually found a bug in the code, which I will have to fix with then next release (https://github.com/cirquit/trdrop/blob/master/trdrop/headers/cpp_interface/frameprocessing.h#L400).
To make the correct 30 FPS shown you have to do the following:

set pixel-difference to 10
set dismissed tear percentage to 100% in the Tear tab in Options
disable tear analysis in General tab in Options

I will take a look at the tear detection algorithm as its really naive as this did video showed.


Cannot display Heads-up notification

If you are creating an issue for a BUG please fill out this information. If you are asking a question or requesting a feature you can delete the sections below.
Failure to fill out this information will result in this issue being closed. If you post a full stack trace in a bug it will be closed, please post it to http://gist.github.com and then post the link here.
Bug Information
Some devices can display Heads-up notification and badge (Xiaomi android 6.0) but LG g3 (android 6.0) cannot.
Could you help me, pls? Could I permission for it???
Version Number of Plugin:
Device Tested On: LG g3 6.0
Simulator Tested On:
Version of VS:
Version of Xamarin:
Versions of other things you are using:
Steps to reproduce the Behavior
Expected Behavior
Actual Behavior
Code snippet
Screenshots

As the documentation says you can implement your own PushNotificationHandler to achieve this kind of customization at the end of https://github.com/CrossGeeks/FirebasePushNotificationPlugin/blob/master/docs/FirebaseNotifications.md. Anyways I might add this to the DefaultPushNotificationHandler in the future.

Tks so much 👍


dune-release vs changelog heuristics

dune-release regularly checks the changelog for various information, and fails by saying "changelog can't be read" when it doesn't conform to the format.
In each case, you can circumvent this by giving various information (often, the message through -m). The tool should indicate explicitely when it's applying an heuristic, why it failed, and how to give the information directly.

This would be great!


Adsk Contrib - Improve ACEScc and XYZ built-in transforms

Improved the accuracy of the ACEScc built-in transform.
Adjust the normalization of CIE XYZ D65.

This is a copy of PR #1234 which was created on the wrong fork and was having merge problems.
Signed-off-by: Doug Walker<EMAIL_ADDRESS>

This is a copy of PR #1234, which the TSC approved to merge, so we will proceed to merge this today and close #1234 (which had merge issue due to the fork it was on).

This is a copy of PR #1234, which the TSC approved to merge, so we will proceed to merge this today and close #1234 (which had merge issue due to the fork it was on).


Revert "Feature upgrade to Xamarin Mac Universal"

Reverts fusetools/fuselibs-public#304

Oh, effin' hell, Github


Release/2.0.5

@falkorichter found out why the tests were not passing.  They were, we both were right, on the release branch they were, but the release never got merged into master. So can you please just do a quick double check and merge. I ran the tests on the relase branch and all is green. Once this is done i will delete your hotfix branch. Thanks.


Dispatch events on relevant events

Events that will be dispatched:

[ ] Recipient filtered out (before sending);
[ ] Recipient filtered out (after sending);
[ ] Bounce notification from AWS SES;
[ ] Complaint notification from AWS SES;
[ ] Delivery notification from AWS SES;

Requested in https://github.com/Aerendir/aws-ses-monitor-bundle/issues/31

I was missing this feature too and as a workaround, and copy/pasted the code into a controller since it was really hard, if even possible to actually inherit from Processors.
Since I create AWS identity and topic by other means I only need to listen for confirmation requests and notifications.
<?php

namespace App\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Doctrine\ORM\EntityManagerInterface;
use Aws\Sns\SnsClient;
use SerendipityHQ\Bundle\AwsSesMonitorBundle\Helper\MessageHelper;
use SerendipityHQ\Bundle\AwsSesMonitorBundle\SnsTypes;
use SerendipityHQ\Bundle\AwsSesMonitorBundle\Entity\Topic;

class SnsController extends Controller
{
    private $snsClient;
    private $messageHelper;
    private $entityManager;

    /**
     * @param EntityManagerInterface $entityManager
     * @param MessageHelper $messageHelper
     */
    public function __construct(SnsClient $snsClient, EntityManagerInterface $entityManager, MessageHelper $messageHelper) {
        $this->snsClient = $snsClient;
        $this->messageHelper = $messageHelper;
        $this->entityManager = $entityManager;
    }

    /**
     * Receive SNS events.
     *
     * @Route(name="webhook_sns", path="/hook/amazon-sns")
     * @Method({"POST"})
     *
     * @param Request $request
     * @return Response
     */
    public function processRequest(Request $request): Response
    {
        $messageTypeHeader = $request->headers->get('x-amz-sns-message-type');
        if (null === $messageTypeHeader) {
            throw new BadRequestHttpException('This request is invalid');
        }

        switch ($messageTypeHeader) {
            case SnsTypes::HEADER_TYPE_NOTIFICATION:
                return $this->processNotification($request);
            case SnsTypes::HEADER_TYPE_CONFIRM_SUBSCRIPTION:
                return $this->processSubscription($request);
            default:
                throw new \RuntimeException('We received a request with header "%s" but are not able to handle it. Please, add an handler to manage it.');
        }
    }

    public function processSubscription(Request $request): Response
    {
        $message = $this->messageHelper->buildMessageFromRequest($request);

        if (false === $this->messageHelper->validateNotification($message)) {
            return new Response('The message is invalid.', 403);
        }

        /** @var Topic|null $topic */
        $topic = $this->entityManager->getRepository(Topic::class)->findOneBy(['arn' => $message->offsetGet('TopicArn')]);

        if (null === $topic) {
            return new Response('Topic not found', 404);
        }

        $this->snsClient->confirmSubscription(
            [
                'TopicArn' => $topic->getArn(),
                'Token'    => $message->offsetGet('Token'),
            ]
        );

        $this->entityManager->flush();

        return new Response('OK', 200);
    }

    public function processNotification(Request $request): Response
    {
        $message = $this->messageHelper->buildMessageFromRequest($request);
        if (false === $this->messageHelper->validateNotification($message)) {
            return new Response('The message is invalid.', 403);
        }

        $notificationData = $this->messageHelper->extractMessageData($message);
        if (false === isset($notificationData['notificationType'])) {
            return new Response('Missed NotificationType.', 403);
        }

        if (SnsTypes::MESSAGE_TYPE_SUBSCRIPTION_SUCCESS === $notificationData['notificationType']) {
            return new Response('OK', 200);
        }

        $messageId = $notificationType['xxxxxx'];
        if (!$messageId) {
            return new Response('Missed Notification Message-ID.', 403);
        }

        switch ($notificationData['notificationType']) {
            case SnsTypes::MESSAGE_TYPE_BOUNCE:
                return $this->processBounce($notificationData);
            case SnsTypes::MESSAGE_TYPE_COMPLAINT:
                return $this->processComplaint($notificationData);
            case SnsTypes::MESSAGE_TYPE_DELIVERY:
                return $this->processDelivery($notificationData);
            default:
                return new Response('Notification type not understood', 403);
        }
    }

    public function processBounce(array $notification): Response
    {
        return new Response('', 200); // override
    }

    public function processComplaint(array $notification): Response
    {
        return new Response('', 200);
    }

    public function processDelivery(array $notification): Response
    {
        return new Response('', 200);
    }
}

MessageHelper and SnsTypes are a couple of define/wrapping lines
and I found that the need of database almost exclusively serves identity/topic creation and I'd personally prefer to store them inside config/, by allowing an arn yaml key under each identity.

That would allow people that only need confirmation+listen events to have an almost self-contained base class under 150 LoC


Can you provide a screenshot of the entire page?

Environment
Flutter version:
Plugin version:
Android version:
iOS version:
Xcode version:
Device information:
Description
What you'd like to happen:
Alternatives you've considered:
Images:

You just need to fill the rect field of ScreenshotConfiguration.

How i can do the screenshot of the whole page?

You just need to fill the rect field of ScreenshotConfiguration.

How can I do that?


More examples documentation

Hello,
Here is a little more documentation and cleanup of goproxy examples. It is far from done but this might help newcomers a bit. It certainly improved my understanding of goproxy by reading and tidying up some code. This is a cosmetic pass, some examples seem too complicated like the one logging HTTP content: the logging code, while interesting, seems a bit irrelevant and makes things harder by adding a lot of logic for clean process termination. I may go back to that once I have a clear picture of the remaining samples.
Also, what about gofmt'ing the code?

Regarding gofmt, generally speaking the code should be gofmt'd, but I probably missed something. I think the best approach to fix it, is to add precommit git hooks, and to fix everything in a single commit.

@pmezard
Improving documentation and fixing typos is a very important job, with a very little glamour.
I applaud your efforts.
Thanks!


Question about results on Egoschema

Hi, thanks for your great work! I have read your MovieChat+ paper and noticed that the Zero-shot QA Evaluation result of MovieChat on EgoSchema is 53.5, while the evaluation result in this CVPR paper(Koala: Key frame-conditioned long video-LLM https://arxiv.org/pdf/2404.04346) is much lower. I guess the possible reason is that the LLM used and the way to evaluate are different, so I would like to confirm what LLM you used for the EgoSchema result(Koala used llama2) and the specific implementation of the LangChain evaluation. Thank you very much!

For a fair comparison , we use llama.
EgoSchema is a VQA dataset with multiple choice, and it has been proved that when providing the model with choices, the order will effect the answer. We find that with the questoin only (we do not use any other prompt), the answer is more relative to the question and leads to a higher score. Once we get the answer provided by MovieChat, we ask LangChain to calculate the similarity with the multiple choice, and select the most similar one as our prediction.

Thanks for your kind response. Would you please provide the inference code which "asks LangChain to calculate the similarity with the multiple choices" so we can align the evaluation way better? Thanks a lot!

Unfortunately, we can't provided you with the code directly. For the evaluation code with LangChain, you can refer to https://python.langchain.com.cn/docs/modules/model_io/prompts/example_selectors/similarity, and we just take the answers as the "Input". Hope this can be helpful to you!

Hi, now the openai key is prohibited. May I ask what should I replace the 'OpenAIEmbeddings()' in this command with?
example_selector = SemanticSimilarityExampleSelector.from_examples(
examples,
OpenAIEmbeddings(),
Chroma,
k=1
)


Module API should allow subscription to specific event types

E.g. only state change events

Actually, state change events are the most interesting here, and a common use case would be to specify a set of URLs to "watch".  Should also be able to select Dsc vs Cfg (or Both).


Display release notes on the update screen

Now if we introduce some kind of breaking or significant change, people will see it on the release page.
Figured we can push one more release that supports PHP 7.4 & let this addition roll out so people will get some kind of warning before updating. Hopefully will avoid extra support tickets.

@BenNottelling When are we going to release without the word beta in the artifact?

@BenNottelling When are we going to release without the word beta in the artifact?

When BoxBilling is stable software and doesn't have major, known issues.

@BenNottelling When are we going to release without the word beta in the artifact?

Personal opinion, I don't want to do that in the near future. I don't want any small or big company to rely on an unstable software. Dropping the word "beta" won't change anything about it.

@BenNottelling When are we going to release without the word beta in the artifact?

When BoxBilling is stable software and doesn't have major, known issues.

@BenNottelling Sounds like a plan can you send or direct me to the known issues that are blocking it from being released as non-beta? @evrifaessa Can you give additional detail around why you would not want to do that in the near future or at least give a time frame of what near future is. Do either of you have any suggestions on how we could get to that point of comfort for each of you. I will try my best to assist the team to be able to create an artifact that can deliver non-beta with confidence. I work best on priority items and a list. I welcome your feedback and would like to create a time table for deliverables.

Can you give additional detail around why you would not want to do that in the near future or at least give a time frame of what near future is?

BoxBilling has over 10 known vulnerabilities and probably dozens more of unknown. I don't have enough experience to deal with all of them and not many people seem to be helping with that area. I assume you have access to huntr and probably already know about this.
And no, I can't give a time frame. This is open-source and we all are working on it whenever we manage to have some free time.


Couldn't create PS Drive

Before submitting the bug

[x] Ensure you can reproduce it on the latest released version (we release often)
[x] Verified this bug is not already reported in an issue
[x] Verified errors are not related to permissions
[x] Can reproduce in a clean PowerShell session (clean = PowerShell -NoProfile)

Describe the bug
When I run any command in a new PowerShell window, I get the following error:
WARNING: [11:32:34][<Unknown>] Couldn't create PS Drive | Cannot bind argument to parameter 'Root' because it is null.
Done some digging and found that postimport.ps Line 25 was throwing the warning.
The specific issue is that the line specifies [bool]. When removed, the line works correctly.

issue #131 has resolved this issue


Format and Mount fails

In the e2e tests, we are creating pod and attaching a volume through automation.
But, the pod is always in pending state.
The pod description shows the below error logs:
events:
  Type     Reason                  Age                   From                     Message
  ----     ------                  ----                  ----                     -------
  Normal   Scheduled               57m                   default-scheduler        Successfully assigned powervs-4827/powervs-volume-tester-9jnwq to madhan-multinode-kube-worker-2
  Normal   SuccessfulAttachVolume  57m                   attachdetach-controller  AttachVolume.Attach succeeded for volume "powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9"
  Warning  FailedMount             28m                   kubelet                  Unable to attach or mount volumes: unmounted volumes=[test-volume-1], unattached volumes=[default-token-292cb test-volume-1]: timed out waiting for the condition
  Warning  FailedMount             5m46s (x22 over 55m)  kubelet                  Unable to attach or mount volumes: unmounted volumes=[test-volume-1], unattached volumes=[test-volume-1 default-token-292cb]: timed out waiting for the condition
  Warning  FailedMount             20s (x23 over 55m)    kubelet                  MountVolume.MountDevice failed for volume "powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9" : rpc error: code = Internal desc = could not format "/dev/dm-15" and mnt it at "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9/globalmount"

The stage operation in the csi plugin  on the node is failing.
Node plugin logs:
ERROR: logging before flag.Parse: I1115 05:56:31.330343       1 fibrechannel.go:243] Attaching fibre channel volume
I1115 05:56:37.117604       1 node.go:348] NodeGetCapabilities: called with args {XXX_NoUnkeyedLiteral:{} XXX_unrecognized:[] XXX_sizecache:0}
I1115 05:57:18.113694       1 node.go:140] NodeStageVolume: find device path for wwn<PHONE_NUMBER>830198a000000000000c48 -> /dev/dm-15
I1115 05:57:18.114196       1 node.go:175] NodeStageVolume: formatting /dev/dm-15 and mounting at /var/lib/kubelet/plugins/kubernetes.io/csi/pv/powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9/globalmount with fstype ext4
I1115 05:57:18.114210       1 mount_linux.go:405] Attempting to determine if disk "/dev/dm-15" is formatted using blkid with args: ([-p -s TYPE -s PTTYPE -o export /dev/dm-15])
I1115 05:57:18.115941       1 mount_linux.go:408] Output: "", err: exit status 2
I1115 05:57:18.115993       1 mount_linux.go:366] Disk "/dev/dm-15" appears to be unformatted, attempting to format as type: "ext4" with options: [-F -m0 /dev/dm-15]
E1115 05:57:39.039401       1 mount_linux.go:372] format of disk "/dev/dm-15" failed: type:("ext4") target:("/var/lib/kubelet/plugins/kubernetes.io/csi/pv/powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9/globalmount") options:("defaults") errcode:(exit status 1) output:(mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: failed - Remote I/O error
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 35dad7ea-e90d-490d-891e-fed7c2524ebd
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: mkfs.ext4: Input/output error while writing out and closing file system
)
E1115 05:57:39.039442       1 driver.go:114] GRPC error: rpc error: code = Internal desc = could not format "/dev/dm-15" and mnt it at "/var/lib/kubelet/plugins/kubernetes.io/csi/pv/powervs-4827-powervs.csi.ibm.com-preprovsioned-pv-llsq9/globalmount"

Error snippet:
options:("defaults") errcode:(exit status 1) output:(mke2fs 1.44.5 (15-Dec-2018)
Discarding device blocks: failed - Remote I/O error
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: 35dad7ea-e90d-490d-891e-fed7c2524ebd
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: mkfs.ext4: Input/output error while writing out and closing file system
)

Formatting the volume attached is failing during stage volume operation.

Format operation for manually created and attached volume is passing as epxected.
[root@madhan-multinode-kube-worker-2 ~]# mkfs -t ext4 -F -m0 /dev/dm-16
mke2fs 1.45.6 (20-Mar-2020)
/dev/dm-16 contains a ext4 file system
	created on Mon Nov 15 06:53:42 2021
Discarding device blocks: done
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: c2086ebc-0d1d-4e46-96b3-1b02dce394e3
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376

Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

However the format fails for the disk created from automation
[root@madhan-multinode-kube-worker-2 ~]# mkfs -t ext4 -F -m0 /dev/dm-15
mke2fs 1.45.6 (20-Mar-2020)
Discarding device blocks: failed - Remote I/O error
Creating filesystem with 2621440 4k blocks and 655360 inodes
Filesystem UUID: e744392c-1753-4391-ab1f-75fff6a7660f
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: mkfs.ext4: Input/output error while writing out and closing file system

Disk details of a manually created volume:
{
         "bootVolume":false,
         "bootable":false,
         "creationDate":"2021-11-15T11:26:58.000Z",
         "diskType":"tier3",
         "href":"/pcloud/v1/cloud-instances/7031b049297e4588a3eafb21335d6a2b/volumes/df20f2b4-e82d-4d3a-a519-c137ca57b93b",
         "lastUpdateDate":"2021-11-15T11:27:57.000Z",
         "name":"testvol2",
         "pvmInstanceIDs":[
            "49d8a35d-40ff-46d3-8091-0553183e7daa"
         ],
         "shareable":false,
         "size":4,
         "state":"in-use",
         "volumeID":"df20f2b4-e82d-4d3a-a519-c137ca57b93b",
         "volumePool":"Tier3-Flash-2",
         "volumeType":"Tier3-Flash-2",
         "wwn":"6005076810830198A000000000000C67"
      }

Disk details of the volume created from automation:
     {
         "bootVolume":false,
         "bootable":false,
         "creationDate":"2021-11-15T05:32:02.000Z",
         "diskType":"tier3",
         "href":"/pcloud/v1/cloud-instances/7031b049297e4588a3eafb21335d6a2b/volumes/0a6edf14-1a53-4ee3-9a24-fb87ecc5088e",
         "lastUpdateDate":"2021-11-15T05:32:32.000Z",
         "name":"pvc-2222243566121843473",
         "pvmInstanceIDs":[
            "49d8a35d-40ff-46d3-8091-0553183e7daa"
         ],
         "shareable":false,
         "size":4,
         "state":"in-use",
         "volumeID":"0a6edf14-1a53-4ee3-9a24-fb87ecc5088e",
         "volumePool":"Tier3-Flash-2",
         "volumeType":"Tier3-Flash-2",
         "wwn":"6005076810830198A000000000000C48"
      }

dimes logs shows the Buffer I/O error on format failed disks
[3383621.275952] Buffer I/O error on dev dm-27, logical block 6291333, async page read

Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

I see the number of blocks for which you are hitting with error got double the count of blocks compared to passing volume, can you create the same size volume with UI/CLI and retry.
one more way of reproducing this issue is also by creating/mounting a bunch of volumes from CLI/REST API and retrying the steps.

@mkumatag
Should I create multiple volumes and try formatting?

@mkumatag
Should I create multiple volumes and try formatting?

yes

Created 10 disks together from UI and tried formatting this one by one.
Formats were passing.

May be try back to back operation like create , attach, mount only one volume..

Additional note:
This issue is not specific to one particular test case in the e2e tests.
If a test case fails due to format issue, it passes when I re run the same case.

demsg
[507312.915299] scsi_io_completion_action: 64 callbacks suppressed
[507312.915307] sd 3:0:1:22: [sdgx] tag#37 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507312.915342] sd 3:0:1:22: [sdgx] tag#37 Sense Key : Illegal Request [current]
[507312.915353] sd 3:0:1:22: [sdgx] tag#37 Add. Sense: Logical block address out of range
[507312.915365] sd 3:0:1:22: [sdgx] tag#37 CDB: Read(10) 28 00 01 3f ff 80 00 00 80 00
[507312.915379] print_req_error: 138 callbacks suppressed
[507312.915381] blk_update_request: critical target error, dev sdgx, sector 20971392 op 0x0:(READ) flags 0x4200 phys_seg 1 prio class 0
[507312.915417] blk_update_request: critical target error, dev dm-52, sector 20971392 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[507312.915613] sd 2:0:1:22: [sdgv] tag#51 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507312.915624] sd 2:0:1:22: [sdgv] tag#51 Sense Key : Illegal Request [current]
[507312.915634] sd 2:0:1:22: [sdgv] tag#51 Add. Sense: Logical block address out of range
[507312.915644] sd 2:0:1:22: [sdgv] tag#51 CDB: Read(10) 28 00 01 3f ff 80 00 00 80 00
[507312.915653] blk_update_request: critical target error, dev sdgv, sector 20971392 op 0x0:(READ) flags 0x4200 phys_seg 1 prio class 0
[507312.915670] blk_update_request: critical target error, dev dm-52, sector 20971392 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[507312.915681] buffer_io_error: 1016 callbacks suppressed
[507312.915683] Buffer I/O error on dev dm-52, logical block 163839, async page read
[507322.033993] sd 3:0:1:22: [sdgx] tag#82 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034005] sd 3:0:1:22: [sdgx] tag#82 Sense Key : Illegal Request [current]
[507322.034018] sd 3:0:1:22: [sdgx] tag#82 Add. Sense: Logical block address out of range
[507322.034025] sd 3:0:1:22: [sdgx] tag#82 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034031] blk_update_request: critical target error, dev sdgx, sector 8388608 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034045] sd 3:0:1:22: [sdgx] tag#83 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034052] sd 3:0:1:22: [sdgx] tag#83 Sense Key : Illegal Request [current]
[507322.034057] sd 3:0:1:22: [sdgx] tag#83 Add. Sense: Logical block address out of range
[507322.034063] sd 3:0:1:22: [sdgx] tag#83 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034069] blk_update_request: critical target error, dev sdgx, sector 8396800 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034078] sd 4:0:1:22: [sdgz] tag#70 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034083] sd 4:0:1:22: [sdgz] tag#70 Sense Key : Illegal Request [current]
[507322.034089] sd 4:0:1:22: [sdgz] tag#70 Add. Sense: Logical block address out of range
[507322.034094] sd 4:0:1:22: [sdgz] tag#70 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034099] blk_update_request: critical target error, dev sdgz, sector 8392704 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034107] sd 4:0:1:22: [sdgz] tag#71 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034113] sd 4:0:1:22: [sdgz] tag#71 Sense Key : Illegal Request [current]
[507322.034118] sd 4:0:1:22: [sdgz] tag#71 Add. Sense: Logical block address out of range
[507322.034123] sd 4:0:1:22: [sdgz] tag#71 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034129] blk_update_request: critical target error, dev sdgz, sector 8400896 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034136] sd 3:0:1:22: [sdgx] tag#88 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034142] sd 3:0:1:22: [sdgx] tag#88 Sense Key : Illegal Request [current]
[507322.034147] sd 3:0:1:22: [sdgx] tag#88 Add. Sense: Logical block address out of range
[507322.034151] sd 3:0:1:22: [sdgx] tag#88 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034157] blk_update_request: critical target error, dev sdgx, sector 8409088 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034165] blk_update_request: critical target error, dev dm-52, sector 8388608 op 0x3:(DISCARD) flags 0x4800 phys_seg 0 prio class 0
[507322.034173] sd 4:0:1:22: [sdgz] tag#72 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034178] sd 4:0:1:22: [sdgz] tag#72 Sense Key : Illegal Request [current]
[507322.034183] sd 4:0:1:22: [sdgz] tag#72 Add. Sense: Logical block address out of range
[507322.034188] sd 4:0:1:22: [sdgz] tag#72 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034193] blk_update_request: critical target error, dev sdgz, sector 8413184 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034201] sd 2:0:1:22: [sdgv] tag#55 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034207] sd 2:0:1:22: [sdgv] tag#55 Sense Key : Illegal Request [current]
[507322.034213] sd 2:0:1:22: [sdgv] tag#55 Add. Sense: Logical block address out of range
[507322.034218] sd 2:0:1:22: [sdgv] tag#55 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034223] blk_update_request: critical target error, dev sdgv, sector 8404992 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034234] sd 2:0:1:22: [sdgv] tag#54 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.034241] sd 2:0:1:22: [sdgv] tag#54 Sense Key : Illegal Request [current]
[507322.034246] sd 2:0:1:22: [sdgv] tag#54 Add. Sense: Logical block address out of range
[507322.034251] sd 2:0:1:22: [sdgv] tag#54 CDB: Unmap/Read sub-channel 42 00 00 00 00 00 00 00 18 00
[507322.034256] blk_update_request: critical target error, dev sdgv, sector 8417280 op 0x3:(DISCARD) flags 0x4a00 phys_seg 0 prio class 0
[507322.034263] blk_update_request: critical target error, dev dm-52, sector 8396800 op 0x3:(DISCARD) flags 0x4800 phys_seg 0 prio class 0
[507322.705820] sd 2:0:1:22: [sdgv] tag#54 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.705834] sd 2:0:1:22: [sdgv] tag#54 Sense Key : Illegal Request [current]
[507322.705840] sd 2:0:1:22: [sdgv] tag#54 Add. Sense: Logical block address out of range
[507322.705846] sd 2:0:1:22: [sdgv] tag#54 CDB: Read(10) 28 00 01 00 00 00 00 00 80 00
[507322.706028] sd 3:0:1:22: [sdgx] tag#89 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE cmd_age=0s
[507322.706034] sd 3:0:1:22: [sdgx] tag#89 Sense Key : Illegal Request [current]
[507322.706039] sd 3:0:1:22: [sdgx] tag#89 Add. Sense: Logical block address out of range
[507322.706044] sd 3:0:1:22: [sdgx] tag#89 CDB: Read(10) 28 00 01 00 00 00 00 00 80 00
[507322.767034] Buffer I/O error on dev dm-52, logical block 67624, lost async page write
[507322.767053] Buffer I/O error on dev dm-52, logical block 67625, lost async page write
[507322.767061] Buffer I/O error on dev dm-52, logical block 67626, lost async page write
[507322.767067] Buffer I/O error on dev dm-52, logical block 67627, lost async page write
[507322.767073] Buffer I/O error on dev dm-52, logical block 67628, lost async page write
[507322.767079] Buffer I/O error on dev dm-52, logical block 67629, lost async page write
[507322.767085] Buffer I/O error on dev dm-52, logical block 67630, lost async page write
[507322.767091] Buffer I/O error on dev dm-52, logical block 67631, lost async page write
[507322.767098] Buffer I/O error on dev dm-52, logical block 67632, lost async page write
[507322.767105] Buffer I/O error on dev dm-52, logical block 67633, lost async page write

Note: Adding a slight delay before formatting the disk may solve the issue for a thick provisioned disk.

/remove-lifecycle rotten

/remove-lifecycle stale

This issue is not seen recently. Lets wait and see if the issue is reproduced while running e2e tests.
/remove-lifecycle stale

This issue is not seen recently. Lets wait and see if the issue is reproduced while running e2e tests.
/remove-lifecycle stale

/remove-lifecycle stale
We are not seeing mount errors in the latest code when running e2e locally. That said, IMO we should wait till we have e2e CI running to confirm the issue is in fact fixed.

/close
This issue was never seen again after the code improvement last year.


cmd/compile: //go:build file version ignored when calling generic fn which has related type params [1.21 only]

Go version
go version go1.21.5 darwin/amd64
What operating system and processor architecture are you using (go env)?
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/Users/corysnider/Library/Caches/go-build'
GOENV='/Users/corysnider/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Volumes/Workspace/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Volumes/Workspace'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/Cellar/go/1.21.5/libexec'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/Cellar/go/1.21.5/libexec/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.21.5'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='cc'
CXX='c++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/8p/tzn5bkn967vfgttpr2d2kpjm0000gq/T/go-build2320458225=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?
$ cat repro.go
//go:build go1.18

package repro

func genericfn[S ~[]E, E any](s S) S {
	return s
}

func do() []string {
	return genericfn([]string{})
}
$ go tool compile -lang=go1.16 repro.go

What did you expect to see?
Compilation succeeds. It succeeds with go version devel go1.22-b60bf8f8e1 Fri Dec 15 19:35:21 2023 +0000 darwin/amd64.
What did you see instead?
embedding interface element ~[]string requires go1.18 or later (-lang was set to go1.16; check go.mod)

This looks like a typechecker issue. My understanding of 804d786a30c664df63ef1e0c95d44772063afae1's commit message is that this should be valid. (Not sure if there's more permanent documentation describing the expected behavior here; for example, I don't see any mention of the backwards compatibility logic for M >= 21 at https://pkg.go.dev/cmd/go. /cc @rsc)
/cc @griesemer @findleyr

I cannot reproduce this. With
$ go version
go version go1.22rc1 darwin/amd64

and x.go:
$ cat x.go
//go:build go1.18

package repro

func genericfn[S ~[]E, E any](s S) S {
	return s
}

func do() []string {
	return genericfn([]string{})
}

compilation succeeds:
$ go tool compile -lang=go1.16 x.go
$

To double-check, I added a print statement in the relevant code section, and it does indeed select go1.18 for that file.
Please verify that you are indeed using a new compiler version.
I'm going to close this for now. Feel free to re-open if you have additional evidence, thanks.

@griesemer I know that Go 1.22 is not affected. I said as much in the issue report. The issue is reproducible on Go 1.21.5.

@corhere Ah. Apologies for not reading more carefully.
Hm, the relevant code didn't exist for 1.21.5 I believe. Not sure if we can easily/should backport.
Reopening, to determine next steps.

Confirming that this issue exists for go1.21.5.
It appears that we don't have correct position information when computing a type set and then the type checker doesn't use the file-specific version information. This is definitely a bug.
Smaller reproducer:
package p

func f[S ~[]E, E any](S) {}

func _() {
	f([]string{})
}

@griesemer This appears to reproduce with Go 1.20.13 as well, is that right?
If so, our backport policy is to support last two Go versions equally (see here). Will the backport CL you've prepared work on release-branch.go1.20 as well? Please see https://go.dev/wiki/MinorReleases for information on the backport process. Specifically, this issue is in the Go1.22 milestone, but you should ask gopherbot to create tracking backport issues, which will then be reviewed. Thanks.

We will fix this issue in the 1.22 branch (the code is incorrect there as well, though the issue seems to be masked) and then backport.

@gopherbot Please consider this for backport to 1.21 and 1.20, this causes a compilation failure for code that chooses to select a future Go version in one of its source files.

Forward-compatibility (specifically, the ability to have a go:build line indicate a Go version that is younger than the Go version used in the .mod file) was introduced with Go 1.21.
The fix for this issue does not need to (and cannot) be backported to 1.20.

This was fixed at tip (1.22).


Update meta.yaml

Checklist

[x] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

py4DSTEM of conda-forge is substantially out of date compared to the pypi version. Here I adapted the setup.py recipe.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

requirements: run: dill == 0.3.3 should not contain a space between relational operator and the version, i.e. dill ==0.3.3
requirements: run: h5py == 2.10.0 should not contain a space between relational operator and the version, i.e. h5py ==2.10.0
requirements: run: ipywidgets == 7.6.3 should not contain a space between relational operator and the version, i.e. ipywidgets ==7.6.3
requirements: run: ncempy == 1.8.1 should not contain a space between relational operator and the version, i.e. ncempy ==1.8.1
requirements: run: numba == 0.49.1 should not contain a space between relational operator and the version, i.e. numba ==0.49.1
requirements: run: numpy == 1.19 should not contain a space between relational operator and the version, i.e. numpy ==1.19
requirements: run: matplotlib == 3.4.2 should not contain a space between relational operator and the version, i.e. matplotlib ==3.4.2
requirements: run: pyqt == 5.13 should not contain a space between relational operator and the version, i.e. pyqt ==5.13
requirements: run: pyqtgraph == 0.11 should not contain a space between relational operator and the version, i.e. pyqtgraph ==0.11
requirements: run: python >= 3.6 should not contain a space between relational operator and the version, i.e. python >=3.6
requirements: run: qtconsole == 4.7.7 should not contain a space between relational operator and the version, i.e. qtconsole ==4.7.7
requirements: run: requests == 2.25.1 should not contain a space between relational operator and the version, i.e. requests ==2.25.1
requirements: run: scikit-image == 0.17.2 should not contain a space between relational operator and the version, i.e. scikit-image ==0.17.2
requirements: run: scikit-learn == 0.23.2 should not contain a space between relational operator and the version, i.e. scikit-learn ==0.23.2
requirements: run: scipy == 1.5.2 should not contain a space between relational operator and the version, i.e. scipy ==1.5.2
requirements: run: tqdm == 4.46.1 should not contain a space between relational operator and the version, i.e. tqdm ==4.46.1

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@jan-janssen even if I get the build to work I would wait to merge until there is some feedback on the dependency issue from the developer, see https://github.com/py4dstem/py4DSTEM/issues/173 . It might be that a newer version of a package breaks it and it's not clear what the boundaries of compatibility are since they hard-locked the dependencies in setup.py


Create placeholder page for incident-response-application.rst

Just a placeholder page so that a redirect we're setting up doesn't result in a 404. Merging once build succeeds,

Actually, looks like it needs one reviewer, so requesting as such


Add script to convert OpenFOAM mesh to SU2

See http://www.cfd-online.com/Forums/su2/127445-tool-convert-openfoam-mesh-su2-mesh-2d-3d.html
Will need a license to use that.

May be cool to fully convert the case to run with SU2 rather than just the mesh.


Delegated Private Matching for Compute (DPMC)

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs change / refactoring / dependency upgrade

Motivation and Context / Related issue

Extending multi-key Private-ID to Delegated Private Matching for Compute (DPMC) which supports multiple partners with the help of a helper/delegate server.

Company has a csv with identifiers (e.g., etc/example/dpmc/Ex0_company.csv).
Partner has a csv with identifiers (e.g., etc/example/dpmc/Ex0_partner_1.csv) and a csv with features (e.g., etc/example/dpmc/Ex0_partner_1_features.csv).

Extending DPMC to Delegated Private Matching for Compute with Secure Shuffling (DSPMC) which supports multiple partners with the help of two helpers/delegate servers.

Company has a csv with identifiers (e.g., etc/example/dspmc/Ex0_company.csv).
Partner has a csv with identifiers (e.g., etc/example/dspmc/Ex0_partner_1.csv) and a csv with features (e.g., etc/example/dspmc/Ex0_partner_1_features.csv).

How Has This Been Tested (if it applies)
Tests are located in etc/example/dpmc and etc/example/dspmc.
Checklist

[x] The documentation is up-to-date with the changes I made.
[x] I have read the CONTRIBUTING document and completed the CLA (see CONTRIBUTING).
[x] All tests passed, and additional code has been covered with new tests.

Can you why we get
unresolved import `aws_sdk_s3::error::NoSuchUpload`

consider importing one of these items instead
private_id_protocols/private_id/common/src/s3_path.rs
in lines 13 to 17?

@shubho I updated the AWS crates, it should be fine now. Can you try again?

Failed to resolve
failed to resolve: use of undeclared crate or module `fernet`

in
private_id_protocols/private_id/protocol/src/dpmc/helper.rs
private_id_protocols/private_id/protocol/src/dpmc/partner.rs

can't find crate for `base64`

in
private_id_protocols/private_id/protocol/src/dpmc/helper.rs
private_id_protocols/private_id/protocol/src/dpmc/partner.rs

@shubho I updated these two crates to their latest versions. Their API had changed a bit. Let's see if that was the issue.

I still get the same errors - the fernet errors are in
line 113 and 174 private_id/protocol/src/dpmc/helper.rs
line 182 and 285 private_id/protocol/src/dpmc/partner.rs
And the base64 errors are in
line 4 in private_id/protocol/src/dpmc/helper.rs
line 4 in private_id/protocol/src/dpmc/partner.rs

I made some changes, can you check again? What is the command that generates these errors? I can't replicate them locally.

Same problem when you do use base64 or use fernet they aren't resolving - do you need to do extern? The lines where you do use base64 (or fernet) - I get unresolved import base64 etc

That's odd, both dependencies are in Cargo.toml and I have use statements. Based on this use should be sufficient. I had it with extern crate .. before and it was also causing the error.
Is there a way to find the specific Rust version and the command that generates the error?

I think the problem is the base64 and fernet packages don't exist in our internal build system - this will take longer than expected I think

I see, I changed the way we're pulling them in Cargo.toml. Now, we're pulling them from GitHub directly so this might solve the issue. Can you try again?

Updated fernet, and base64 should be 0.13. We should do another pull to update.


Upgrading to Ecto 3: Error Postgrex expected an integer got DateTime and vice versa

Environment

Elixir version (elixir -v): Elixir 1.7.1
Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.): PostgreSQL 9.4
Ecto version (mix deps): ecto_sql 3.0.2
Database adapter and version (mix deps): postgrex 0.14.1
Operating system: Linux

Current behavior
I am composing a query with a dynamic amount of select rows.
In Ecto 2 I had this working code:
def user_transaction_graph_analytics(user_id, ranges) do
    query = (
      from q in Transaction,
      join: p in assoc(q, :program), on: q.program_id == p.id and p.user_id == ^user_id,
      select: %{}
    ) |> append_select(ranges)

    result = query |> Repo.one!
  end

  def append_select(query, [%{"start" => start_date, "end" => end_date, "name" => name}|ranges]) do
    date_start = Timex.from_unix(start_date, :milliseconds)
    date_end = Timex.from_unix(end_date, :milliseconds)
    query = query |> select_merge([q], %{name: fragment("SUM(CASE WHEN ? > ? AND ? < ? THEN 1 ELSE 0 END)", field(q, :inserted_at), ^date_start, field(q, :inserted_at), ^date_end)})
    append_select(query, ranges)
  end

  def append_select(query, []), do: query

Now when I upgraded to Ecto 3 this gives the following error (on the select_merge line):
Postgrex expected an integer in -9223372036854775808..9223372036854775807, got #DateTime<2019-02-02 00:00:00.000000Z>

So then I tried to pass the ^date_start and ^date_end as an integer and this resulted in this error:
Postgrex expected %DateTime{} or %NaiveDateTime{}, got<PHONE_NUMBER>000

I then tried to cast my dates like this:
type(^date_start, :utc_datetime)

But this resulted in the first error. I also tried the other types (usec)
I also defined the timestamp opts in my Schema (Transaction)
@timestamps_opts [type: :utc_datetime_usec]
and also tried
@timestamps_opts [type: :utc_datetime]
But this changed nothing.
Expected behavior
I should be able to pass my parsed dates in my select_merge query.
For now, I have made below workaround which does work in Ecto 3, but this executes a query for every range.
def user_transaction_graph_analytics(user_id, ranges) do
    new_ranges = Enum.map(ranges, fn range ->
      date_start = Timex.from_unix(range["start"], :milliseconds)
      date_end = Timex.from_unix(range["end"], :milliseconds)

      query = (
        from q in Transaction,
        join: p in assoc(q, :program), on: q.program_id == p.id and p.user_id == ^user_id,
        select: %{hello: sum(fragment("CASE WHEN ? > ? AND ? < ? THEN 1 ELSE 0 END", field(q, :inserted_at), ^date_start, field(q, :inserted_at), ^date_end))}
      )

      (query |> Repo.one!).hello
    end)

    new_ranges
  end

Strange that i can pass my dates now without it throwing an error.
Extra information:
inserted_at was created in my schema with timestamps() function.
inserted_at is in Postgres of type: timestamp without time zone

Can you please paste the query logged to console in Ecto 2 and in Ecto 3? I wonder if they are the same or if there are differences.
Also, if you change the query to this:
%{name: field(q, :inserted_at) > ^date_start and field(q, :inserted_at) < date_end}

Does it fix the issue? In a nutshell, i am trying to figure out if the error is in postgres, postsgrex or Ecto.
Thanks!

This is the query which is being logged/executed with Ecto 3:
SELECT SUM(CASE WHEN t0."inserted_at" > $1 AND t0."inserted_at" < $2 THEN 1 ELSE 0 END) FROM "transactions" AS t0 INNER JOIN "programs" AS p1 ON (p1."id" = t0."program_id") AND ((t0."program_id" = p1."id") AND (p1."user_id" = $3)) [#DateTime<2019-02-01 00:00:00.000Z>, #DateTime<2019-02-01 23:59:59.000Z>, #DateTime<2019-02-02 00:00:00.000Z>, #DateTime<2019-02-02 23:59:59.000Z>, #DateTime<2019-02-03 00:00:00.000Z>, #DateTime<2019-02-03 23:59:59.000Z>, #DateTime<2019-02-04 00:00:00.000Z>, #DateTime<2019-02-04 23:59:59.000Z>, #DateTime<2019-02-05 00:00:00.000Z>, #DateTime<2019-02-05 23:59:59.000Z>, #DateTime<2019-02-06 00:00:00.000Z>, #DateTime<2019-02-06 23:59:59.000Z>, #DateTime<2019-02-07 00:00:00.000Z>, #DateTime<2019-02-07 23:59:59.000Z>, #DateTime<2019-02-08 00:00:00.000Z>, #DateTime<2019-02-08 23:59:59.000Z>, #DateTime<2019-02-09 00:00:00.000Z>, #DateTime<2019-02-09 23:59:59.000Z>, #DateTime<2019-02-10 00:00:00.000Z>, #DateTime<2019-02-10 23:59:59.000Z>, #DateTime<2019-02-11 00:00:00.000Z>, #DateTime<2019-02-11 23:59:59.000Z>, #DateTime<2019-02-12 00:00:00.000Z>, #DateTime<2019-02-12 23:59:59.000Z>, #DateTime<2019-02-13 00:00:00.000Z>, #DateTime<2019-02-13 23:59:59.000Z>, #DateTime<2019-02-14 00:00:00.000Z>, #DateTime<2019-02-14 23:59:59.000Z>, #DateTime<2019-02-15 00:00:00.000Z>, #DateTime<2019-02-15 23:59:59.000Z>, #DateTime<2019-02-16 00:00:00.000Z>, #DateTime<2019-02-16 23:59:59.000Z>, #DateTime<2019-02-17 00:00:00.000Z>, #DateTime<2019-02-17 23:59:59.000Z>, #DateTime<2019-02-18 00:00:00.000Z>, #DateTime<2019-02-18 23:59:59.000Z>, #DateTime<2019-02-19 00:00:00.000Z>, #DateTime<2019-02-19 23:59:59.000Z>, #DateTime<2019-02-20 00:00:00.000Z>, #DateTime<2019-02-20 23:59:59.000Z>, #DateTime<2019-02-21 00:00:00.000Z>, #DateTime<2019-02-21 23:59:59.000Z>, #DateTime<2019-02-22 00:00:00.000Z>, #DateTime<2019-02-22 23:59:59.000Z>, #DateTime<2019-02-23 00:00:00.000Z>, #DateTime<2019-02-23 23:59:59.000Z>, #DateTime<2019-02-24 00:00:00.000Z>, #DateTime<2019-02-24 23:59:59.000Z>, #DateTime<2019-02-25 00:00:00.000Z>, #DateTime<2019-02-25 23:59:59.000Z>, ...]
I'll get back on the query which is executed on Ecto 2.

Okay I downgraded back to Ecto 2 but got the same error. So the error might happen now because I also upgraded Postgrex.
I managed to get it all working by applying my old mix.lock version. With these versions:
Postgrex 0.13.5
and
Ecto 2.2.11
Following query is executed now:
SELECT SUM(CASE WHEN t0."inserted_at" > $1 AND t0."inserted_at" < $2 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $3 AND t0."inserted_at" < $4 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $5 AND t0."inserted_at" < $6 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $7 AND t0."inserted_at" < $8 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $9 AND t0."inserted_at" < $10 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $11 AND t0."inserted_at" < $12 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $13 AND t0."inserted_at" < $14 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $15 AND t0."inserted_at" < $16 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $17 AND t0."inserted_at" < $18 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $19 AND t0."inserted_at" < $20 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $21 AND t0."inserted_at" < $22 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $23 AND t0."inserted_at" < $24 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $25 AND t0."inserted_at" < $26 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $27 AND t0."inserted_at" < $28 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $29 AND t0."inserted_at" < $30 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $31 AND t0."inserted_at" < $32 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $33 AND t0."inserted_at" < $34 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $35 AND t0."inserted_at" < $36 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $37 AND t0."inserted_at" < $38 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $39 AND t0."inserted_at" < $40 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $41 AND t0."inserted_at" < $42 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $43 AND t0."inserted_at" < $44 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $45 AND t0."inserted_at" < $46 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $47 AND t0."inserted_at" < $48 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $49 AND t0."inserted_at" < $50 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $51 AND t0."inserted_at" < $52 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $53 AND t0."inserted_at" < $54 THEN 1 ELSE 0 END), SUM(CASE WHEN t0."inserted_at" > $55 AND t0."inserted_at" < $56 THEN 1 ELSE 0 END) FROM "transactions" AS t0 INNER JOIN "programs" AS p1 ON (p1."id" = t0."program_id") AND ((t0."program_id" = p1."id") AND (p1."user_id" = $57)) [{{2019, 2, 1}, {0, 0, 0, 0}}, {{2019, 2, 1}, {23, 59, 59, 0}}, {{2019, 2, 2}, {0, 0, 0, 0}}, {{2019, 2, 2}, {23, 59, 59, 0}}, {{2019, 2, 3}, {0, 0, 0, 0}}, {{2019, 2, 3}, {23, 59, 59, 0}}, {{2019, 2, 4}, {0, 0, 0, 0}}, {{2019, 2, 4}, {23, 59, 59, 0}}, {{2019, 2, 5}, {0, 0, 0, 0}}, {{2019, 2, 5}, {23, 59, 59, 0}}, {{2019, 2, 6}, {0, 0, 0, 0}}, {{2019, 2, 6}, {23, 59, 59, 0}}, {{2019, 2, 7}, {0, 0, 0, 0}}, {{2019, 2, 7}, {23, 59, 59, 0}}, {{2019, 2, 8}, {0, 0, 0, 0}}, {{2019, 2, 8}, {23, 59, 59, 0}}, {{2019, 2, 9}, {0, 0, 0, 0}}, {{2019, 2, 9}, {23, 59, 59, 0}}, {{2019, 2, 10}, {0, 0, 0, 0}}, {{2019, 2, 10}, {23, 59, 59, 0}}, {{2019, 2, 11}, {0, 0, 0, 0}}, {{2019, 2, 11}, {23, 59, 59, 0}}, {{2019, 2, 12}, {0, 0, 0, 0}}, {{2019, 2, 12}, {23, 59, 59, 0}}, {{2019, 2, 13}, {0, 0, 0, 0}}, {{2019, 2, 13}, {23, 59, 59, 0}}, {{2019, 2, 14}, {0, 0, 0, 0}}, {{2019, 2, 14}, {23, 59, 59, 0}}, {{2019, 2, 15}, {0, 0, 0, 0}}, {{2019, 2, 15}, {23, 59, 59, 0}}, {{2019, 2, 16}, {0, 0, 0, 0}}, {{2019, 2, 16}, {23, 59, 59, 0}}, {{2019, 2, 17}, {0, 0, 0, 0}}, {{2019, 2, 17}, {23, 59, 59, 0}}, {{2019, 2, 18}, {0, 0, 0, 0}}, {{2019, 2, 18}, {23, 59, 59, 0}}, {{2019, 2, 19}, {0, 0, 0, 0}}, {{2019, 2, 19}, {23, 59, 59, 0}}, {{2019, 2, 20}, {0, 0, 0, 0}}, {{2019, 2, 20}, {23, 59, 59, 0}}, {{2019, 2, 21}, {0, 0, 0, 0}}, {{2019, 2, 21}, {23, 59, 59, 0}}, {{2019, 2, 22}, {0, 0, 0, 0}}, {{2019, 2, 22}, {23, 59, 59, 0}}, {{2019, 2, 23}, {0, 0, 0, ...}}, {{2019, 2, 23}, {23, 59, ...}}, {{2019, 2, ...}, {0, ...}}, {{2019, ...}, {...}}, {{...}, ...}, {...}, ...]

Thanks @Brianvdb! The queries seem to be the same, it just seems that postgrex would convert timestamps to integers automatically before? In any case, it seems that PG is expecting integers so we need to tell it is receiving otherwise? Have you tried this fragment:
"CASE WHEN ? > ?::timestamp AND ? < ?::timestamp THEN 1 ELSE 0 END"

?

Now I have :)
But still receiving the same error:
Executed query:
SELECT SUM(CASE WHEN t0."inserted_at" > $1::timestamp AND t0."inserted_at" < $2::timestamp THEN 1 ELSE 0 END) FROM "transactions" AS t0 INNER JOIN "programs" AS p1 ON (p1."id" = t0."program_id") AND ((t0."program_id" = p1."id") AND (p1."user_id" = $3)) [#DateTime<2019-02-01 00:00:00.000Z>, #DateTime<2019-02-01 23:59:59.000Z>, #DateTime<2019-02-02 00:00:00.000Z>, #DateTime<2019-02-02 23:59:59.000Z>, #DateTime<2019-02-03 00:00:00.000Z>, #DateTime<2019-02-03 23:59:59.000Z>, #DateTime<2019-02-04 00:00:00.000Z>, #DateTime<2019-02-04 23:59:59.000Z>, #DateTime<2019-02-05 00:00:00.000Z>, #DateTime<2019-02-05 23:59:59.000Z>, #DateTime<2019-02-06 00:00:00.000Z>, #DateTime<2019-02-06 23:59:59.000Z>, #DateTime<2019-02-07 00:00:00.000Z>, #DateTime<2019-02-07 23:59:59.000Z>, #DateTime<2019-02-08 00:00:00.000Z>, #DateTime<2019-02-08 23:59:59.000Z>, #DateTime<2019-02-09 00:00:00.000Z>, #DateTime<2019-02-09 23:59:59.000Z>, #DateTime<2019-02-10 00:00:00.000Z>, #DateTime<2019-02-10 23:59:59.000Z>, #DateTime<2019-02-11 00:00:00.000Z>, #DateTime<2019-02-11 23:59:59.000Z>, #DateTime<2019-02-12 00:00:00.000Z>, #DateTime<2019-02-12 23:59:59.000Z>, #DateTime<2019-02-13 00:00:00.000Z>, #DateTime<2019-02-13 23:59:59.000Z>, #DateTime<2019-02-14 00:00:00.000Z>, #DateTime<2019-02-14 23:59:59.000Z>, #DateTime<2019-02-15 00:00:00.000Z>, #DateTime<2019-02-15 23:59:59.000Z>, #DateTime<2019-02-16 00:00:00.000Z>, #DateTime<2019-02-16 23:59:59.000Z>, #DateTime<2019-02-17 00:00:00.000Z>, #DateTime<2019-02-17 23:59:59.000Z>, #DateTime<2019-02-18 00:00:00.000Z>, #DateTime<2019-02-18 23:59:59.000Z>, #DateTime<2019-02-19 00:00:00.000Z>, #DateTime<2019-02-19 23:59:59.000Z>, #DateTime<2019-02-20 00:00:00.000Z>, #DateTime<2019-02-20 23:59:59.000Z>, #DateTime<2019-02-21 00:00:00.000Z>, #DateTime<2019-02-21 23:59:59.000Z>, #DateTime<2019-02-22 00:00:00.000Z>, #DateTime<2019-02-22 23:59:59.000Z>, #DateTime<2019-02-23 00:00:00.000Z>, #DateTime<2019-02-23 23:59:59.000Z>, #DateTime<2019-02-24 00:00:00.000Z>, #DateTime<2019-02-24 23:59:59.000Z>, #DateTime<2019-02-25 00:00:00.000Z>, #DateTime<2019-02-25 23:59:59.000Z>, ...]

Stacktrace:
 ** (DBConnection.EncodeError) Postgrex expected an integer in -9223372036854775808..9223372036854775807, got #DateTime<2019-02-02 00:00:00.000Z>. Please make sure the value you are passing matches the definition in your table or in your query or convert the value accordingly.
        (postgrex) lib/postgrex/type_module.ex:713: Postgrex.DefaultTypes.encode_params/3
        (postgrex) lib/postgrex/query.ex:62: DBConnection.Query.Postgrex.Query.encode/3

Ok, thanks. Still not sure why this is happening then, I will need a way to look deeper into this. Can you perhaps isolate this into an app that reproduces this error?

Sure, i'll get back to this ASAP and provide a sample project in the next following days.

Ping!

Closing, please let us know if you have more information and we will gladly reopen it, thank you.


Make runs of a single unit test use the HaxeAstFactory.

Fixes issue #125.
Some of the unit tests use HeavyUnitTestFixture, which sets up the HaxeAstFactory
correctly via having Idea use plugin.xml for setup.  Once any unit test uses it,
all following tests get the benefit because Idea doesn't shut down between tests.
However, when tests are run singly (for quicker turnaround, generally),
particularly parsing unit tests which use a very light-weight test base class,
the full app setup is skipped.  This fix sets up the factory for Haxe when
parsing tests are created.

approved


155347740 bug validate recipe on the client side

What does this PR do?
validate recipe on the client side
Description of Task to be completed?
validate recipe on the client side
How should this be manually tested?
https://purpose-more-recipes.herokuapp.com/
Any background context you want to provide?
N/A
What are the relevant pivotal tracker stories?
155347740 bug validate recipe on the client side
Questions:
N/A

Coverage remained the same at 85.662% when pulling 51adae5b620836815b08aadfa23346ca646ce0fc on bug/155347740/bug-validate-recipe-on-the-client-side into b6b9fc70dee37ad4d647df5d01b57e0e2a6a85e2 on develope.


Stable diffusion 2-1

Is it possible to run this with stabilityai/stable-diffusion-2-1?

+1 to requesting this guidance.
Here are some more details on current attempts and error.
I've not yet dug in to pipeline_utils to see how it was extracting pipeline args and how they changed between 1.4 and 2
import torch

from stable_diffusion_videos import StableDiffusionWalkPipeline, Interface

from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler

model_id = "stabilityai/stable-diffusion-2"

pipeline = StableDiffusionWalkPipeline.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    revision="fp16",
).to("cuda")

interface = Interface(pipeline)

Throws error:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
[<ipython-input-19-3739427ac16b>](https://localhost:8080/#) in <module>
      1 model_id = "stabilityai/stable-diffusion-2"
      2
----> 3 pipeline = StableDiffusionWalkPipeline.from_pretrained(
      4     model_id,
      5     torch_dtype=torch.float16,

1 frames
[/usr/local/lib/python3.8/dist-packages/diffusers/pipeline_utils.py](https://localhost:8080/#) in from_pretrained(cls, pretrained_model_name_or_path, **kwargs)
    672         elif len(missing_modules) > 0:
    673             passed_modules = set(list(init_kwargs.keys()) + list(passed_class_obj.keys())) - optional_kwargs
--> 674             raise ValueError(
    675                 f"Pipeline {pipeline_class} expected {expected_modules}, but only {passed_modules} were passed."
    676             )

ValueError: Pipeline <class 'stable_diffusion_videos.stable_diffusion_pipeline.StableDiffusionWalkPipeline'> expected {'vae', 'scheduler', 'unet', 'text_encoder', 'feature_extractor', 'tokenizer', 'safety_checker'}, but only {'vae', 'scheduler', 'unet', 'text_encoder', 'tokenizer'} were passed.

taking a look

hmm the first error goes away if I pass feature_extractor=CLIPFeatureExtractor() or feature_extractor=None, but now I'm getting black images. I think perhaps its either due to diffusers dep being out of date or the different scheduler they use...investigating.

btw related issue here for 2.0 https://github.com/nateraw/stable-diffusion-videos/issues/124

ah some insight here: https://huggingface.co/stabilityai/stable-diffusion-2-1/discussions/9#639b847134967bcf45576059

Ok so you can successfully initialize it like this if you have the latest diffusers version installed (pip install --upgrade diffusers)
import torch

from stable_diffusion_videos import StableDiffusionWalkPipeline
from diffusers import DPMSolverMultistepScheduler

model_id = "stabilityai/stable-diffusion-2-1"

pipe = StableDiffusionWalkPipeline.from_pretrained(
    model_id,
    feature_extractor=None,
    safety_checker=None,
    revision="fp16",
    torch_dtype=torch.float16,
).to("cuda")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)

and generate images like this:
prompt = "a cat"
image = pipe(
    prompt,
    num_inference_steps=5,
    generator=torch.Generator(device='cuda').manual_seed(42),
    height=768,
    width=768
).images[0]

But the walk function of the pipeline currently will generate just black images due to the use of torch.autocast('cuda'). Need to remove it. If you run the same code but with autocast, like this, you'll see what I mean...
prompt = "a cat"

with torch.autocast('cuda'):
    image = pipe(
        prompt,
        num_inference_steps=5,
        generator=torch.Generator(device='cuda').manual_seed(42),
        height=768,
        width=768
    ).images[0]
image

@davidrs if you're around feel free to try out the pull request above. This should work in colab:
! pip install git+https://github.com/nateraw/stable-diffusion-videos@remove-autocast

Init the pipe
import torch

from stable_diffusion_videos import StableDiffusionWalkPipeline
from diffusers import DPMSolverMultistepScheduler

model_id = "stabilityai/stable-diffusion-2-1"

pipe = StableDiffusionWalkPipeline.from_pretrained(
    model_id,
    feature_extractor=None,
    safety_checker=None,
    revision="fp16",
    torch_dtype=torch.float16,
).to("cuda")
pipe.scheduler = DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)

Make videos
video_path = pipe.walk(
    ['a cat', 'a dog'],
    [12345, 54321],
)

I did all the edits from the browser haha so not sure I want to merge and make a release til its tested a little

Excellent @nateraw thanks for the speedy reply.
I have one animation running that I'll wait to finish, then I'll restart kernel and try the new branch!

@nateraw hmm I'm just getting all black images.
Disconnected and started a new colab session in case it was pulling old deps

Awesome. merged and made a release. Thanks for checking it so quick!!


IPA compatibility issue

Describe the issue
I tried few Spotify ipa but unfortunately none of them work, the errors is the follow
dlopen(/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp, 0x0109): tried: '/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (cannot dlopen a main executable '/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp'), '/private/preboot/Cryptexes/OS/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (no such file), '/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (cannot dlopen a main executable '/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp'), '/private/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (cannot dlopen a main executable '/private/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp'), '/private/preboot/Cryptexes/OS/private/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (no such file), '/private/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp' (cannot dlopen a main executable '/private/var/mobile/Containers/Data/Application/2133CB1B-BD9D-4502-B416-7A71CC858276/Documents/Applications/Spotify.app/LiveContainer.tmp')
Instructions to reproduce
Install live container 2.1
Set up jit-less
Install the latest Spotify eevee  (https://github.com/whoeevee/EeveeSpotify/releases/download/swift4.6/EeveeSpotify-4.6-8.9.62.ipa)
What version of LiveContainer are you using?
Version 2.1-release (main/ff8b71d)
Other
I tried the 2.0 version of live container and keep doing the same error and tried to use the ignore alt certificate p12 option but none of them works

Try Renew JIT-LESS certification may help)

Already renowned the certificate but unfortunately doesn't work, I'm currently using the last version of SideStore (0.5.7) without the extension, could it be a reason?

Update to 2.1.1 then renew certificate again, it will work for sure.

Also, when you tap on the app, let it be until it finishes signing. Don’t close too early.

Thanks for the help, the new version works like a charm, before the app was not signing it self(the animation was not showing) now it works fantastic


Replace "Twitter" logo with "X" logo on Community page

Thanks for the PR @draunger, Would you please sign the CLA so that we can move on to reviewing the PR?

Thanks for the PR @draunger, Would you please sign the CLA so that we can move on to reviewing the PR?

I have signed the CLA , now please move my PR for review

(Also, Could an approver please confirm whether the source of the image is a matter of concern or not? Thanks!)

/remove-language de

/retitle Replace "Twitter" logo with "X" logo on Community page

/label tide/merge-method-squash
Even better: squash this down to 1 commit on your branch @draunger

@draunger  Could you please squash your commits: https://kubernetes.io/docs/contribute/new-content/open-a-pr/#squashing-commits

is this issue resolved? or can i work on this issue ?

is this issue resolved

This is a pull request (a proposed fix), not an issue. If you'd like to help, please provide your review for this pull request.

Could an approver please confirm whether the source of the image is a matter of concern or not?

With rare exceptions, logos are usually licensed for reuse and not a concern in terms of open source or for breaching the copyright of the organization the logo represents.

is this issue resolved

This is a pull request (a proposed fix), not an issue. If you'd like to help, please provide your review for this pull request.

i have done changes at my local system and it is working fine. may raise my pr regarding this?

@draunger  Could you please squash your commits: https://kubernetes.io/docs/contribute/new-content/open-a-pr/#squashing-commits

Can you review my PR again

/label tide/merge-method-squash
Even better: squash this down to 1 commit on your branch @draunger

Sir can you review my PR again

👋 @draunger .
Another PR has made this change already. Is there more work to do or can you close this pull request?
Thanks


integrate/quad: Fix hermite initial guess bug

Eventually I found and fixed bug in integrate/quad package when tried to increase number of Hermite polynomial roots to 1000 (since panic when taking negative index of array)
I have also added test, but failed to find roots precise to 1e-14 tolerance, so added precise to 1e-13 one.
Refs:
https://github.com/gonum/gonum/blob/master/integrate/quad/internal/hermpts.m

@kortschak Hi, any update on this? Should someone else review this PR?

Sorry for the delay, I will take a look.


How to also change the name displayed in task manager?

First, thanks for your package, which is convenient to change app name for all platform.
But there’s a fly in the ointment:  the name displayed in the task manager is still not changed---I tested on android and win10.

Thanks for compliment. Can you please share the screenshot? I am a
bit confused regarding this. Are you talking about flutter web specifically
or it's a general issues? A screenshot will be much helpful to dig out the
issue.
On Mon, Nov 14, 2022, 9:14 AM 老董 @.***> wrote:

First, thanks for your package, which is convenient to change app name for
all platform.
But there’s a fly in the ointment: the name displayed in the task manager
is still not changed---I tested on android and win10.
—
Reply to this email directly, view it on GitHub
https://github.com/Syed-Waleed-Shah/rename_app/issues/2, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANKVMH2OKLGCBCPECVW5PQLWIG4APANCNFSM6AAAAAAR7MR25Q
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

I need to build an app that would be used for android and win10, not web.
For Win10, I mean this:

For Android, I mean this:

This is not a display name. This is app name and you should change it the code. To do so goto your root widget where you defined MaterialApp(). In the material app there is a property called 'title'. Set the value of 'title' as you want.

This is not a display name. This is app name and you should change it the code. To do so goto your root widget where you defined MaterialApp(). In the material app there is a property called 'title'. Set the value of 'title' as you want. Here is an example:
return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Your App Title', // Here you can set app title
      home: Scaffold(
        appBar: AppBar(
          title: Text('Home Page'),
        ),
        body: HelloRectangle(),
      ),
    );

Important: @dbsxdbsx If you got your answer then please close the issue and mark resolved.

This approach partly solved my issue---It is workable on Android, but not win10.

Ok, now I found a workaround on win10.
On Win10, to change the  process name shown in task manager, a workaround is to change the description name of file windows\runner\Runner.rc :
 BEGIN
            VALUE "CompanyName", "com.example" "\0"
            VALUE "FileDescription", "name_shown_in_task_manager" "\0"
            VALUE "FileVersion", VERSION_AS_STRING "\0"
...

Changing the FileDescription value would work the issue out.
Besides, on Win10,  there is also another name (called taskbar name?) shown  in pop up menu when right click the running app on taskbar . To work it out, what I found is to change the regedit.exe. The detailed solution is here.
Hopefully, the workaround could be done with a command in rename_app.
But, indeed, what I can't help wondering is  why Flutter not officially provide a built-in command to do the renaming things---After all, this is a quite common requirement.

Yeah thanks for your observations and finding @dbsxdbsx I would defiletly try to add this functionality in next release of the package.


xFailOverCluster: Rename when this module is becoming HQRM

Details of the scenario you tried and the problem that is occurring:
This might be getting ahead of things. But, when we get to the point that this module is HQRM and being renamed from experimental naming, I suggest we name it FailoverClustersDsc to match the Failover Clustering PowerShell module.
The DSC configuration that is using the resource (as detailed as possible):
n/a
Version of the Operating System and PowerShell the DSC Target Node is running:
n/a
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

I don't like it being plural. FailOverClusterDsc would be my preference

I agree. The PowerShell module for Failover Clustering is dubbed "FailoverClusters", so that's where I got it. :) With lowercase 'o' in 'over' and being plural. But agree it should be singular.

What are you talking about ;) Fixed typo!


Hydrography90 tile IDs

Can we add tile ids to the url https://hydrography.org/hydrography90m/hydrography90m_layers#stream-order-layers;h24v04 or do we use https://public.igb-berlin.de/index.php/s/agciopgzXjWswF4/download?path=%2Fr.watershed%2Fdirection_tiles20d&files=direction_h24v04.tif

close as it's done


⚠ GitLab Server has degraded performance

In 1138b24, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11591 ms

Resolved: GitLab Server performance has improved in 78feac6.


SDL AllowUserResizing doesn't work

Release Type: GitHub
Version: 3.1
Platform(s): Windows 10 x64
Describe the bug
Setting Game.Window.AllowUserResizing to "true" should make the window able to be resized... but it seems to have no effect. The window appears to be locked when using SDL.
To Reproduce
Steps to reproduce the behavior:

Open or create any project
Set Game.Window.AllowUserResizing to "true"
Try to resize the window! You can't :-(

Expected behavior
Able to resize the window.

https://github.com/xenko3d/xenko/blob/0029ebee92db0458b69e1d3cb3b58126aaff335a/sources/engine/Xenko.Graphics/SDL/Window.cs#L390

https://wiki.libsdl.org/SDL_SetWindowResizable

Fixed in my fork: https://github.com/phr00t/xenko/commit/c668b2203163122a2ed6510fb0245478a9f294a9
Working on other issues at the moment, so no pull request at the moment

Fixed through #444


First time load too slow

Everytime when i clear app and launch again
it very very slow load.
why it happen ?
and how to make it faster like open in browser
everytime when open in browser it too faster and instance time loads
but when open in webview it take too long time load all the time

hello anybody here ?

@nakinthorn How did you solve it?

+1

 <WebView cacheEnabled={false} />

This works for me.

How did you guys solve it ??

@haduy97 set cacheEnabled false solved my problem.

@haduy97 set cacheEnabled false solved my problem.

thank you for your replied, but i thought that if we turn on cache the webview will working faster than using network for somehow. Could you explain me more why cacheEnabled false will work faster please ?

I just know the way it is. But I don't know why the way it is. Sorry. ^^

 <WebView cacheEnabled={false} />

This works for me.

How? I mean cacheEnable should make it fast to load.

cacheEnabled to false didn't work on me.

cacheEnabled to false didn't work on me.

cacheEnabled to false didn't work on me.

Hi, any solution ?