feat(stream_processor): initial version for processing product changes

closes #75
Summary

Please provide a summary of what's being changed

Initial skeleton to create stream processor to handle product updates coming from CRUD.
Changes

[x] Create Lambda
[x] Get sample stream event
[x] Create domain logic skeleton

[x] Create top-level models (product/models/)
[x] Create Product model (product/models/products)
[x] Create Product model validators (product/models/products/validators)
[x] Create skeleton function to notify product changes
[x] Create constants to keep track of Product Statuses (product/stream_processor/domain_logic/constants.py)
[x] Create Product Notification model
[x] Rename handlers/stream_handler to handlers/product_stream
[x] Create placeholder unit test

[x] Create DAL

[x] Create protocol for emitting events
[x] Make protocol generic to allow different types of events to be sent
[x] Create EventBridge integration
[x] Create model for event entry (service, data, metadata)

[x] Update EventProvider to receive Input Event

[x] Create model for event output (EventReceipt)
[x] Slice EventBridge put_events to the max permitted

[x] Create unit tests

[x] Generate INSERT DynamoDB Stream event
[x] Generate REMOVE DynamoDB Stream event
[x] Skeleton test for handler
[x] Test handler with event handler
[x] Test product update notification
[x] Test EventBridge contracts
[x] Test Event standard

[ ] Document APIs (mkdocstrings)

[ ] Domain logic
[ ] DAL
[ ] Models

Tasks for a separate PR due to size

[ ] Create integ tests (it'll need careful thought in infra)
[ ] Create E2E tests (will incorporate if PR isn't big)
[ ] Docs/examples for suboptimal and optimal
[ ] Implement Powertools

[ ] Batch
[ ] Create model for Stream Input

[ ] We're including dev requirements in the final build (needs issue, pants2 should make all of this simpler)

unrelated but noticeable changes

[x] Support for cdk watch to speed prototyping
[x] Add Pytest config to ignore tests in cdk.out
[x] Allow git local branches named with _
[x] Use getpass.getuser() over outdated os.getlogin() to take into account env vars (mine was root, now it's lessa)

User experience

If applicable, please share what the user experience looks like before and after this change

Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] I have performed a self-review of this change
[x] Changes have been tested
[ ] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

Done, only missing docstrings. I'll work on Integ/E2E in a separate PR, as I'll need to inject the Event Bus into the stream processor handler too via env vars (+Powertools).

@heitorlessa there are mypy issues, i'll wait wit the review

Working on it! I missed make pr and assumed it was part of the pre-commit framework as it's a quick thing.

make pr passing locally and should be in CI. I've enabled Pydantic plugin for Mypy to fix other false positive errors.
Waiting for CI before I rename dal to integration to match the deck and make it easier to spot its intent.

I believe the deployment credentials error is because it's coming from my fork, and not as a branch from the repo. Everything else passed.
Gonna add docstrings now but implementation wise is ready for review.

@heitorlessa  I'll need to port  lots of code to the template , yikes. but thx for fixing lots of side issues

@heitorlessa  I forked your branch and it passes all tests . coverage is down 2% though
you can run make coverage-tests and look at the coverage.xml file.
we can sort it later

@heitorlessa I forked your branch and it passes all tests . coverage is down 2% though you can run make coverage-tests and look at the coverage.xml file. we can sort it later

sure thing. I'm working on docstrings now.
Check how cool this looks ;)

@heitorlessa top class code, really.
I've left many questions, comments like : very nice, and small suggestions.
lets merge and fix that in next PR.
I'll start working on my event handler.
but damn, this one was hard, lots of files and required concentration.


Enable file downloads within Genie Agent

@mprimi I've conditionally enabled the AWS functionality whether the agent is run on a cloud instance or not. We should revisit this as there's not really a good reason this couldn't run on a non-cloud instance with some other way of getting instance credentials.
I've committed it like this to get us unblocked on the build/pylon for M1 but we should come back and refine this to conditionally enable what we want. Perhaps some of these issues @twicksell has already solved but if you look through the AWS cloud autoconfigurations there's no nice way to disable them all via property so we almost have to go one by one.

Coverage decreased (-0.3%) to 88.566% when pulling a2d0dbfbcfd76dc067e0bac4352bd155ec0280f3 on tgianos:agentDownloads into ce35302bc31ac1e5d0ed61d09f09b5725065e46b on Netflix:master.


Meaningful error in idm-client when we are unable to reach wallet

Description
Instead of showing the standard promised error, show something like: we are unable to reach the wallet, please make sure it is open
Acceptance Criteria

[x] The wallet has now a meaningful error

Done in https://github.com/ipfs-shipyard/js-idm-bridge-postmsg/commit/e176169bda23df6f5e1824982eabff4dfb759204


AHOYAPPS-314: Unpublish video in background

https://issues.corp.twilio.com/browse/AHOYAPPS-314
Changes

Just unpublish video when app is in background and publish again when app returns to foreground.

Testing

Use video with 2 participants and make sure participant A sees participant B video change to muted when participant B sends app to background. And make sure participant A sees participant B video unmute when participant B returns app to foreground.

Un-publishing and republishing might be a little heavy handed since it requires renegotiating media every time the developer backgrounds and foregrounds.
@timrozum did you consider just disabling the LocalVideoTrack instead?

@ceaglest what would tradeoffs be for disabling LocalVideoTrack? Would it stop sending video data and other participants would see video disabled? It seems pretty valuable to have video disabled state properly communicated.
It's been a while so it is a little fuzzy but I remember I was trying to be surgical because this area of code isn't very easy or safe to change yet.


Add Covid19 symptoms questionnaire

Adds COVID-19 symptoms questionnaire

Still currently testing the branching logic.

OK I've updated the questionnaire.

[x] fixed ordering
[x] changed var names so more consistent
[x] removed some unnecessary symptoms from matrix question
[x] put branching logic on all questions so people can skip whole questionnaire if situation has not changed and we are likely to deliver this questionnaire every day or other day


Update MDTI_Certs.ipynb

removed TenantID and ClientID, Client Secret was never exposed

Removed TenantID and ClientID from a Notebook.  Client Secret was never exposed.


ionic serve

Short description of the problem:
ionic serve --platform ios
yields Error opening the Browser
What behavior are you expecting?
That it serves my app
Steps to reproduce:
It's tricky because sometimes it works, others it doesn't.

Create a project
ionic serve --platform ios
it hangs there and we can see that it is writing to ionic.config.json the line: "defaultBrowser": true
Even if you remove it before executint the command.

Also if you force chrome, it doesn't work either sometimes.
Which @ionic/app-scripts version are you using?
Your system information:
Cordova CLI: 6.4.0
Gulp version:  CLI version 3.9.1
Gulp local:
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.4
Ionic App Lib Version: 2.1.2
Ionic App Scripts Version: 0.0.39
OS: WINDOWS 10 x64 (By the way, not reported by ionic info)
Node Version: v6.4.0

@mflmartin Is this issue still occurring for you. I believe that it was likely an issue with livereload that has been resolved in the latest CLI release.


Add an autoclicker and few AFK'ing options

[x] I have checked that a similar feature request does not already exist.

Problem I faced
One of the most use-case scenarios of scrcpy is gaming. I play many games using scrcpy but am frustrated because there are no options for AFK'ing like auto clicker etc. It would be an excellent option for gamers who need to do the same thing for hours like mining in Minecraft etc.
Few suggestions

Bring auto clicker and other AFK'ing features.
Adding macros to do a few tasks with one click.

scrcpy wasnt made for gaming


Update kabanero-operators.yaml and prepare_release.sh for OLM

In the contrib directory we have shell scripts which download YAMLs from some of Kabanero's pre-req operators, and then combine them into kabanero-operators.yaml.  Similarly, the .travis/prepare_release.sh script called by Travis uses kabanero-operators.yaml to attach kabanero-operators.yaml to a Github release.  This yaml was then used by the OKD 3.11 / Kabanero install script in kabanero-foundation.  Most of this is useless now that we are moving to OCP 4.2 and OLM.
For OCP 4.2, we should be generating a YAML file that contains:

catalogsource for kabanero repository, using the correct TAG (or latest)
all of the subscriptions that we need
operatorgroup for kabanero namespace
service mesh control plane and member role instances
knative serving instance

This YAML can't be applied all at once, so I'd like to see it grouped into phases or categories using label selectors.  This is something that we tried to start doing with the "optional.yaml" file which currently only includes kAppNav.  We should get a group of operators that can be installed during phase 1, then a group for phase 2, etc until we have everything installed.
metadata:
  labels:
    kabanero.io/install: subscriptions-phase0

and
metadata:
  labels:
    kabanero.io/install: service-mesh

etc....
which can then be applied by the install script using:
oc apply -f filename --selector=kabanero.io/install/subscriptions-phase0

I suppose an alternative to having a single file with phases would be to have different files.  We would need to come up with a naming convention that makes sense.
We should have a goal of not having any yaml in the kabanero-foundation github repository, leaving only what can't be moved back to the operator cleanly.

Resolved by
https://github.com/kabanero-io/kabanero-operator/pull/273


[SPARK-36213][SQL][FOLLOWUP][3.0] Fix compilation error due to type mismatch

What changes were proposed in this pull request?

This patch fixes a compilation error of backported PR of SPARK-36213.
Why are the changes needed?

To fix compilation error:
[error] /spark/sql/core/src/main/scala/org/apache/spark/sql/execution/command/tables.scala:695: type mismatch;
[error]  found   : org.apache.spark.sql.types.StructType
[error]  required: Seq[String]
[error] Error occurred in an application involving default arguments.
[error]       metadata.partitionSchema,
[error]                ^

PartitioningUtils.normalizePartitionSpec's partColNames is Seq[String] in 3.0.
Does this PR introduce any user-facing change?

No
How was this patch tested?

Unit test

cc @yaooqinn @dongjoon-hyun

Test build #141583 has started for PR 33504 at commit a0ee984.

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46100/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/46100/

Merged to branch-3.0.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/46100/

Thank you @dongjoon-hyun

Thank you @dongjoon-hyun @viirya

Test build #141583 has finished for PR 33504 at commit a0ee984.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/141583/


Question about video input shape

Dear Author, I have another Question about video input shape.
I examine my experiment with your well-made framework : MSVD dataset these days.
now I understood that when the class MSVD_DataLoader(Dataset) special function, getitem returns
pairs_text, paris_amsk, _pairs_segemtn, video_video_mask repectively.
I made up in my ipynb file for recognizing the shape of these, so I found that the shape of 'video' is
(1, 16, 1, 3, 224, 224) : b x max_frame x pair x channel x Height x Width.
However, When I scrutinized the .py file : module_clip.py, and modeling.py,
the forward function in CLIP4Clip class make use of video in T x 3 x H x W.
My first question is that, what caused the tunneling from video in 6D to video in 4D.
Also, in the forward function in VisualTransformer,
def forward(self, x: torch.Tensor, video_frame=-1):
    ####Conv3D AE 20220526 #####
    x_3d = x.reshape(-1, video_frame, x.shape[-3], x.shape[-2], x.shape[-1])
    if self.linear_patch == '3d':
        assert video_frame != -1
        x_3d = x.reshape(-1, video_frame, x.shape[-3], x.shape[-2], x.shape[-1])
        x_3d = x_3d.permute(0, 2, 1, 3, 4) #
        x_3d = self.conv2(x_3d)     # shape = [*, width, frame, grid, grid]
        x_3d = x_3d.permute(0, 2, 1, 3, 4)      # shape = [*, frame, width, grid, grid]
        x = x_3d.reshape(-1, x_3d.shape[-3], x_3d.shape[-2], x_3d.shape[-1]).contiguous() # shape = [*, width, grid, grid]
    else:
        x = self.conv1(x)  # shape = [*, width, grid, grid]

    x = x.reshape(x.shape[0], x.shape[1], -1)  # shape = [*, width, grid ** 2]
    x = x.permute(0, 2, 1)  # shape = [*, grid ** 2, width]
    x = torch.cat([self.class_embedding.to(x.dtype) + torch.zeros(x.shape[0], 1, x.shape[-1], dtype=x.dtype, device=x.device), x], dim=1)  # shape = [*, grid ** 2 + 1, width]
    x = x + self.positional_embedding.to(x.dtype)
    x = self.ln_pre(x)

    ################# TAE!!! ####################
    x = x.permute(1, 0, 2)  # NLD -> LND

    x = self.transformer(x, video_frame=video_frame)
    x = x.permute(1, 0, 2)  # LND -> NLD

    # Move the three lines below to `encode_image` for entire hidden sequence
    # x = self.ln_post(x[:, 0, :])
    # if self.proj is not None:
    #     x = x @ self.proj

    return x

In looking the code x_3d = x.reshape(-1, video_frame, x.shape[-3], x.shape[-2], x.shape[-1]),
I want to know why the shape of x_3d is 5D, not 6D. the question is similar to the first.
Third, I wonder the reason that why the frame is composed of bs * ts. Can I get to know what the 'bs' and 'ts' means?
(It can be found also in Class CLIP4Clip, modeling.py)
def forward(self, input_ids, token_type_ids, attention_mask, video, video_mask=None):
    input_ids = input_ids.view(-1, input_ids.shape[-1])
    token_type_ids = token_type_ids.view(-1, token_type_ids.shape[-1])
    attention_mask = attention_mask.view(-1, attention_mask.shape[-1])
    video_mask = video_mask.view(-1, video_mask.shape[-1])

    # T x 3 x H x W
    video = torch.as_tensor(video).float()
    b, pair, bs, ts, channel, h, w = video.shape
    video = video.view(b * pair * bs * ts, channel, h, w)
    video_frame = bs * ts

    sequence_output, visual_output = self.get_sequence_visual_output(input_ids, token_type_ids, attention_mask,
                                                                     video, video_mask, shaped=True, video_frame=video_frame)

    if self.training:
        loss = 0.
        sim_matrix, *_tmp = self.get_similarity_logits(sequence_output, visual_output, attention_mask, video_mask,
                                                shaped=True, loose_type=self.loose_type)
        sim_loss1 = self.loss_fct(sim_matrix)
        sim_loss2 = self.loss_fct(sim_matrix.T)
        sim_loss = (sim_loss1 + sim_loss2) / 2
        loss += sim_loss

        return loss
    else:
        return None

Last, In the forward function in class CLIP4Clip, I really fell thankful if you let me know what is the exact  meaning of input_ids, and token_type_ids.
Sincerely,

Hi @celestialxevermore, thanks for your attention.
The confusion may be caused by the history tests and we ignored it when we clean the released code.

The (1, 16, 1, 3, 224, 224)  in the the dataloader is  Pair x L x T x 3 x H x W. The Pair and T will always be 1, so plz ignore them. Equally, the pair, ts will be 1 in b, pair, bs, ts, channel, h, w (Line 257). The size of the video can be seen in Line 258
The input_ids  is the same as in CLIP, which is the ids of the text. The token_type_ids is the token type, having the same meaning as in BERT, which is actually redundancy here, and plz ignore.

Best~


Rails 5.1 support

WIP

Please let me know if I can help with this somehow. I'd like to use Clearance with Rails 5.1

@Spone Clearance works with Rails 5.1 / 5.2. This PR only affects the Clearance test suite.

Rails 5.1 testing support found it's way in as a side effect of this - https://github.com/thoughtbot/clearance/pull/799
If there were more changes here which I missed, can you re-open this?


Too many repositories

Repositories thats seems abandoned.
https://github.com/CloudOpting/puppet-environment
https://github.com/CloudOpting/hiera-environment
https://github.com/CloudOpting/cobase
https://github.com/CloudOpting/coapache
https://github.com/CloudOpting/cowordpress
https://github.com/CloudOpting/comysql
https://github.com/CloudOpting/tosca_middleware
https://github.com/CloudOpting/cloudopting-deploy-services
Old, but must be used:
https://github.com/CloudOpting/CloudOpting.github.io

Web of http://cloudopting.github.io/
https://github.com/CloudOpting/iso_scripts
Base scripts for master machines?

At the ending of the milestone all the abandoned repositories will be deleted.
We need the colaboration of all the teams involved in development in order to know if they are useful or not. @CloudOpting/fullteam

Before deleting anything let us do a backup copy.
This is no priority now
Inviato da Libero Mail per iOS
mercoledì 10 febbraio 2016, 12:42 +0100 da<EMAIL_ADDRESS><EMAIL_ADDRESS>
Repositories thats seems  abandoned .
https://github.com/CloudOpting/puppet-environment
https://github.com/CloudOpting/hiera-environment
https://github.com/CloudOpting/cobase
https://github.com/CloudOpting/coapache
https://github.com/CloudOpting/cowordpress
https://github.com/CloudOpting/comysql
https://github.com/CloudOpting/tosca_middleware
https://github.com/CloudOpting/cloudopting-deploy-services
Old, but must be used:
https://github.com/CloudOpting/CloudOpting.github.io

Web of  http://cloudopting.github.io/ https://github.com/CloudOpting/iso_scripts
Base scripts for master machines?
At the ending of the milestone all the abandoned repositories will be deleted.
We need the colaboration of all the teams involved in development in order to know if they are useful or not.  @CloudOpting/fullteam
—
Reply to this email directly or  view it on GitHub .

Has some work been done or do we have to pospone it?

It seems this is not a priority.


Error due to reading of structs after call to free

Bug report by @eliaslevy in #28:

A bit more on the error I was seeing.  I've reproduced it on my MBP and narrowed it down to a call I make to Expression.validate on start up to check the expressions.  It only seems to trigger if there are sufficient concurrent threads, each of which run the same code.   In my case I need at least four threads for it to trigger, and it won't trigger if I run the code in the debugger.  The error goes away if I synchronize the call to Expression.validate.
The error report generated by the JVM shows two threads calling into hs_free_compile_error from validate with the top of the stack being:
Stack: [0x00007000055c4000,0x00007000056c4000],  sp=0x00007000056c2440,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libsystem_c.dylib+0x1b52]  strlen+0x12
C  [jna4845073464406839331.tmp+0x4073]  Java_com_sun_jna_Native_getStringBytes+0x23
j  com.sun.jna.Native.getStringBytes(Lcom/sun/jna/Pointer;JJ)[B+0
j  com.sun.jna.Native.getString(Lcom/sun/jna/Pointer;JLjava/lang/String;)Ljava/lang/String;+6
j  com.sun.jna.Pointer.getString(JLjava/lang/String;)Ljava/lang/String;+3
j  com.sun.jna.Structure.readField(Lcom/sun/jna/Structure$StructField;)Ljava/lang/Object;+134
j  com.sun.jna.Structure.read()V+100
j  com.sun.jna.Structure.autoRead()V+8
j  com.sun.jna.Function.invoke(Ljava/lang/reflect/Method;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+395
j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+344
j  com.sun.proxy.$Proxy3.hs_free_compile_error(Lcom/gliwka/hyperscan/jna/CompileErrorStruct;)I+24
j  com.gliwka.hyperscan.wrapper.Expression.validate()Lcom/gliwka/hyperscan/wrapper/Expression$ValidationResult;+77

Looks like it is dying in the call to strlen from JNA's Java_com_sun_jna_Native_getStringBytes.
I am not familiar with JNA, but I believe the issue is that CompileErrorStruct is created by passing it a native struct that has been allocated by hyperscan.  The call to hs_free_compile_error deallocates the the struct.  But JNA's Structure has a feature enabled by default that will read the contents of the native struct into the Java Structure after every native call.  So after calling hs_free_compile_error, JNA is trying to read the fields of the struct that hyperscan just freed.
In the single threaded case this is usually not a problem, as nothing will have modified that memory.  But in a multi-threaded environment, the memory could be allocated and modified by another thread, leading to an error when the original thread tried to read the fields.  Something changed between hyperscan 4.5.2 and 4.6.0 to make this more likely, but the problem was present before we upgraded to 4.6.0.
If I modify hyperscan-java to call errorStruct.setAutoRead(false); before every call to hs_free_compile_error, thus disabling read of the struct after the call to hs_free_compile_error, the error goes away.

Here is a thread that discusses this issue.

Not that the problem is not Expression.validate per se, but calls to hs_free_compile_error, which also occur in Database.handleErrors.

Yeah, thats true.
I was able to reproduce it.
Basically it boils down to:
a) disabling autoread on the structs and freeing the structs using hs_free_compile_error

or -
b) not freeing the struct and leaving it to the garbage collector, since the JNA implementation should take care of it

hs_error_t HS_CDECL hs_free_compile_error(hs_compile_error_t *error) {
#if defined(FAT_RUNTIME)
    if (!check_ssse3()) {
        return HS_ARCH_ERROR;
    }
#endif
    freeCompileError(error);
    return HS_SUCCESS;
}

That's the implementation of the hs_free_compile_error. In case it's a "fat library" (supporting multiple instruction sets), it makes sure at least sse3 is available. After that it calls     freeCompileError(error), which is implemented as:
void freeCompileError(hs_compile_error_t *error) {
    if (!error) {
        return;
    }
    if (error == &hs_enomem || error == &hs_einternal ||
        error == &hs_badalloc) {
        // These are not allocated.
        return;
    }

    hs_misc_free(error->message);
    hs_misc_free(error);
}

hs_misc_free then just calls the default deallocator for the platform (free) or in case a user provided hyperscan with their own deallocator by using hs_set_misc_allocator() it then uses that.

Since the memory is not allocated by JNA, it seems like it won't free the memory on garbage collection, so "disabling autoread on the structs and freeing the structs using hs_free_compile_error
or" is the proper solution.
I'm testing it right now and will push it later.

Fixed in v0.4.11

👍


flutter config --explicit-package-dependencies breaks flutter build apk

Looking at the failures still being flagged in https://github.com/flutter/flutter/pull/160289, I see a trend where flutter build apk (which implicitly is release mode) causes the integration_test package itself to fail to be built (example); I'm guessing that when we short-circuit the build, we're still leaving artifacts that integration_test is depended on, but not in a way that compilation succeeds.
Reproduces at HEAD:
# Opt-in to the feature
flutter config --explicit-package-dependencies

# Create an Android plugin
flutter create plugin_a --template=plugin --platforms=android

# Try to build the example app for the plugin
cd plugin_a/example
flutter build apk

By opting-out again (flutter config --no-explicit-package-dependencies) the build succeeds.
Interestingly, the integration test for this feature does do a flutter build apk --release, so I'm guessing this has something to do with how integration_test imports and uses the Android embedder (i.e. import io.flutter.embedding.android.FlutterActivity and like), and the default (empty) plugin template does not - we should add a regression test as part of fixing this.

Some potentially useful bits:

With the flag enabled, .flutter-plugins-dependencies looks like this
{
  "info": "This is a generated file; do not edit or check into version control.",
  "plugins": {
    "ios": [
      {
        "name": "integration_test",
        "path": "/Users/matanl/Developer/flutter/packages/integration_test/",
        "native_build": true,
        "dependencies": [],
        "dev_dependency": true
      }
    ],
    "android": [
      {
        "name": "integration_test",
        "path": "/Users/matanl/Developer/flutter/packages/integration_test/",
        "native_build": true,
        "dependencies": [],
        "dev_dependency": true
      },
      {
        "name": "plugin_a",
        "path": "/private/tmp/flutter.tmp/plugin_a/",
        "native_build": true,
        "dependencies": [],
        "dev_dependency": false
      }
    ],
    "macos": [],
    "linux": [],
    "windows": [],
    "web": []
  },
  "dependencyGraph": [
    {
      "name": "integration_test",
      "dependencies": []
    },
    {
      "name": "plugin_a",
      "dependencies": []
    }
  ],
  "date_created": "2024-12-16 20:52:06.884223",
  "version": "3.28.0-1.0.pre.157",
  "swift_package_manager_enabled": {
    "ios": false,
    "macos": false
  }
}

Here is what plugin_a/pubspec.yaml looks like
dependencies:
  flutter:
    sdk: flutter

  plugin_a:
    # When depending on this package from a real application you should use:
    #   plugin_a: ^x.y.z
    # See https://dart.dev/tools/pub/dependencies#version-constraints
    # The example app is bundled with the plugin so we use a path dependency on
    # the parent directory to use the current plugin's version.
    path: ../

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.8

dev_dependencies:
  integration_test:
    sdk: flutter
  flutter_test:
    sdk: flutter

  # The "flutter_lints" package below contains a set of recommended lints to
  # encourage good coding practices. The lint set provided by the package is
  # activated in the `analysis_options.yaml` file located at the root of your
  # package. See that file for information about deactivating specific lint
  # rules and activating additional ones.
  flutter_lints: ^5.0.0

I assume it's further work required in flutter.groovy: https://github.com/flutter/flutter/blob/27ef1967b09e32971075bae06309f742625f7237/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L764-L829

Oh, you know what it is... we don't strip out the import in GeneratedPluginRegistrant.java:
package io.flutter.plugins;

import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import io.flutter.Log;

import io.flutter.embedding.engine.FlutterEngine;

/**
 * Generated file. Do not edit.
 * This file is generated by the Flutter tool based on the
 * plugins that support the Android platform.
 */
@Keep
public final class GeneratedPluginRegistrant {
  private static final String TAG = "GeneratedPluginRegistrant";
  public static void registerWith(@NonNull FlutterEngine flutterEngine) {
    try {
      flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin());
    } catch (Exception e) {
      Log.e(TAG, "Error registering plugin integration_test, dev.flutter.plugins.integration_test.IntegrationTestPlugin", e);
    }
    try {
      flutterEngine.getPlugins().add(new com.example.plugin_a.Plugin_aPlugin());
    } catch (Exception e) {
      Log.e(TAG, "Error registering plugin plugin_a, com.example.plugin_a.Plugin_aPlugin", e);
    }
  }
}

Hmm, that wasn't sufficient - I threw together this patch and there are still the same compilation errors:
diff --git a/packages/flutter_tools/lib/src/flutter_plugins.dart b/packages/flutter_tools/lib/src/flutter_plugins.dart
index d95392c561..886477a466 100644
--- a/packages/flutter_tools/lib/src/flutter_plugins.dart
+++ b/packages/flutter_tools/lib/src/flutter_plugins.dart
@@ -354,7 +354,7 @@ public final class GeneratedPluginRegistrant {
 }
 ''';

-List<Map<String, Object?>> _extractPlatformMaps(List<Plugin> plugins, String type) {
+List<Map<String, Object?>> _extractPlatformMaps(Iterable<Plugin> plugins, String type) {
   return <Map<String, Object?>>[
     for (final Plugin plugin in plugins)
       if (plugin.platforms[type] case final PluginPlatform platformPlugin)
@@ -362,8 +362,12 @@ List<Map<String, Object?>> _extractPlatformMaps(List<Plugin> plugins, String typ
   ];
 }

-Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin> plugins) async {
-  final List<Plugin> methodChannelPlugins = _filterMethodChannelPlugins(plugins, AndroidPlugin.kConfigKey);
+Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin> plugins, {required bool releaseMode}) async {
+  Iterable<Plugin> methodChannelPlugins = _filterMethodChannelPlugins(plugins, AndroidPlugin.kConfigKey);
+  if (releaseMode) {
+    methodChannelPlugins = methodChannelPlugins.where((Plugin p) => !p.isDevDependency);
+  }
+
   final List<Map<String, Object?>> androidPlugins = _extractPlatformMaps(methodChannelPlugins, AndroidPlugin.kConfigKey);

   final Map<String, Object> templateContext = <String, Object>{
@@ -391,6 +395,7 @@ Future<void> _writeAndroidPluginRegistrant(FlutterProject project, List<Plugin>
     globals.fs.file(registryPath),
     globals.templateRenderer,
   );
+  print(globals.fs.file(registryPath).readAsStringSync());
 }

 const String _objcPluginRegistryHeaderTemplate = '''
@@ -1129,12 +1134,13 @@ Future<void> injectPlugins(
   bool windowsPlatform = false,
   Iterable<String>? allowedPlugins,
   DarwinDependencyManagement? darwinDependencyManagement,
+  bool? releaseMode,
 }) async {
   final List<Plugin> plugins = await findPlugins(project);
   final Map<String, List<Plugin>> pluginsByPlatform = _resolvePluginImplementations(plugins, pluginResolutionType: _PluginResolutionType.nativeOrDart);

   if (androidPlatform) {
-    await _writeAndroidPluginRegistrant(project, pluginsByPlatform[AndroidPlugin.kConfigKey]!);
+    await _writeAndroidPluginRegistrant(project, pluginsByPlatform[AndroidPlugin.kConfigKey]!, releaseMode: releaseMode ?? false);
   }
   if (iosPlatform) {
     await _writeIOSPluginRegistrant(project, pluginsByPlatform[IOSPlugin.kConfigKey]!);
diff --git a/packages/flutter_tools/lib/src/project.dart b/packages/flutter_tools/lib/src/project.dart
index 6d5a6aaa24..93785a6720 100644
--- a/packages/flutter_tools/lib/src/project.dart
+++ b/packages/flutter_tools/lib/src/project.dart
@@ -346,6 +346,7 @@ class FlutterProject {
   Future<void> regeneratePlatformSpecificTooling({
     DeprecationBehavior deprecationBehavior = DeprecationBehavior.none,
     Iterable<String>? allowedPlugins,
+    bool? releaseMode,
   }) async {
     return ensureReadyForPlatformSpecificTooling(
       androidPlatform: android.existsSync(),
@@ -358,6 +359,7 @@ class FlutterProject {
       webPlatform: featureFlags.isWebEnabled && web.existsSync(),
       deprecationBehavior: deprecationBehavior,
       allowedPlugins: allowedPlugins,
+      releaseMode: releaseMode,
     );
   }

@@ -372,6 +374,7 @@ class FlutterProject {
     bool webPlatform = false,
     DeprecationBehavior deprecationBehavior = DeprecationBehavior.none,
     Iterable<String>? allowedPlugins,
+    bool? releaseMode,
   }) async {
     if (!directory.existsSync() || isPlugin) {
       return;
@@ -399,6 +402,7 @@ class FlutterProject {
     if (webPlatform) {
       await web.ensureReadyForPlatformSpecificTooling();
     }
+    print('>>> releaseMode: $releaseMode');
     await injectPlugins(
       this,
       androidPlatform: androidPlatform,
@@ -407,6 +411,7 @@ class FlutterProject {
       macOSPlatform: macOSPlatform,
       windowsPlatform: windowsPlatform,
       allowedPlugins: allowedPlugins,
+      releaseMode: releaseMode,
     );
   }

diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart
index 82b117ec6d..ff777585e2 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart
@@ -1765,6 +1765,7 @@ Run 'flutter -h' (or 'flutter <command> -h') for available flutter commands and
       }
       await project.regeneratePlatformSpecificTooling(
         allowedPlugins: allowedPlugins,
+        releaseMode: getBuildMode().isRelease,
       );
       if (reportNullSafety) {
         await _sendNullSafetyAnalyticsEvents(project);

Started digging into this and here's what I know:

If I remove https://github.com/flutter/flutter/blob/188d1e1999c7dd2804d3802976248fdad12d4372/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L796-L801, all works as expected.
When we run flutter build apk, the Flutter Gradle plugin configures plugins and their dependencies for debug and release builds (this might just be how apks are built? still trying to determine that)

What I've been trying to dig into now is:

What happens exactly when we run flutter build apk. I want to know the exact Gradle tasks it runs because it may be possibly my integration test did work and there are some tasks that still require compiling a plugin project though it won't be included in the final APK. I think this is less likely, so I think I'll spend most of my time now looking into...
If it's possible that logic in https://github.com/flutter/flutter/blob/188d1e1999c7dd2804d3802976248fdad12d4372/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L986 or elsewhere that I'm missing is accidentally still configuring plugin projects that we wish to exclude in release mode as dependencies to the app.

I now suspect that the issue was an oopsie on my part. We ideally want the app project to only depend on the dev dependency if it is a release build. I tried doing this in
https://github.com/flutter/flutter/blob/5c7d9d01bae7b279b7d95a37577f782c51847d5b/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L775-L783
but I don't think that actually works 😅 Need to figure out how to do something similar to api(...) but only for release builds.
Side note: ./gradlew :app:dependencies --configuration releaseRuntimeClasspath has been helpful visualizing the dependency graph of what's include in the release APK.

Are tests not runnable in release mode?

Basically no when my featured is enabled and if  the test depends on ‘integration_test’. Or at least that’s what @matanlurey has found so far is my understanding.

Need to figure out how to do something similar to api(...) but only for release builds.

Tried using debugApi and this did remove it from the graph printed by ./gradlew :app:dependencies --configuration releaseRuntimeClasspath but I still get the same error...
Note to self that I had to apply Matan's patch to modify the test plugin's example app's GeneratedPluginRegistrant.java.


Configuration and Diff  page not found

Plugin version
v1.5.0
NetBox version
v 3.6.4
Python version
3.9
Steps to Reproduce
/plugins/configbackup/devices/16/config/
The requested page does not exist.

Expected Behavior
i hope  this page is ok
Observed Behavior
The requested page does not exist.

This is the result of no commits being found and is intended.


fix: unable to open project has path include space

Description
fixed: #1661

Screencast
https://user-images.githubusercontent.com/38607460/170040755-6cf185dc-3371-42d9-8bd4-71d22db85dff.mov

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[ ] I checked that files in the assets folder are used by the extension itself
[ ] I checked that assets used by the README are placed outside of the metadata folder

Looks good to me!

Hi @pernielsentikaer
Thank you for your feedback. I'll test on more cases like that.

Thanks @immint023 - please have #1805 in mind, I'm fixing so deleted files are not in the list

Thanks @immint023 - please have #1805 in mind, I'm fixing so deleted files are not in the list

Okay, I'll update my PR. Thank you!

#1805 is now merged @immint023; you should be able to continue without any disruptions. Let me know if you need help with the conflicts.

I'm not sure if we should add any further than this, I think it's okay as is, what do you think @immint023

I'm not sure if we should add any further than this, I think it's okay as is, what do you think @immint023

Hi @pernielsentikaer If it's okay now, I think we should merge it first. I'll continue with your problem in next PR

I merged the conflicts, let's get it merged 🔥

Hi @immint023 👋
It seems to be doing the job pretty good. I tried to open a weird file I had in my temp folder, however, it's not possible to open it (it works fine in code)
Filename is: 10000000_176925064760892_686739283674657444_n.mp4?_nc_cat=110&ccb=1-7&_nc_sid=985c63&efg=eyJybHIiOjUzNCwicmxhIjoxMzIyLCJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ohc=dwdW4DuQo08AX8W9k8a&rl=534&vabr=297&_nc_ht=video.faar2-1.fna&oh=00_AT9YSigks6O
Can you think of a way to make it possible, so, like vscode, it's possible to open files like this too?
I'm looking forward to testing this extension again 🔥
Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

Hi @pernielsentikaer, I tried to reproduce the issue with the file name as you mentioned but it works fine on my side. Do you think we should investigate more for this case?
https://user-images.githubusercontent.com/38607460/170496187-d7552cc9-ae2e-47ec-9a1d-a368f560dda7.mov

It's because we rolled back to a stable version  #1811 since there were too many errors with the new way to retrieve items - like things missing and it only showed 10 items in total


Primer flow

Primers are a common need for labs, and will be required for more complex protocols, like Gibson assemblies.
The most basic application of a primer design will be a simple amplification.
poly amplify pUC19.gb --amplicon  "ATGACCATGATTACGCCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCGGGTACCGAGCTCGAATTCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCCTGATGCGGTATTTTCTCCTTACGCATCTGTGCGGTATTTCACACCGCATATGGTGCACTCTCAGTACAATCTGCTCTGATGCCGCATAG" > primers.txt pUC19_amplified.gb
primers.txt would be a tab separated value file which looks like (similar to what Snapgene provides):
Primer 1	ATGACCATGATTACGCCAAG
Primer 2	CTATGCGGCATCAGAGCA

While pUC19_amplified.gb would simply be a genbank file with only the primers + amplified sequence.
There are a few different flags that would be useful for poly amplify -

--primer_for "pUC19_for" --primer_rev "pUC19_rev" for naming the output primers in primers.txt
--amplicon "ATGC" amplifies the particular string
--range 0,0 amplifies a particular range of sequence
--no_amplify pGLO.gb prevents primers from amplifying a naughty sequence from a different file
--validate 10:20 --size 100:150 --coverage 100 --overlap 10:40 amplifies a particular range of sequence with a size within the size limitations of the --size flag, the coverage limitations of the --coverage tag, and the overlap limitations of the --overlap tag.

These 4 functions generally fulfill all needs of a biologist. The first few cover the use cases of your average cloner - they simply want to clone out an amplicon, and don't really care about more advanced features. The 5th, --validate covers the use case of people who build primers to validate things, like a colony PCR, or a validation PCR for clinical samples. I think these 2 use cases cover ~90% of the different kinds of uses of poly amplify
Use cases:
poly amplify
poly amplify pUC19.gb --primer_for "pUC19_for" --primer_rev "pUC19_rev"  --amplicon "ATGACCATGATTACGCCAAGCTTGCATGCCTGCAGGTCGACTCTAGAGGATCCCCGGGTACCGAGCTCGAATTCACTGGCCGTCGTTTTACAACGTCGTGACTGGGAAAACCCTGGCGTTACCCAACTTAATCGCCTTGCAGCACATCCCCCTTTCGCCAGCTGGCGTAATAGCGAAGAGGCCCGCACCGATCGCCCTTCCCAACAGTTGCGCAGCCTGAATGGCGAATGGCGCCTGATGCGGTATTTTCTCCTTACGCATCTGTGCGGTATTTCACACCGCATATGGTGCACTCTCAGTACAATCTGCTCTGATGCCGCATAG" > primers.txt amplified.gb
poly amplify range
poly amplify pUC19.gb --primer_for "pUC19_for" --primer_rev "pUC19_rev"  --range 146:469 > primers.txt amplified.gb
poly no_amplify
poly amplify pUC19.gb --range 146:469 --no_amplify pGLO.gb > primers.txt amplified.gb
poly validate
poly amplify SARs-CoV-2.gb --validate 30:29886 --size 375:425 --coverage 100 --overlap 30:50 > primers.txt many_amplified.gb
(Note: this is pretty much the exact use case of https://artic.network/ncov-2019, which is why this kind of thing is important. It also doesn't fit in well to other parts of the program)
Another example:
poly amplify pUC19.gb --validate 146:469 --size 0:500 --coverage 100 --overlap 0:0 > primers.txt amplified.gb
In this example, we really just want to amplify a fragment that we know this sequence is inside of so we can do some sanger sequencing or the like on it.
@jecalles thoughts on different use cases I might be forgetting?

Oh of course, the other flags of --tm x and --polymerase  are important. For example:
--primer_for "pUC19_for"
--primer_rev "pUC19_rev"
--range 146:469
--tm 65
--polymerase taq
 > primers.txt amplified.gb```

@Koeng101 this is extremely helpful. I've been looking for the polymerase melting temp reference you mentioned that NEB puts out but can't find it. Do you have a link for it?

https://tmcalculator.neb.com/#!/help
They have 3 equations on the bottom. Math time!

It looks like they just changed the salt correction for phusion but I was under the impression that they'd publish a data table of values that could be plugged into poly using the --polymerase flag. Does anything like that exist?

No, they just have the formulas for calculating the TMs there. I remembered incorrectly about the table :(

@Koeng101 what do you mean by validate. I'm trying to explain to some people what needs to be done here but I'm not sure.

@TimothyStiles I wrote a tool called VCF-kit in graduate school. The documentation points to some use cases where you can use a VCF to generate primers for the purpose of validating variants. Unfortunately I haven't had time to keep up with the fast-evolving python ecosystem which has made installing and maintaining VCF-kit a challenge. The tool itself can also be slow.
However, I'm mentioning it here as you should consider these applications for Poly. The vk primer tool would iterate through a VCF, construct a template that incorporated variants, generate primers for those variants on the basis of:

RFLPs: validation via restriction-enzyme-based assay.
Indels: validation via PCR length differences.
Sanger template generation

Curious to hear your thoughts on this functionality. Thanks!

@danielecook at a glance it looks feasible. Someone actually wrote a VCF parser in Go which may come in handy. We also have multi primer stuff that's going to be merged with PR #88 that should be pretty fast. Build problems on our end shouldn't be an issue either though we still need to fix some test issues on windows via PR #45.
Would you consider writing something that we can review and merge? You'd probably have teach us a few things through the code review process and have some strong tests, comments, and examples to prevent code rot but if this is something that you think would be useful to Poly's and VCF-kit's users I'd be happy to include it in our builds if it'll save you time overall.

We're starting to prioritize the library over the CLI so this thread is now a little stale.
If you'd like to see a new feature related to primers please open a new issue!


Time axis ticks formatting for base and senior unit

Changed default formatting for time units.
Bold style added to senior unit tick labels.

Let's review and merge https://github.com/chartjs/Chart.js/pull/4267 first. I think that it's not necessarily clear what the expected behavior is here in some scenarios without the alignment

@hurskiy-andriy could you rebase this PR against master?

I think that the main thing to address is etimberg's comment about modifying core.scale.js
The other thing I was going to mention was samples/scales/time/line.html. There are sort of weird dates that are bolded. I'm guessing this is because the majorUnit is week. Week and quarter don't make a lot of sense to me as being units people commonly refer to, so I would suggest we only use month and year as majorUnit

I agree that having an option to control the formatting makes sense. That's what was discussed in issue https://github.com/chartjs/Chart.js/issues/4187 describing the feature as well.
This is probably a good default to have. Here are some screenshots of the before and after. I think it's much cleaner and easier to digest the x-axis with this change.
Here's a sample from before:

Here's a sample with the changes:

@etimberg @simonbrunel I've been reviewing @hurskiy-andriy's change and trying to figure out how to remove moment from core.scale.js. I think the cleanest way to do this is to introduce the concept of major and minor ticks so that core.scale.js can draw them each differently
Right now all the ticks are stored in the ticks variable. Should we have a minorTicks and majorTicks and remove ticks? Or should we make ticks store an object like {value:123, major:true}? Other thoughts or suggestions?

I don't think we can just remove the ticks property since other stuff might use it. I'm ok with adding the concept of major ticks to the axis and storing them separately.

Changed ticks store to array of objects like `{value: '12AM', major: true}

@etimberg if scale.ticks are used by plugins, then it's a breaking change!

We can store all ticks in scale.ticks as were before like strings ("12 AM", "13 AM" ...) and major ticks in new property scale.majorTicks. When drawing ticks function should check every tick from scale.ticks if scale.majorTicks contains this tick. If so - draw tick with majorTick options.
In this case I think it will not be breaking change.

Is scale.ticks a public or private member? I would prefer to have it private and avoid extra lookups in a separate scale.majorTicks array/object.

Do we have to avoid breaking changes? Can we just set the version number to 3.0.0 for the next release?

I don't know if anyone is using scale.ticks or not. :/

I just did an audit of all the charts and plugins under the chartjs group on GitHub. None are using scale.ticks besides chartjs-chart-financial. Don't worry about chartjs-chart-financial though because it hasn't published an initial release yet, and I'll take responsibility for updating it before then.
Interestingly I discovered that the linear gauge chart also has the concept of major and minor ticks and has majorTicks and minorTicks options

@benmccann thanks, so it seems fine to change the internal structure of scale.ticks, could be interesting to add a note in the code that make it private explicitly.  I would not really care about options consistency with the LinearGauge chart because it's still based on Chart.js 1.x.

@simonbrunel do you think this can be merged?

It depends if we want to change how the options are exposed ({ticks: {minor: {}, major: {}, ... common ... })

Yes, let's update that first. @hurskiy-andriy would you be able to update that before we merge this PR?

Changed ticks storage back to array of string. Major ticks are determined through majorTicksIndexes array.

Thanks for changing the config options.
I'm curious why did you change the ticks storage back to an array of strings? I liked it better when you just had ticks instead of ticks and majorTicksIndexes. Is it possible to change it back?

@benmccann

If scale.ticks are used by plugins, then it's a breaking change!
So I change ticks back to array of strings for compatibility.

@benmccann @simonbrunel
I decided to revert back to array of string because the simonbrunel noticed in https://github.com/chartjs/Chart.js/pull/4268#issuecomment-305775350
Let's come to agreement what format should we use

@hurskiy-andriy he said afterwards in https://github.com/chartjs/Chart.js/pull/4268#issuecomment-306052609:

thanks, so it seems fine to change the internal structure of scale.ticks

Changed ticks storage to array of objects like {value: '12 PM', major: true}

I tested this locally. It mostly looks good. The one thing I would change is that I would remove week and quarter from interval. It's strange to have alignment on a week. E.g. I have an example that's aligning on July 2, 2017. I'm guessing that's the start of week 26 of the year or something, but really I want it aligned on July 1, 2017 since that's the start of the month.

'week' and 'quarter' time units are prevented from determining as major units. Instead 'month' (if minor unit == 'day') or 'year' (if minor unit == 'month') unit will be determined as major.

So this is good to merge?

Thanks for the update @hurskiy-andriy
@etimberg @simonbrunel I think we should be good to merge this one now


No module named 'controlnet_aux.depth_anything'

Discussed in https://github.com/Fannovel16/comfyui_controlnet_aux/discussions/412

Originally posted by shamikct July 23, 2024
While executing a ComfyUI workflow i get the following error for the Depth Anything node.
I have tried to reinstall the entire package several time with and without the ComfyUI Manger, but to no avail.
The quick fix is to append the dir path to PYTHONPATH, in my case /mnt/vol1/ComfyUI/custom_nodes/comfyui_controlnet_aux/src/, however, the question remains.
Version details
ComfyUI: 239014764a
Manager: V2.48
Here's the entire error:
Error occurred when executing DepthAnythingPreprocessor:

No module named 'controlnet_aux.depth_anything'

File "/mnt/vol1/ComfyUI/execution.py", line 152, in recursive_execute
output_data, output_ui = get_output_data(obj, input_data_all)
File "/mnt/vol1/ComfyUI/execution.py", line 82, in get_output_data
return_values = map_node_over_list(obj, input_data_all, obj.FUNCTION, allow_interrupt=True)
File "/mnt/vol1/ComfyUI/execution.py", line 75, in map_node_over_list
results.append(getattr(obj, func)(**slice_dict(input_data_all, i)))
File "/mnt/vol1/ComfyUI/custom_nodes/comfyui_controlnet_aux/node_wrappers/depth_anything.py", line 17, in execute
from controlnet_aux.depth_anything import DepthAnythingDetector

@Fannovel16

Fixed in https://github.com/Fannovel16/comfyui_controlnet_aux/commit/c47ccabe150aa9d4033a7154138ab82be306bd79


Removes Scalajs badge

Fixes https://github.com/frees-io/freestyle-rpc/issues/59

Codecov Report

Merging #62 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #62   +/-   ##
=======================================
  Coverage   89.38%   89.38%
=======================================
  Files          12       12
  Lines         113      113
=======================================
  Hits          101      101
  Misses         12       12

Continue to review full report at Codecov.

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


Remove generated note in header

@swift-ci please test

@swift-ci please test windows

@swift-ci please test windows

Not sure why windows fails on this one 🤔

CMake Error: File C:/Users/swift-ci/jenkins/workspace/swift-syntax-PR-windows/llvm-project/llvm/stdlib/public/Cxx/std/libstdcxx.modulemap does not exist.
CMake Error at C:/Users/swift-ci/jenkins/workspace/swift-syntax-PR-windows/swift/unittests/ClangImporter/CMakeLists.txt:1 (configure_file):
  configure_file Problem configuring file

CC: @egorzhdan @zoecarver

This was caused by @hyp in apple/swift#64177

Please test with following PRs:
https://github.com/apple/swift/pull/64241
@swift-ci please test Windows platform


T-Mobile pacbot

https://opensource.t-mobile.com/blog/posts/introducing-pacbot/
https://github.com/tmobile/pacbot

Added, thanks @0xdabbad00


How to train x2 model?

Hello, I use kernelGAN to generate x4 kernels.  If I want to train x2 model, should I re-generate x2 kernels with kernelGAN with --X2 parameters?  or could I prepare the datapair by x4 kernels?  What's more, could I finetune x2 model from pretrained RRDB_PSNR_x4.pth model ?

hello, do you know how to train x2 model now ??

hello, do you know how to train x2 model now ??

Hello, I use kernelGAN to generate x4 kernels. If I want to train x2 model, should I re-generate x2 kernels with kernelGAN with --X2 parameters? or could I prepare the datapair by x4 kernels? What's more, could I finetune x2 model from pretrained RRDB_PSNR_x4.pth model ?

hello, do you know how to train x2 model now ??

Hello, I use kernelGAN to generate x4 kernels. If I want to train x2 model, should I re-generate x2 kernels with kernelGAN with --X2 parameters? or could I prepare the datapair by x4 kernels? What's more, could I finetune x2 model from pretrained RRDB_PSNR_x4.pth model ?

hello, do you know how to train x2 model now ??

According to the source code, remove "--X4" in "CUDA_VISIBLE_DEVICES=4,5,6,7 python3 train.py --X4 --input-dir SOURCE_PATH" will meet your expectation


Cannot open properties on any file, program or drive

Description
When I try to open the properties for any file, drive or folder nothing happens.
Steps To Reproduce
1.-Open Files.
2.-Navigate to any directory or file
3.-Press the 'Properties' button.
Expected behavior
Open a properties window like this

Files Version
Version: <IP_ADDRESS> OS Version: 10.0.22557.1
Windows Version
Windows 11 Pro Dev 22557.1
Relevant Assets/Logs
debug_fulltrust.log

@SarcXE thank you for your feedback, this appears to be a regression in the latest Windows Insider build, can you report the issue on the Feedback Hub?


feat(app): confirm pick up tip button style

closes #8961
Overview
This PR fixes the CTA button styling when you confirm tip pick up in LPC
Changelog

changes some button stylings mentioned in the ticket

Review requests

I tested on my robot - in addition to fixing the styling, I also changed the colors of the buttons to be blue (as shown in figma). Please review to make sure everything looks ok.

Risk assessment
low, behind ff

Comparing this to the designs, it looks like we shouldn't be using the legacy AlertModal component here at all. It's buttons prop is old and inflexible (it only renders legacy OutlineButtons). It also renders the warning icon with a grey titlebar, which isn't a part of the design. Would you mind replacing this with a BaseModal instance and pass the PrimaryBtn and SecondaryBtn as children?

@b-cooper oh yeah, good call. I made the change. It should be good now but I'm not able to test how it looks in the LPC flow since i'm not by a robot.

@b-cooper I just tested this out and it looks good. However, it looks like using Modal looks better stylistically, more responsive, and resembles the Figma design compared to BasedModal.
BaseModal:

Modal:

Ended up using the BaseModal component since the Modal component is also legacy. Passed in borderRadius and overlayColor props and now it looks good.


Card freezes cyclically after a while on Firefox browser

Checklist:

[ x] I updated to the latest version available
[ x] I cleared the cache of my browser

Release with the issue: v5.2.0
Last working release (if known):
Browser and Operating System: Firefox/Debian 12

Description of problem:
After reaching the containing webpage, after about 20 seconds the card freezes for about 1 minute, while frigate docker logs stops outputting lines to console and the browser console emits an error line with the below content:
Failed to load ‘https://<domain.example>/api/camera_proxy_stream/camera.yard01?token=<security-token>’. A ServiceWorker intercepted the request and encountered an unexpected error.
Then the card automatically restarts live streaming of the camera and frigate docker continues logging to console. This happens cyclically.

Frigate card diagnostic information

{
  "ha_version": "2024.6.2",
  "card_version": "5.2.0",
  "browser": "Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0",
  "date": "2024-06-13T07:27:23.522Z",
  "frigate_version": {
    "3e71cafb764ad6e9b4d331d33d343bfa": "5.2.0/0.13.2-6476f8a"
  },
  "lang": "it",
  "timezone": "Europe/Rome",
  "git": {
    "build_version": "5.2.0-HEAD+g69249b6",
    "build_date": "Fri, 23 Jun 2023 15:26:26 GMT",
    "commit_date": "Thu, 22 Jun 2023 09:21:26 -0600"
  },
  "config": {
    "type": "custom:frigate-card",
    "cameras": [
      {
        "camera_entity": "camera.yard01"
      }
    ],
    "view": {
      "default": "live"
    },
    "live": {
      "zoomable": true
    },
    "elements": [
      {
        "type": "custom:frigate-card-menu-icon",
        "icon": "mdi:wrench",
        "style": {
          "left": "calc(100% - 38px)",
          "position": "absolute"
        },
        "tap_action": {
          "action": "url",
          "url_path": "http://<internal_ip>/web/admin.html"
        }
      },
      {
        "type": "custom:frigate-card-menu-icon",
        "icon": "mdi:cog",
        "style": {
          "left": "calc(100% - 74px)",
          "position": "absolute"
        },
        "tap_action": {
          "action": "navigate",
          "navigation_path": "/dashboard-cameras/yard01"
        }
      },
      {
        "type": "custom:frigate-card-menu-icon",
        "icon": "mdi:view-grid-outline",
        "tap_action": {
          "action": "navigate",
          "navigation_path": "/dashboard-cameras"
        }
      },
      {
        "type": "custom:frigate-card-menu-state-icon",
        "entity": "switch.yard01_detect",
        "tap_action": {
          "action": "toggle"
        }
      },
      {
        "type": "custom:frigate-card-conditional",
        "conditions": {
          "camera": [
            "camera.yard01"
          ]
        },
        "elements": [
          {
            "type": "custom:frigate-card-ptz",
            "service": "onvif.ptz",
            "style": {
              "left": "20px",
              "bottom": "60px",
              "background": "rgba(255, 255, 255, 0.0)",
              "transform": "scale(1.2, 1.2)"
            },
            "data_left": {
              "device_id": "<device_id>",
              "distance": 0.5,
              "speed": 0,
              "continuous_duration": 0.5,
              "move_mode": "ContinuousMove",
              "pan": "LEFT"
            },
            "data_right": {
              "device_id": "<device_id>",
              "distance": 0.5,
              "speed": 0,
              "continuous_duration": 0.5,
              "move_mode": "ContinuousMove",
              "pan": "RIGHT"
            },
            "data_up": {
              "device_id": "<device_id>",
              "distance": 0.5,
              "speed": 0,
              "continuous_duration": 0.5,
              "move_mode": "ContinuousMove",
              "tilt": "UP"
            },
            "data_down": {
              "device_id": "<device_id>",
              "distance": 0.5,
              "speed": 0,
              "continuous_duration": 0.5,
              "move_mode": "ContinuousMove",
              "tilt": "DOWN"
            },
            "data_zoom_in": {
              "device_id": "<device_id>",
              "zoom": "ZOOM_IN",
              "distance": 0.01,
              "continuous_duration": 0.01,
              "move_mode": "ContinuousMove"
            },
            "data_zoom_out": {
              "device_id": "<device_id>",
              "zoom": "ZOOM_OUT",
              "distance": 0.01,
              "continuous_duration": 0.01,
              "move_mode": "ContinuousMove"
            }
          }
        ]
      }
    ],
    "menu": {
      "style": "outside",
      "position": "bottom",
      "alignment": "left",
      "button_size": 30,
      "buttons": {
        "cameras": {
          "enabled": false
        },
        "frigate": {
          "enabled": true
        }
      }
    }
  }
}

Javascript errors shown in the web inspector (if applicable):
Failed to load ‘https://<domain.example>/api/camera_proxy_stream/camera.yard01?token=<security-token>’. A ServiceWorker intercepted the request and encountered an unexpected error.

Additional information:
IMPORTANT: Please note, this happens only with Firefox browser. Tested on Chromium and the card works always flawlessy.

[Issue cleanup] Please update to the latest build and let me know if you still have this issue:
https://github.com/dermotduffy/frigate-hass-card/releases/tag/v6.0.0-beta.1

Please re-open if this is confirmed still an issue with v6 releases.


filter by species and direct annotations

It would be awesome if you could facet on species to which there are direct annotations (e.g. minus IEA)
So for example, I want to know how many/which species have direct annotations to an given GO term, I don't want to see all the upper level taxa.

I'm not sure how this wouldn't be covered by the current annotation search, here with evidence, taxon, and direct annotation filtering:
http://amigo2.berkeleybop.org/amigo/search/annotation?q=*:*&fq=evidence_type_closure:"experimental evidence"&fq=taxon_closure_label:"Platyrrhini"&fq=annotation_class_label:"identical protein binding"&sfq=document_category:"annotation"

Well, I think that result isn't quite what I want, because I don't want only the closure of a taxon, I want a list of species with experimentally determined annotations. If there are very many species and annotations, you would have to review every page to determine which species were represented, right?
Also it is not very intuitive for choosing the filters that you have chosen?
How do I get to to the experimental evidence closure filter?
I find the filters on the left to be slightly unintuitive in their labels, maybe could be displayed hierarchically?

Spoke to @mellybelly, the query "Distribution by species of annotations to sensory perception of smell" available on Gannet and here: http://wiki.geneontology.org/index.php/Example_Solr_Queries#Distribution_by_species_of_annotations_to_sensory_perception_of_smell works for now.
This brings up some issues people are having with amigo taxon facets. I like being able to drill down the taxonomy but this is a geeky obscure use case. Most people just want to find "Human" and filter on that. Sometimes common groupings like mammal are also useful.
As an interim measure, I changed the yaml so that only direct taxa can be filtered within amigo (should be visible on labs instance soon).
But the plan for 2.3 is to have the display show a new facet, taxon_closure_subset, that will be just leaves plus a very limited set of grouping taxa (controlled via a manually edited subset). I suggest:

Mammalia
Vertebrata
Fungi
Metazoa
Viridiplantae
Eukaryota
Archaea
Bacteria

Yes that's lopsided but so is the annotation distribution. Note that the handy - buttons make composing "Invertebrata" trivial.
This also brings up an interesting experiment we could try, where we populate species as annotated objects, allowing you to query for all species that have sensory perception of smell, and get these back as rows, not facets. However, this doesn't satisfy any GO use case so we will put that on the backburner for now.

While we have several things close (including berkeleybop/bbop-js issues), there is nothing is nothing quite like the explanation and proposed fix here for the AmiGO-specific stuff. I'm going to hijack this issue.

There is an upstream component that @hdietze will have to help us out with as well.

The code is prepared to generate the new taxon_subset field. Next steps:

Create the subset (i.e. owl file with subset annotations)
Add owl file to loaded ontology
Make sure that the subset is properly configured

@hdietze will this mean that we need an additional file for loading here, or is this an include in something that we're already getting?

Additional file for now (it may be integrated into taxslim in future). Let's put it in the usual place go/extensions. Note we don't want to explicitly put the leaves in, these should be assumed.

Now code complete in amigo, golr, and owltools. See #247 for the (possibly) site dependent data side of things.


TypeError: Cannot read properties of undefined (reading 'elements')

TypeError: Cannot read properties of undefined (reading 'elements')
at StoryProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:201:101138)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at SnackbarProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:262:29113)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at HistoryProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:2690233)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at Media3pApiProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:238:9786)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at FileProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:246:68345)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at APIProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:213:3094)
at https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:236:3021012
at ConfigProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:201:113084)
at _ (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:5:25443)
at Fe (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:1:32060)
at ce (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:1:29079)
at FlagsProvider (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:213:3908)
at StoryEditor (https://www.cricketwebs.com/wp-content/plugins/web-stories/assets/js/wp-story-editor.js?ver=5a042ce20663b9f38756c841ab41c17a:5:46918)

Hi there @cricketwebs, thanks for getting in touch. All support for the Web stories plugin is provided on our WordPress.org support forum. If you create a new topic there, we'd be happy to take a look and help you troubleshoot. Thanks!


bring back custom styling for gulp

There were more custom styling, see https://github.com/OpenCollective/opencollective-website/pull/210

they should all be fixed now.


Link broken Fixed

Fixes #133
This PR is for [Naruto Shippuden].

[x] This issue is for enhancement/bug fixing.
[] This issue is an addition to JSON database.

[] Pull Request Title is of form Added [Anime Name].

[x] This addition is already on ongaku.

[x] This PR is an improvement to current addition.

[x] I have checked my addition locally and it is working and won't break existing entries.
[x] I have gone through Contribution Guidelines.
[x] This pull request will be closed if I failed to update it even once in a week.

@Lucifer24 change your PR comment to :
Fixes #133
This PR is for Naruto Shippuden.

[x] This issue is for enhancement/bug fixing.
[ ] This issue is an addition to JSON database.

[ ] Pull Request Title is of form Added [Anime Name].

[x] This addition is already on ongaku.
[x] This PR is an improvement to current additions.
[x] I have checked my addition locally and it is working and won't break existing entries.
[x] I have gone through Contribution Guidelines.
[x] This pull request will be closed if I failed to update it even once in a week.

i.e. a PR shouldn't be both for enhancement/bug fixing and an addition to JSON database.
and also checkboxes properly either they should be empyt like - [ ] or like - [x]

@aashutoshrathi i think its fine now

The link returns proper mp3 response, please cross-check.

Closing.


MB-10490 - duty location for internal API

Jira ticket for this change
Summary
Continued migration of the duty station name to duty location. References updated in the internal API and relevant places. Tried to keep the scope minimal - there's still some FE changes that need to be migrated.
A lot of the changed files are gen files, so you can scroll down most of the way in the PR preview to see real changes.
 Try to create a PPM move and make sure it succeeds [this is where we were running into some issues].
Verification Steps for Reviewers
These are to be checked by a reviewer.

Backend

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.

Messages

:book:
:link: MB-10490

  Generated by :no_entry_sign: dangerJS against 415b7dcdb3618a0e10287444d631e99a651028a2

After an initial pass through, the changes look fine to me. I will be going over this more thoroughly.
If it's useful, can a checkbox be added to the .github/PULL_REQUEST_TEMPLATE.md under the FE section to ensure that folks don't keep adding "DutyStation" instead of "DutyLocation"?

@YanZ777 good point - i will add this as a checkbox in the next PR for this work 😸


co19/LibTest/async/Timer/Timer.periodic_A02_t01 is flaky

The tests
co19/LibTest/async/Timer/Timer.periodic_A02_t01 RuntimeError (expected Pass)

are failing on configurations
vm-linux-debug-simriscv64

The test went from flaky to failing. From the log, it seems like a duration is slightly longer than expected. So it will probably revert to flaky again.

It's flaky on multiple configs: https://dart-ci.web.app/#showLatestFailures=false&test=co19/LibTest/async/Timer/Timer.periodic_A02_t01
Also went to failing today on Windows.
--- Command "vm" (took 04.000021s):
set DART_CONFIGURATION=DebugX64C & set DART_SUPPRESS_WER=1 & set DART_CRASHPAD_HANDLER=C:\b\s\w\ir\cache\builder\sdk\out\DebugX64C\crashpad_handler.exe & out\DebugX64C\dart.exe --sound-null-safety -Dtest_runner.configuration=vm-win-debug-x64c --ignore-unrecognized-flags --packages=C:\b\s\w\ir\cache\builder\sdk\.dart_tool\package_config.json C:\b\s\w\ir\cache\builder\sdk\tests\co19\src\LibTest\async\Timer\Timer.periodic_A02_t01.dart

exit code:
255

stdout:
unittest-suite-wait-for-done

stderr:
Unhandled exception:
Expect.isTrue(falseexpected=0:00:00.040000, actual=0:00:00.042635) fails.
#0      _fail (file:///C:/b/s/w/ir/cache/builder/sdk/tests/co19/src/Utils/expect.dart:18:5)
#1      Expect.isTrue (file:///C:/b/s/w/ir/cache/builder/sdk/tests/co19/src/Utils/expect_common.dart:23:7)
#2      check.<anonymous closure> (file:///C:/b/s/w/ir/cache/builder/sdk/tests/co19/src/LibTest/async/Timer/Timer.periodic_A02_t01.dart:34:12)
#3      _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
#4      _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
#5      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)

--- Re-run this test:
python3 tools/test.py -n vm-win-debug-x64c co19/LibTest/async/Timer/Timer.periodic_A02_t01

I think the test is too strict, the documentation mentions:

the time between two consecutive callbacks can be shorter and longer than duration

The only thing from the documentation we can rely on is:

No more than n callbacks will be made in duration * n time,

However, this test calls it with duration 0 and negative numbers. Which makes the documentation meaningless.
@lrhn What should Timer.periodic with 0 do? A hot loop? 🔥  And negative duration? 🤔  We should probably update the documentation to say negative duration is considered 0 or throw? And we should specify what the behavior is with duration 0.
I think if we say duration 0 is equal duration 0.000000000000001, we still can't write a meaningfull test, because we can only test that the maximum number of callbacks below infinite.

A Timer.periodic(Duration.zero, ...) whould still only trigger as a timer event, so after the current microtask queue has emptied. That we can check: Schedule microtask, start timer, schedule other microtask, have one of those microtasks schedule further microtasks iteratively for a while. Ensure that all of those microtasks have run before the timer callback.
Then have the timer callback start more microtasks again. Check that all of those have completed before the next timer callback.
Then stop, after a few successful itertions of that.
Can maybe even start a timer with a non-zero delay, the check that at least one zero-duration timer event happens before that. (Maybe more. Maybe not, depending on other delays, and how we actually schedule - which should be scheduling another timer after the previous one has run, which may or may not be after the non-zero timer was due.)
I believe a negative duration counts as a zero duration. (That was probably a mistake, but it is what we have, and it's also not worth changing/breaking.)
The one thing we (try to) promise with timers is that they're never early. If they are early, it's due to rounding of timers (asking for a delay of 0.100893 seconds, which Duration supports, when the timer only has millisecond granularity, like on the web, means it might trigger after 0.100 seconds).
That's the "no more than N calls in N×duration (possibly rounded-down)", but fewer is allowed.
The other thing we do, if there are fewer than N ticks, is to increment the tick counter to include how many ticks were skipped, rather than having up to N due timers run all at the same time.
That one should be checked to always increment by one per callback for a zero-timer. (The normal behavior would imply dividing by zero for a zero-duration timer, so it shouldn't try to do that. I hope that's what we have specified and implemented, but it's been a while since I looked, so this is from memory.)
We can't say anything about the absolute timing, only that each callback is definitely a timer event, and the next callback shouldn't happen before any other timer event which was already due when the current callback was called (and likely when it returned).
So, basically, a Timer.periodic(Duration.zero, ...) should trigger a new callback as a new zero-duration timer started when the current callback completes. That means "call back as soon as all microtasks, and any other due events and their microtasks, have been handled".
Since it's hard to know for sure which events are definitely due, there are limits to how precisely this can be tested, but some things should be possible.

@sgrekhov @eernstg Could you please work on fixing this test?

That said, in this case, which is a simlulated CPU, we probably just need to increase the safety margin. Which make the test rather meaningless.
So I'd change it to check that whenever it triggers, it triggers no earlier than a previously scheduled zero-timer event, no earlier than any currently or later scheduled microtasks, and earlier than a later scheduled zero or non-zero timer.
Without actual precise timing (which on a simulated CPU can become stale very quickly), it's hard to know anything else.


proposal: bytes: don't panic ErrTooLarge / remove it / refactor bytes.Buffer API

Hello!
Since Go 1.16 in std no code that uses bytes.ErrTooLarge.
Panicking with sentinel error is a bad example given the standard library to Go's newcomers. It leads to logic around of panic-recover instead of using error flow and errors.Is.
I ask you to pay attention to this.
History of changes:

@robpike introduced bytes.ErrTooLarge as sentinel error with error flow (link).
@robpike supported ioutil.ReadAll and introduced panicking (link).
@bcmills continued panic practice according to proposal (link).
@rsc rewrote ioutil.ReadAll and moved it in io (link). Now in io no dependency to bytes.ErrTooLarge.

P.S.
This code
func makeSlice(n int) []byte {
    // If the make fails, give a known error.
    defer func() {
        if recover() != nil {
            panic(ErrTooLarge)
        }
    }()
    return make([]byte, n)
}

can be rewrited as
func makeSlice(n int) (s []byte, err error) {
    defer func() {
        if recover() != nil {
            err = ErrTooLarge
        }
    }()
    return make([]byte, n), nil
}

But I have no idea about:
} else if c > maxInt-c-n {
    panic(ErrTooLarge)
}

@bcmills continued panic practice according to https://github.com/golang/go/issues/19624 (link).

In general a very large (*bytes.Buffer).Grow can fail in one of two ways: it can run the process out of memory (which causes an unrecoverable runtime throw), or it can fail to even compute a sensible size (which is what results in the aforementioned panic.
Both of those outcomes result from programmer errors, and should be avoidable through sensible bounds-checks on the caller side. So I don't see any benefit to removing the existing panic.

@bcmills I have nothing against panic in this case, but I'm confused by panic with public error.
What logic is expected for this error on the package client's side?

The proposed change is reasonable but it's not backward compatible.  I think that making this change would violate the Go 1 compatibility guarantee.
I'm going to close this issue.  Please comment if you disagree.
To answer your question, the client side is not expected to create a buffer so large that it can't be represented.  For buffers that can grow without bounds, add a bounds check.  Code is not expected to catch this panic, it's expected to avoid the panicking case.


Fixes LG Range Hood with APIv2

Fixes https://github.com/ollo69/ha-smartthinq-sensors/issues/394#issuecomment-2035622060 for LG Range Hood with APIv2.

Thanks @drwicid 👍


Struct metadata not initialized properly during metadata propagation.

Code:
    val gold = Array.empty[ForgeArray[Flt]](K) // ew
    val counts = Array.empty[UInt](K)
    for (i <- 0 until K) {
      gold(i) = Array.fill(D)(0.as[Flt])  // TODO: Fix
    }
    for (i <- 0 until K) { counts(i) = 0.as[UInt] }
    // Really bad imperative version
    def dist(p1: Rep[ForgeArray[Flt]], p2: Rep[ForgeArray[Flt]]) = p1.zip(p2){(a,b) => (a - b)**2 }.reduce(_+_)
    for (i <- 0 until N) {
      val pt = pts(i)
      val distWithIndex = cts.map{ct => dist(pt, ct) }.zipWithIndex
      val minIdx = distWithIndex.reduce{(a,b) => if (a._1 < b._1) a else b }._2

      counts(minIdx) = counts(minIdx) + 1
      for (j <- 0 until D) {
        gold(minIdx)(j) = gold(minIdx).apply(j) + pt(j)
      }

      println(counts.mkString(", "))
      for (x <- 0 until K) { println(gold(x).mkString(", ")) }
    }
    val actual = gold.zip(counts){(ct,n) => ct.map{p => p / n.to[Flt] }}.flatten

Causes error when attempting to meet metadata

This appears to be a fundamental issue between the SoA rules for symbol types and the way structured metadata is initialized. While initializing metadata for the distsWithIndex array, the inner type appears to be an array rather than a struct, but the data being written to it is still a struct.
When there's time, investigate this further. Can SoA be resolved with structured metadata? Should we throw the structure away entirely?


Fixing EPSG:3857 tile calculation

Added some extra logic to handle tiling with EPSG:3857 projected coordinates.

Thanks Nate, the changes look good to me. I added some comments and we can address those in a new PR. Going to merge this.


Ping Integration 404 Error

Rancher Server Setup

Rancher version: 2.5.9
Installation option (Docker install/Helm Chart): Helm Chart

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Proxy/Cert Details: N/A

Information about the Cluster

Kubernetes version: 1.20.8
Cluster Type (Local/Downstream): Local

Describe the bug
Setting up Ping Integration with correct cert/metadata (as confirmed in rancher v2.4.7) on newly created rancher 2.5.9 cluster.  When testing in part 2 (test and enable authentication) a 404 message appears on window pop-up.
To Reproduce

Setup ping account through Global -> Security -> Authentication -> Ping
Click box in step 2 to test ping

Result
404 error on https://[URL]/v1-saml/ping/saml/acs
Expected Result
Ping Successfully configured

To be clear, The same exact configuration (metadata/cert/key/SAML fields) was set up on a freshly installed rancher v2.4.7 cluster, which successfully configured Ping. When setting the same exact settings in rancher v2.5.9 cluster, Ping fails with the 404 error.

I had a HA cluster, it looks like i was able to setup PING after i scaled down the rancher pod to 1.
Steps:

scale down rancher pod to 1
Configure  SAML Ping
scale up rancher pod to 3+

Even though this is a temp fix, it should be investigated and fixed, as new clusters shouldnt have to scale down just to install an authentication method.

Shouldn't be stale. Still an issue

Still an issue bot. Wouldn't be stale if rancher engineers viewed tickets.

Still an issue bot. Wouldn't be stale if rancher engineers viewed tickets.

Error still occurs in Rancher 2.6.3


[Feature Request] Icons for the fan speeds and setups

Hi,
First, thanks a lot for this software! I've been switching my units to this, after yet another issue with the Panasonic cloud. But no more thanks to you!
So, just one cosmetic request, if it is even possible. It would be great to have icons for all the possibles actions. I mean, here is a snapshot of the Panasonic comfort cloud integration in home assistant:

Same with this code:

Also, setup has no icon. Here is a proposition:

How could we achieve this?
Thanks in advance!

@ParalaX002 How did you manage to get the options for fan speed (1...5 / Auto) and the preset selection (none / quiet / powerful)?
Like, what lines of code do i need to add to the ac.yaml to have these options when i visit the IP-address of my ESP.
Thank you for any help.


Reading .smr file: info

Hello,
I am opening two different .smr files with the following code:
from neo.io import Spike2IO

datafiles = ["CA2_PYR_060919.smr", "09071600_PC1_FiringPattern.smr"]
for datafile in datafiles:
    reader = Spike2IO(filename=datafile)
    bl = reader.read(lazy=False)[0]
    for seg in bl.segments:
        for asig in seg.analogsignals:
            print("printing current signal")
            print(asig)
            print(asig.units)
            print(asig.sampling_rate)

And I am getting the following output:
File 1:
printing current signal
[[ 4.9975586e+00 -2.0288086e+00 -5.0000000e+00  4.8828125e-03]
 [ 4.9975586e+00 -2.0263672e+00 -5.0000000e+00  4.8828125e-03]
 [ 4.9975586e+00 -2.0239258e+00 -5.0000000e+00  4.8828125e-03]
 ...
 [-5.0000000e+00 -2.0434570e+00 -5.0000000e+00  4.8828125e-03]
 [-5.0000000e+00 -2.0483398e+00 -5.0000000e+00  4.8828125e-03]
 [-5.0000000e+00 -2.0410156e+00 -5.0000000e+00  4.8828125e-03]] V
1.0 V
10000.0 Hz

File 2:
printing current signal
[[-74.24927]
 [-74.21875]
 [-74.21875]
 ...
 [-75.21057]
 [-75.21057]
 [-75.22583]] mV
1.0 mV
20000.0 Hz
printing current signal
[[-1.9836426]
 [-2.2888184]
 [-2.1362305]
 ...
 [-2.2888184]
 [-2.2888184]
 [-1.9836426]] pA
1.0 pA
20000.0 Hz

From the above data structure, one has to manually specify where the signals of interests are (e.g., in my case for V, the values in the 4rd position of every array for File 1, and the values in the 1st position of the first analog signal for File 2).
Nonetheless, I was wondering whether I necessarily need to flatten the analog-signal array after opening the file. This is not a problem in general, but it may take some time for big files, so I was just curious on whether a faster indexing is available at opening time, maybe in the rawio?!
Thanks.
Luca

Hi Luca,
I don't I totally anderstand your question.
The actual way to handle channel loading on demand can be this one
bl = reader.read_block(lazy=True)
for seg in bl.segments:
        for lazy_asig in seg.analogsignals:
             asig = lazy_asig.load(channel_indexes=[0])
             # asig.shape will be (nsample, 1)

Note that you can still use the old behavior of neo with even with lazy mode.
When we use to split each channel to a analogsignal like this
With
bl = reader.read_block(lazy=True, signal_group_mode='spli-all')
for seg in bl.segments:
        for lazy_asig in seg.analogsignals:
            # here the loop is one channels
            if do_I_need_this_channel(lazy_asig):
                 asig = lazy_asig.load()
                 # asig.shape will be (nsample, 1)

In that case you will get one lazy analogsignal per channel.
Does it help ?

Can I close this ?


Chapter lost

Source information
Sakuranovel
Steps to reproduce

Expected behavior
Provide an example of the issue.

Actual behavior

LNReader version
Ver "1.1.16"
Android version
Android 11
Other details

Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 1.1.16.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

This novel also :Conquer another world with the power of minecraft!

This novel also :Conquer another world with the power of minecraft!

Doesn't seem to exist on the site anymore.
Not able to reproduce the issue. Reopen and mention Novel and Chapter names if the issue still persists


Set current directory as default input path

Expected Behavior
When I run detekt on the CLI without specifying --input, the CLI will scan the current working directory and subdirectories.
Current Behavior
detekt requires a path to be set for --input
Context
Makes CLI a little more friendly to use :)

Yes, good defaults are important but I also think that many will do the mistake to run it on their home folder :D.

Then they get everything reported once and be doomed for the rest of their life. Joke aside. I would like it too.

Good point. This definitely makes sense.

Closed by #1308 merge.


is it possible to dump ngrok and use gradio?

Bro,
Ur code just works fine with almost all models with the tweaking in yml file. I even made one for Kaggle but as kaggle doesnt allow tunnelling via ngrok, it got me banned.
So, I was thinking if its possible to dump ngrok tunnel and use gradio with --share ,..
I'm noob with gradio n all, so if u can convert this code with gradio for kaggle, will be thankful.

Hi jaj00x,
Sorry to say, but it seems to be at least an uneasy task, if not impossible at all. Invoke Ai uses React for UI – not Gradio. So, (as I see it), it would either need to rewrite the entire app using Gradio, or to somehow inject the existing app into the Gradio code.
There is a well-known repo from AUTOMATIC1111, which uses Gradio. It doesn't have some unique Invoke Ai features, though.
Nevertheless, it would be helpful to wait here for some other people's thoughts on the topic. I do not really have enough experience with Gradio.


Azure Service Bus scaler cannot get queue length

Report
Using KEDA in Azure AKS with Azure Service Bus, on an existing queue with active messages, Azure Service Bus scaler cannot get queue length and fallback to fallback.replicas.
Some other scalers like Cron, CPU, Memory worked properly.
Expected Behavior
Azure Service Bus scaler should be able to get queue length and scale pods base on it.
Actual Behavior
Azure Service Bus scaler couldn't get queue length and throw error invalid queue runtime properties: no CountDetails element.
Steps to Reproduce the Problem

Create Azure Service Bus namespace, queue and add message into queue
Install KEDA with Helms
Create ScaledObject with Azure Service Bus scaler.
ScaledObject has error event invalid queue runtime properties: no CountDetails element. KEDA operator has error and fallback to default replicas.

Logs from KEDA operator
2023-11-29T10:42:58Z	ERROR	azure_servicebus_scaler	error getting service bus entity length	{"type": "ScaledObject", "namespace": "dev", "name": "xxx-service", "error": "invalid queue runtime properties: no CountDetails element"}
github.com/kedacore/keda/v2/pkg/scalers.(*azureServiceBusScaler).GetMetricsAndActivity
	/workspace/pkg/scalers/azure_servicebus_scaler.go:262
github.com/kedacore/keda/v2/pkg/scaling/cache.(*ScalersCache).GetMetricsAndActivityForScaler
	/workspace/pkg/scaling/cache/scalers_cache.go:139
github.com/kedacore/keda/v2/pkg/scaling.(*scaleHandler).GetScaledObjectMetrics
	/workspace/pkg/scaling/scale_handler.go:508
github.com/kedacore/keda/v2/pkg/metricsservice.(*GrpcServer).GetMetrics
	/workspace/pkg/metricsservice/server.go:47
github.com/kedacore/keda/v2/pkg/metricsservice/api._MetricsService_GetMetrics_Handler
	/workspace/pkg/metricsservice/api/metrics_grpc.pb.go:99
google.golang.org/grpc.(*Server).processUnaryRPC
	/workspace/vendor/google.golang.org/grpc/server.go:1343
google.golang.org/grpc.(*Server).handleStream
	/workspace/vendor/google.golang.org/grpc/server.go:1737
google.golang.org/grpc.(*Server).serveStreams.func1.1
	/workspace/vendor/google.golang.org/grpc/server.go:986
2023-11-29T10:42:58Z	INFO	fallback	Suppressing error, falling back to fallback.replicas	{"scaledObject.Namespace": "dev", "scaledObject.Name": "xxx-service", "suppressedError": "invalid queue runtime properties: no CountDetails element", "fallback.replicas": 2}
2023-11-29T10:42:58Z	ERROR	azure_servicebus_scaler	error getting service bus entity length	{"type": "ScaledObject", "namespace": "dev", "name": "xxx-service", "error": "invalid queue runtime properties: no CountDetails element"}
github.com/kedacore/keda/v2/pkg/scalers.(*azureServiceBusScaler).GetMetricsAndActivity
	/workspace/pkg/scalers/azure_servicebus_scaler.go:262
github.com/kedacore/keda/v2/pkg/scaling/cache.(*ScalersCache).GetMetricsAndActivityForScaler
	/workspace/pkg/scaling/cache/scalers_cache.go:129
github.com/kedacore/keda/v2/pkg/scaling.(*scaleHandler).GetScaledObjectMetrics
	/workspace/pkg/scaling/scale_handler.go:508
github.com/kedacore/keda/v2/pkg/metricsservice.(*GrpcServer).GetMetrics
	/workspace/pkg/metricsservice/server.go:47
github.com/kedacore/keda/v2/pkg/metricsservice/api._MetricsService_GetMetrics_Handler
	/workspace/pkg/metricsservice/api/metrics_grpc.pb.go:99
google.golang.org/grpc.(*Server).processUnaryRPC
	/workspace/vendor/google.golang.org/grpc/server.go:1343
google.golang.org/grpc.(*Server).handleStream
	/workspace/vendor/google.golang.org/grpc/server.go:1737
google.golang.org/grpc.(*Server).serveStreams.func1.1
	/workspace/vendor/google.golang.org/grpc/server.go:986

KEDA Version
2.12.1
Kubernetes Version
1.27
Platform
Microsoft Azure
Scaler Details
Azure Service Bus
Anything else?
Queue

ScaledObject
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: xxx-service-blue
  namespace: dev
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: xxx-service-blue
  pollingInterval: 15
  minReplicaCount: 1
  maxReplicaCount: 10
  fallback:
    failureThreshold: 3
    replicas: 2
  advanced:
    restoreToOriginalReplicaCount: true
    horizontalPodAutoscalerConfig:
      name: xxx-service
      behavior:
        scaleDown:
          stabilizationWindowSeconds: 600
          policies:
            - type: Pods
              value: 1
              periodSeconds: 120
        scaleUp:
          stabilizationWindowSeconds: 0
          policies:
            - type: Percent
              value: 100
              periodSeconds: 60
            - type: Pods
              value: 2
              periodSeconds: 60
          selectPolicy: Max
  triggers:
    # Parametric scaling
    - type: azure-servicebus
      metadata:
        messageCount: "10"
        queueName: xxx_check_queue
        connectionFromEnv: SERVICE_BUS_ENDPOINT
    - type: cpu
      metricType: AverageValue
      metadata:
        value: "1500m"
    - type: memory
      metricType: AverageValue
      metadata:
        value: "1.5Gi"

Hello,
Could you double-check if there is any error in the queue name or the service bus connection? This issue is weird because the "Steps to Reproduce the Problem" section is covered by e2e tests:
https://github.com/kedacore/keda/blob/main/tests/scalers/azure/azure_service_bus_queue/azure_service_bus_queue_test.go

Hi,
I've double checked and sure that the queue name is correct. Perhaps it couldn't get the environment variable SERVICE_BUS_ENDPOINT from the main pod, as the pod still can send/receive message to/from the queue.
Is there any configs to enable verbose/debug logging on the KEDA operator to debug?

Is there any configs to enable verbose/debug logging on the KEDA operator to debug?

Yeah, you can set logLevel to debug. If you are using helm chart you can set them via values: https://github.com/kedacore/charts/blob/main/keda/values.yaml#L313-L340

Turn out, the scaler polling too much Service Bus the whole namespace get throttled, anh it can't get the queue length out.
Not exactly a bug but a feature to cache scaler metrics between multiple scaled objects would be nice.

If this is your case, and taking into account that your pollingInterval is the same as the HPA interval, you can enable the metrics cache.
It will reduce the request to Service Bus because metrics server requests will be served from cache, and the cache will be updated every pollingInterval https://keda.sh/docs/2.12/concepts/scaling-deployments/#caching-metrics

@JorTurFer Do you know if this throws a specific exception related to throttling? We might want to give some more visibilities.

I've no idea, but I don't think so as we are printing the SDK error :/
https://github.com/kedacore/keda/blob/e8fcb84d8f1c4eecb52d0c2e7305450e7a699319/pkg/scalers/azure_servicebus_scaler.go#L315-L318


Bump JupyterHub chart

Bump JupyterHub to latest chart. 03215dd is from April and does not capture several improvements. I noticed the need for this with CHP version and the redirection to https port.

https://github.com/jupyterhub/zero-to-jupyterhub-k8s/compare/03215dd...dcde99a is the diff between the two versions. I'll take a quick look at it before hitting merge as I don't know exactly all the things that have changed and whether we can deploy this straight to mybinder.org or if we need to do some adjustments to BinderHub or other dependencies.


Persist data when using react-widgets for a wizard form

So, I am using react-widgets using a Multiselect wrapper in a wizard form. When the form is filled and the next button is clicked, the data is not being persisted and the field becomes blank when a back button is clicked.
Is there an additional mechanism to make this happen? I am using using 6.0.0-rc.2.
Thanks

For wizards, you need to set destroyOnUnmount to false, or it will automatically clear after submitting.
export default reduxForm({
form: 'wizard',
destroyOnUnmount: false,
validate: validateForm
})(somePage)
Refer to the updated rc.4 examples and docs for more info.

I hope @fini's hint helped you @tejans24.
I suggest asking again at StackOverflow
In case you need further help with React Widgets and Redux Form integration, we recommend you to ask again at StackOverflow, using the redux-form tag.
As usual, don't forget to explain your question well and show what you've got so far!
This is because the GitHub issue tracker is better suited for discussions related to bugs and improvements of Redux Form.
Meanwhile, StackOverflow is better at keeping popular questions visible, while separating feature-related questions from help-related questions.
Thanks for using Redux Form!