Es6

Major change-up in this one. Good news is that the external API to meyda should remain precisely the same as it has ever been.
Major caveat alert: :warning:  : this doesn't yet work. I've converted the modules and the class to ES6, but I haven't yet properly integrated them nor edited them. I have some ideas for changes to the internal APIs that I'll detail in future commit messages, which need to get done before it will work.
New things

ES6
The whole thing is refactored into a set of ES6 modules. This is obviously hugely advantageous in that we can now write feature extractors in individual files, and we have the ability to test them far more easily than we would have before. Additional benefits include but are not limited to: woo scope!, classes, and learning.

Gulp build system
At the moment, using ES6 requires the use of a build system for browser compatibility. I went with babel for transpilation to es5, and gulp (and a number of gulp libraries) to concatenate, uglify, and source-map the distribution file.

Testing (not yet)
I've got a solid plan in place for testing meyda. We should use mocha and an assertions library like chai to write unit tests for each of the individual feature extractors, utility functions and helper classes. Admittedly I haven't quite figured out a way to do integration testing, at least until node-web-audio-api is more usable, but there's definitely a lot more separation of logic we can do in the main class which would stand us in good stead going forward.

Things I took away

I got rid of the documentation, website, and audio files from the master branch.
You may not agree with me here, but I think that keeping these separate (i.e. on the gh-pages branch) is an advantage. That way, extraneous documentation files are not getting in the way of development, and the gh-pages branch can become an example of an integration in and of itself.

I merged this into v1.1 instead.


Add index for contacts list

Add an alphabetical index scrollbar for contacts list. I am not good at designing, so the style may not look very nice.

This looks interesting. But why, if there is a https://github.com/boynet/Framework7-Indexed-List-plugin plugin already exist. I just didn't want to move it to F7's core because it is pretty rarely used. Maybe there is a more sense to PR it to https://github.com/boynet/Framework7-Indexed-List-plugin plugin?

OOOOOH~~, I really do not know that there is another plugin exist. I write this plugin in my own project by myself.


Update docs

WIP

[x] Fix broken links
[x] Remove init from showing in classes with no initialiser
Add visualisations to design considerations (TODO in future PR)
[x] Fix RTD theme issue not showing borders properly:
This is due to https://github.com/pradyunsg/furo/blob/main/docs/changelog.md the 2023.03.23 release of Furo, changed the API default background to transparent. On my local machine I didnt have the latest version installed hence the discrepancy.

Codecov Report

Merging #57 (05ad351) into main (15835c5) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #57   +/-   ##
=======================================
  Coverage   74.97%   74.97%
=======================================
  Files          35       35
  Lines        1119     1119
  Branches      172      172
=======================================
  Hits          839      839
  Misses        280      280

Flag
Coverage Δ

Unit_Tests
74.97% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

The design considerations part can be done in a future PR,  all of the major issues with the docs are sorted besides the attribute formatting which is a bit of a pain.

I don't think we need to add a separate 'Visualisation Examples' on the left. I think we can remove this in the next PR.


Opensearch plugin doesn't support using Grafana configured time zone for ES queries

While using Grafana for data visualization, I noticed that the Opensearch plugin doesn't support using the time zone configured in Grafana for ES queries. Regardless of how I change the time zone settings in Grafana, the Opensearch plugin always uses the UTC time zone for queries.
Expected result: The Opensearch plugin should support using the time zone configured in Grafana for ES queries to ensure data accuracy and consistency.
Steps to reproduce:
Set different time zones in Grafana, such as UTC+8, UTC-5, etc.
Create a panel based on the Opensearch data source and set the time zone to "auto".
Observe the time range and display of the query results.
Actual result: Regardless of the time zone set in Grafana, the Opensearch plugin always uses the UTC time zone for queries, resulting in inaccurate or inconsistent data.
Suggested solution: Add support for using the time zone configured in Grafana for ES queries to the Opensearch plugin to ensure data accuracy and consistency. An option can be added in the plugin settings to allow users to choose whether to use the time zone configured in Grafana for ES queries. Additionally, updating the plugin documentation to explicitly state that the plugin doesn't support using the time zone configured in Grafana for ES queries can be considered.

@thislyc thanks for reporting your issue, we're trying to recreate it on our end. Do you know:

What version of Grafana you're running
What version of the open search plugin you're running?
What sort of  timerange you have selected (ex: relative time of last 5 min vs a specific time selection)

I looked in main grafana and noticed there does seem to be an open issue around relative timezones, so it's possible you're running into that?: https://github.com/grafana/grafana/issues/59665
I believe this plugin works the same as all grafana plugins in which it:

takes the selected time range in the user's timezone and converts that to the same time selection but in the utc equivalent
a query is then made with that utc selection
the results are then shown in to the user in the user's timezone

Can you explain more how converting a query to UTC and back would result in inaccurate or inconsistent data? I would expect the opposite?

What version of Grafana you're running
v9.2.5

What version of the open search plugin you're running?
2.1.0

What sort of timerange you have selected (ex: relative time of last 5 min vs a specific time selection)

last 6 hour

I am in UTC+8 time zone, no matter how I modify the time zone settings on the dashboard
I find that there is always a delay in the data
But the same dashboard uses the ElasticSearch plug-in in grafana 8.5, and there is no time delay

@thislyc thanks for that! Unfortunately I still haven't been able to reproduce this, so a few more questions:

how are you running grafana? Is it self hosted, on Grafana Cloud etc?
can you talk me through your timezone settings for server, organization, team and personal: https://grafana.com/docs/grafana/latest/administration/organization-preferences/#organization-preferences
Does this seem to happen for all open search queries or a particular type of query?
What version of opensearch are you running?

how are you running grafana? Is it self hosted, on Grafana Cloud etc?
It self hosted

can you talk me through your timezone settings for server, organization, team and personal:

Does this seem to happen for all open search queries or a particular type of query?

all open search queries

What version of opensearch are you running?

In fact I don't use opensearch, but ElasticSearch6.5

Thanks for that @thislyc one more clarifying q are you running Elastic Search 6.5 through Amazon's Open Search Service or is it self hosted?

Thanks for that @thislyc one more clarifying q are you running Elastic Search 6.5 through Amazon's Open Search Service or is it self hosted?

Self hosted

Hi @thislyc, we haven't been able to reproduce this yet.

Create a panel based on the Opensearch data source and set the time zone to "auto".

Do you have a screenshot of setting the time zone to "auto"? For the time zone picker, there's only a "Default" option.
Can you share the dashboard JSON? You can do so as follows:

Open the dashboard you want to export.
Click the Share icon.
Click Export.
Toggle on the "Export for sharing externally" option
Click Save to file.


authenticate_request fetches the JWKS repeatedly

authenticate_request seem to fetch the jwks repeatedly (function fetch_jwks) to find the right public key.
is it possible to have this cache the public key instead of doing network calls on every authenticate request call?
We use authenticate_request as part of our authentication middleware so every API call will trigger this.

        # Authenticate request using Clerk SDK
        auth_state: RequestState = clerk_client.authenticate_request(
            httpx_request,
            AuthenticateRequestOptions(
                jwt_key=settings.CLERK_JWT_KEY,
            ),
        )

Providing JWT key upfront helps for me


Some questions on Clingo C API

I am using Clingo C API for a project. It will be helpful for me to know the answers to the following questions:

If I add a clause via clingo_propagate_control_add_clause, can I check via Clingo API whether the added clause is conflicting with the current assignment. Note that there was no conflict/unit propagation before adding the clause.
Can I check it via clingo_assignment_has_conflict? If the result of clingo_assignment_has_conflict is false, then can I be sure that the added clause is a conflicting clause?
If I add a clause via clingo_propagate_control_add_clause, can I check via Clingo API whether the added clause is propagating some literal(s) w.r.t the current assignment. Note that there was no conflict/unit propagation before adding the clause.
Can I check it via clingo_propagate_control_propagate? If result parameter of clingo_propagate_control_propagate is true, then can I be sure that the added clause is a propagation clause?
How I add multiple propagation clause via clingo API? Is the following Add_Multiple_Clause() function sufficient?

function Add_Clause(control, clause):
      bool result;
      // add the clause
      if (!clingo_propagate_control_add_clause(control, clause, sizeof(clause)/sizeof(*clause), clingo_clause_type_learnt, &result)) { return "NOT OK" }
      if (!result) { return "NOT OK" }
      // propagate it
      if (!clingo_propagate_control_propagate(control, &result)) { return "NOT OK" }
      if (!result) { return "OK" }

function Add_Multiple_Clause(control, clause_list):
      foreach clause in clause_list:
            if Add_Clause(control, clause) == "NOT OK":
                    return;  // Can't add the remaining propagation clauses
      return;  // All propagation clauses addition done

I am using Clingo C API for a project. It will be helpful for me to know the answers to the following questions:

If I add a clause via clingo_propagate_control_add_clause, can I check via Clingo API whether the added clause is conflicting with the current assignment. Note that there was no conflict/unit propagation before adding the clause.
Can I check it via clingo_assignment_has_conflict? If the result of clingo_assignment_has_conflict is false, then can I be sure that the added clause is a conflicting clause?

The only way a clause can be conflicting right away is if all it's literals are false. You could check this yourself using the assignment.

If I add a clause via clingo_propagate_control_add_clause, can I check via Clingo API whether the added clause is propagating some literal(s) w.r.t the current assignment. Note that there was no conflict/unit propagation before adding the clause.
Can I check it via clingo_propagate_control_propagate? If result parameter of clingo_propagate_control_propagate is true, then can I be sure that the added clause is a propagation clause?

No, if the result parameter is true, literals might have been propagated or not. You only know that there was no conflict and the solver does not have to backtrack. With clingo 5.5 you can use clingo_assignment_trail_size to infer the number of currently assigned literals. If you call it before and after propagation, you should be able to infer how many literals have been propagated. The solver might already assign literals in unit resulting clauses. I am not sure. This would be different from propagation..

How I add multiple propagation clause via clingo API? Is the following Add_Multiple_Clause() function sufficient?

Your pseudo code does not handle errors properly. If an API function returns false, then there was an error, the system in most cases cannot recover from. The result parameter is another story. It just indicates that no further add_clause/propagate calls should happen. In the case that there was no error, your code looks right.

The only way a clause can be conflicting right away is if all it's literals are false. You could check this yourself using the assignment.

In the case of conflict, first I am checking whether the clause is a conflict clause or not. I have checked this as follows:
Let's say the clause = [10, -12, 15, -18]. If the sign of a literal in the clause is negative (resp. positive), then it is assigned true (resp. false) and I am checking the assigned value by clingo_assignment_truth_value.
After adding the clause, what clingo_assignment_has_conflict will return? Won't it return true (as I added a conflict clause)?

The only way a clause can be conflicting right away is if all it's literals are false. You could check this yourself using the assignment.

In the case of conflict, first I am checking whether the clause is a conflict clause or not. I have checked this as follows:
Let's say the clause = [10, -12, 15, -18]. If the sign of a literal in the clause is negative (resp. positive), then it is assigned true (resp. false) and I am checking the assigned value by clingo_assignment_truth_value.
After adding the clause, what clingo_assignment_has_conflict will return? Won't it return true (as I added a conflict clause)?

To be honest I don't know. If add_clause returns false, then the solver has to backtrack. I don't know if this entails that has_conflict will return true if a conflicting clause has been added. @BenKaufmann might have an answer here. Other than this, I don't think that there is any good use for ever calling the has_conflict function. It is unnecessary.

@rkaminsk Sorry, I somehow missed the notification.

If add_clause returns false, then the solver has to backtrack. I don't know if this entails that has_conflict will return true if a conflicting clause has been added.

No, it does not. The return value only indicates that the solver has to backtrack before it can continue (hence, the caller must not continue adding clauses/propagation) but at this point, the clause has not yet been added (it's only added once the propagator's propagate function has returned) and so the assignment is not conflicting.


Refactors Service Management

Refactors how services are managed by the operator to support different configuration sources, i.e. Contour and Gateway.
Requires: https://github.com/projectcontour/contour-operator/pull/248
Fixes: https://github.com/projectcontour/contour-operator/issues/256

/hold until Gateway API implementation plan is resolved.

Closing since GatewayClass and Gateway controllers are being migrated to Contour.


silence: add cache for silence matchers

compiling regex silence matchers on every query is expensive, therefore
caching them as soon as they are gossiped through the mesh
@fabxc
a microbenchmark showed roughly a 80x improvement for precompiled regex vs. compiled on every use

You have to either hold the RLock in query() until after the filtering is done or give the cache its own mutex.
The first option makes probably more sense until we know whether the filtering is actually taking very long in some cases.

Yes I felt like there was a missing lock in there, but wasn't sure how to handle it.

👍

Fixed that failing build problem @fabxc


igir: init at 2.0.0

Description of changes

https://igir.io
A video game ROM collection manager to help filter, sort, patch, archive, and report on collections on any OS.
Closes https://github.com/NixOS/nixpkgs/issues/239848
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

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

[X] Fits CONTRIBUTING.md.

Um there is something about a conflict, but I don't understand why ...

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/2640

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

1 package built:

igir

Looks like a newer version was reccently released https://github.com/emmercm/igir/releases/tag/v1.9.4

I've updated it

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

1 package built:

igir

It's been updated to 2.0.0 now. Jeez. https://github.com/emmercm/igir/releases/tag/v2.0.0

It's been updated to 2.0.0 now. Jeez. https://github.com/emmercm/igir/releases/tag/v2.0.0

Nice, I've updated it again

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

1 package built:

igir

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1180


UserId not sent when creating account in checkout process

Current behavior
UserId not sent when creating account in checkout process. The create order request is being sent before the login is over.
Expected behavior
UserId should be sent when creating account in checkout process. The create order request is sent after the login is over and userId has been acquired.
Steps to reproduce the issue

Got to checkout process while logged out
Create login at checkout process
Finish the checkout process
See that place order request is sending empty UserId in reuqest payload

Can you handle fixing this bug by yourself?

[ ] YES
[x] NO

Which Release Cycle state this refers to? Info for developer.
Pick one option.

[ ] This is a bug report for test version on https://test.storefrontcloud.io - In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
[ ] This is a bug report for current Release Candidate version on https://next.storefrontcloud.io - In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
[x] This is a bug report for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version hotfix - In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

I test it now, and I got a userId on request payload when clicked Place the order, after creating new account from checkout like you wrote. Tried to reproduce it like you wrote above. Am I missing something?


Allow filtering by request or permissions

It would be helpful to be able to optionally use the request object when filtering a model field's queryset. One scenario might be permissions based, so that a user is only shown references they have the rights to.

I like the idea of permissions, but get_queryset isn't the right place. Besides you could always overwrite this methods in your own code.
I'm looking forward to see a proper implementation of permission from you, thanks a lot for you contribution.

I was simply trying to enhance the filtering capabilities with the least amount of changes to the django_select2 package. Permissions was just one use case which I needed it for. I also didn't want to impose permission changes on the project. I am using django-guardian to handle most of the permissions.
Yes, I can override get_queryset, but it also requires get_results to pass in request, so I didn't want to override both in case there were ever any improvements, or changes to it later. I am not sure where else filtering should be done, since it is immediately changed from queryset to a list / tuple by get_results and the queryset is the best place to handle filtering. Otherwise, I think the view would have to be refactored.
Could you perhaps clarify what you are thinking of? Thanks,

It just feels odd to pass the request to a get_queryset method. In django's class based views, the request and kwargs are accessible over the class instance. This might be a good idea here to?


Auto_select_gpus always choose gpus [0,1] when devices=2, strategy = dp, accelarator = 'auto'

🐛 Bug
I have tried to use auto_select_gpus in the server to train multiple models concurrently. The first model already occupied 13GB VRAM and 6GB VRAM in GPUs [0,1] respectively. However, the expected behaviors that select different GPUs didn't happen.

Environment before launching BoringModel

To Reproduce
The following BoringModel is used to test the auto_select_gpus. Launch the following codes twice in separate terminals. When the second model is launched, we may observe that the GPUs [0,1] is still being selected.

The first line of output indicate the GPUs [0,1] is still being selected.

import os

import torch
from torch.utils.data import DataLoader, Dataset

from pytorch_lightning import LightningModule, Trainer

class RandomDataset(Dataset):
    def __init__(self, size, num_samples):
        self.len = num_samples
        self.data = torch.randn(num_samples, size)

    def __getitem__(self, index):
        return self.data[index]

    def __len__(self):
        return self.len

num_samples = 10000

class BoringModel(LightningModule):
    def __init__(self):
        super().__init__()
        self.layer = torch.nn.Linear(32, 2)

    def forward(self, x):
        return self.layer(x)

    def training_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("train_loss", loss)
        return {"loss": loss}

    def validation_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("valid_loss", loss)

    def test_step(self, batch, batch_idx):
        loss = self(batch).sum()
        self.log("test_loss", loss)

    def configure_optimizers(self):
        return torch.optim.SGD(self.layer.parameters(), lr=0.1)

def run():
    train_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    val_data = DataLoader(RandomDataset(32, 64), batch_size=2)
    test_data = DataLoader(RandomDataset(32, 64), batch_size=2)

    model = BoringModel()
    trainer = Trainer(
        default_root_dir=os.getcwd(),
        min_epochs=10000,
        max_epochs=20000,
        enable_model_summary=False,
        devices=2,
        auto_select_gpus=True,
        strategy='dp',
        accelerator='auto'
    )
    trainer.fit(model, train_dataloaders=train_data, val_dataloaders=val_data)
    trainer.test(model, dataloaders=test_data)

run()

The BoringModel used

Expected behavior
The second training code, BoringModel, will select other unused GPUs instead of occupied GPUs [0,1]
Environment

CUDA:
- GPU:
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- NVIDIA GeForce RTX 3090
- available:         True
- version:           11.2
Packages:
- numpy:             1.22.3
- pyTorch_debug:     False
- pyTorch_version:   1.10.2
- pytorch-lightning: 1.6.3
- tqdm:              4.62.3
System:
- OS:                Linux
- architecture:
- 64bit
- ELF
- processor:         x86_64
- python:            3.9.10
- version:           #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022

Additional context

cc @tchaton @rohitgr7 @justusschock @kaushikb11 @awaelchli @akihironitta

@allanchan339

The second training code, BoringModel, will select other unused GPUs instead of occupied GPUs [0,1]

The current behavior is the opposite, intentionally.
Auto-select is only really useful if GPUs are in exclusive mode. If your GPUs are not in exclusive mode, it means multiple processes are allowed to occupy one GPU which is why Lightning will select them even if there is already a boring model running. If your GPU supports it, you can set it to exclusive mode like so: nvidia-smi -i [index of gpu] -c 1. Then, only one process is allowed to occupy. With auto_select_gpus=True Lightning will then find the one where it can run.
Personal note: I don't like that we have this flag on the trainer. The functionality only makes sense if you set the GPU total count and it should be turned on by default anyway. There is no reason to have it False. I think it only confuses users.

@awaelchli
Thank you for your reply. I am confused about the selection criteria.
The current selection criteria are decided by exclusive mode + scanning.
Why not select a GPU by the lowest VRAM occupied instead?

@allanchan339 The lowest VRAM occupation does not always correlate with the lowest load for the CUDA-/Tensor-Cores.
Meaning that you could have a GPU using only 1 GB of VRAM but the cores being 100% utilised, while another GPU using 10GB VRAM is on average 20% utilised meaning that using the GPU with lower utilisation would slow done the training unnecessarily.
The issue with measuring utilisation is, that this can't really be done beforehand as this can really fluctuate a lot (depending of data loading bottlenecks etc.) and may also drastically change once your model is running on said GPU (to the good and the bad).
This is why we said, we will use the first GPUs available, since that one is at least consistent behaviour.

What strategy do you use to choose the GPU? @allanchan339


Create Induscreate

For simple expression of members in a fun way.
To build the team and them free and lovely amongst themselves.


CameraOrbitControl is not touch screen friendly

is it possible to use pointerdown and pointerup so it's touch screen friendly?
https://github.com/jnsmalm/pixi3d/blob/develop/src/camera/camera-orbit-control.ts#L42

Yes, want to do this but didn't have the time yet.

@goldenratio @jnsmalm I needed this feature too, so I made a pull request for it here: https://github.com/jnsmalm/pixi3d/pull/163

Thanks @lovelle-cardoso ! Will be available in next release.

@lovelle-cardoso When I try to use the orbit camera now I get an error in console (even though the functionality seems to work fine). I use a normal mouse/trackpad and macOS/Chrome. Would you have time to have a look?

@jnsmalm Sure thing! Should be fixed here: https://github.com/jnsmalm/pixi3d/pull/168

@jnsmalm Cleaned up PR here https://github.com/jnsmalm/pixi3d/pull/170


Automate: Support for multiple state machines in a workspace

Allow for 1 state machine in Automate model to call another state machine in the same workspace. The error or retry code from the bottom most state machine will trigger all the state machines to end with error or retry. All the variables in the workspace are available to all the state machines. If attributes are needed across retry boundaries use the $evm.set_state_var to persist the data

@chessbyte @gmcculloug @tinaafitz
Please Review

@mkanoor @Fryguy What is the status of this PR?


fix: handle TIME column serialization

SUMMARY
See the long comment at: https://github.com/apache/superset/issues/15905#issuecomment-929226661
TESTING INSTRUCTIONS
Use a dataset with a TIME column (not DATETIME) and represent it using a Table view, by including the TIME column in COLUMNS.
ADDITIONAL INFORMATION

[x] Has associated issue: Fixes #15905
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

I got a too-many-return-statements from pylint. Should I rework the whole cascade of if statements?

I tried to do a very small refactory, just to group together the 2 (now 3) instance types requiring a serialization via str(...).

I'm surprised this is not happening with GAQ disabled - is this really the case? Long term we should probably introduce the option to format time values in the frontend like we do with TIMESTAMP/DATE/DATETIME, and to do that we would need to convert it into millisecond format like we do for datetime, introduce a new GenericDataType type called TIME that the frontend could then use to properly format the values. Is this something you would be willing to collaborate on @frafra ? In the mean time this could be a good compromise.

I do not have the time to tackle such a big effort at the moment, and this is my very first PR to Superset (excluding documentation).

@jerwen sorry for letting this slip between the cracks 🙁 I'll look at this now and try to get it into the next release.

@jerwen you need to rebase this PR, as we've bumped the Python version on CI from 3.7 to 3.8, hence it's expecting the status to be reported for Python 3.8 tests (which weren't run here due to CI being on 3.7 at the time of the PR being opened)

@frafra could you rebase this PR on master please ?

@villebro the PR should now be ready for merge 🎊
Thank you @frafra for your availability

Thanks all for helping out here!


Please, edit name of Package in the menu

Everything working good, thank you. However, the name of "platformio-ide-terminal" in the menu making some visual style dissonance with others packages. Please edit it to "Platformio IDE Terminal" or "Platformio Terminal". I edit it each time after updates, can't live without harmony.

Thank you for your ticket, all features and fixes are now solely a user generated contribution.

Please see https://github.com/platformio/platformio-atom-ide-terminal/pull/648#issuecomment-462057412

This has been fixed in https://github.com/bus-stop/terminus


refactor: LuaDependency -> LuaPackageReq

This PR

Moves the LuaDependency type to lua_package::LuaPackageReq, which we can later use for arguments to commands like install, search and download.
Moves the platform related trait implementations of the type to the platform module (where the trait is defined, so we don't have an orphan instance).

Perhaps this is just me
but the first thing that came to my mind when reading LuaPackageReq was Request
and only after I saw that it was renamed from Dependency I realized that it's Requirement
I'm wondering
what is the reasoning behind this rename?
To me requirement sounds like something more general then a dependency. E.g. a certain system requirement
which afaict isn't the case here

Perhaps this is just me but the first thing that came to my mind when reading LuaPackageReq was Request and only after I saw that it was renamed from Dependency I realized that it's Requirement
I'm wondering what is the reasoning behind this rename? To me requirement sounds like something more general then a dependency. E.g. a certain system requirement which afaict isn't the case here

I cargo culted the Req suffix from semver::VersiomReq.
The more general name is because I intend to use it in commands like rocks [search|download|install|...].
For example, rocks install foo <2.0.0 would install the latest version of foo that is less than 2.0.0. In that case, LuaPackageReq` is not a dependency.


Clifford simulator backends num qubits TranspilerError

Information

qiskit-ibm-provider version: 0.7.1
Python version: 3.10
Operating system: Ubuntu 20.04.4 LTS

What is the current behavior?
simulator_stabilizer and simulator_extended_stabilizer backends throw error trying to retrieve num_qubits attribute
Steps to reproduce the problem
from qiskit.transpiler import TranspilerError
from qiskit_ibm_provider import IBMProvider

names = ["simulator_stabilizer", "simulator_extended_stabilizer"]

provider = IBMProvider()

for name in names:
    backend = provider.get_backend(name)
    try:
        print(backend.num_qubits)
    except TranspilerError as e:
        print(e)

"The number of qubits for Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]) does not match the number of qubits in the properties dictionary: (0,)"
"The number of qubits for Instruction(name='cz', num_qubits=2, num_clbits=0, params=[]) does not match the number of qubits in the properties dictionary: (0,)"

What is the expected behavior?
Above code should give
5000
63

according to

Suggested solutions
N.D.

This has the same root cause as https://github.com/Qiskit/qiskit-ibm-provider/issues/604, so we'll be tracking there


Multi-paragraph blockquotes incorrectly handled.

If an RSS entry contains a blockquote that contains multiple paragraphs, only the first of those paragraphs is recognised as part of a quote by Discord.RSS. Multi-paragraph blockquotes must include  a > at the start of every paragraph (and at the start of every blank line, if any, between those paragraphs) to be correctly interpreted as one quote. Discord.RSS does not appear to be doing this.

If you have an example feed then I can take a closer look.
Otherwise, generally speaking, items are not added onto articles for niche cases

https://blognomic.com/feed_atom "In principio", it's a little finnicky, might need a refresh or two.

The last paragraph should be taken as part of the quote directly before it.

This is an issue related to the html-to-text package - I've submitted a PR to fix it on their repo https://github.com/werk85/node-html-to-text/pull/193 but unfortunately it looks like they don't maintain it anymore so it's unlikely to be merged.
I copied the same fix here on dev branch. If you're using the public bot though, it won't be available until the next major version release - but if you self host, the fix will be available

@synzen Thank you for your PR. It is now merged.


Fixed my ugly part in README.md

Had to fix it, because I couldn't look at it.

You just changed the indent right?

Yup.

8 was intended

All of the plugins i saw use 2 spaces, so i merged this


Make responsive container of pages configurable

Allow for pages to stretch edge to edge, or configuration the maximum width of the fluid responsive container.

Would this allow the user to make apps responsive?
@apedroferreira @Janpot

Currently the whole page is in a responsive container. If there is demand we can make that configurable. COnverting this issue to a wait for upvotes.

The page is "responsive" right now, but we're not adapting anything for smaller screens, which means probably nothing will look very good in smaller screens yet.
I think this is a different thing but not that difficult to do, we could just add the ability to customize horizontal margins in the page, or setting a maximum width, that could work too.

Duplicate of https://github.com/mui/mui-toolpad/issues/1183


Triple toggle shadow is bursting out of the header on Chromebook

Describe the bug
The grey shadow for the Blocks/JS/Assets header is leaking into the workspace/simulator on my smaller Pixelbook screen:

Desktop (please complete the following information):

OS: ChromeOS
Browser Chrome 86

Duplicate of https://github.com/microsoft/pxt-arcade/issues/2479


v1.1.4 still not working for me

this is my log ... timeout?
7/11/2020, 6:21:44 PM [No Blink] Error authenticating with blink API BlinkAuthenticationException [Error]: Authentication problem: verification timeout
at Request._callback (/home/hoobs/.hoobs/node_modules/node-blink-security/lib/blink.js:400:48)
at Request.self.callback (/home/hoobs/.hoobs/node_modules/request/request.js:185:22)
at Request.emit (events.js:310:20)
at Request. (/home/hoobs/.hoobs/node_modules/request/request.js:1154:10)
at Request.emit (events.js:310:20)
at IncomingMessage. (/home/hoobs/.hoobs/node_modules/request/request.js:1076:12)
at Object.onceWrapper (events.js:416:28)
at IncomingMessage.emit (events.js:322:22)
at endReadableNT (_stream_readable.js:1187:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)

at least it doesn't crash my entire HOOBS service so everything does work.

sorry my bad, i had an email saying i needed to verify device trying to connect. once i allowed it looks like it worked


Fix For Travis Test Step

Replaces test command in .travis.yml so tests get run. Updates
Flake8 configuration. Adds Tox to handle testing of multiple Python
versions. Adds test dependencies to setup.py. Fixes bug in test.

These changes came about when I realized that I made a mistake in the test code but the tests were still "passing"
======================================================================
FAIL: test_compare_faces (tests.test_face_recognition.Test_face_recognition)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/mmedley/development/face_recognition/tests/test_face_recognition.py", line 116, in test_compare_faces
    self.assertIs(match_results[1], True)
AssertionError: True is not True

While making these changes I realized that the tests can benefit from being migrated to pytest where they can be parameterized which would make the code a lot more DRY. Is that something you'd be open to me submitting a PR for @ageitgey?

Thanks for the offer, but I don't really want to parameterize the tests. I prefer for the tests to be simple and straightforward without any indirection (unless there's a good reason). I'm not as worried about the tests repeating a few lines of setup as I am about them being easy to follow.

Yeah, that makes perfect sense.

Explicit is better than implicit.
-The Zen of Python


Find a simpler initialisation pattern

Current implementation:
var instant = new instantSearch.InstantSearch(appId, apiKey, indexName);

Most of our libraries are using:
var instance = someFunction(appId, apiKey);

It could be good to have the same pattern? @redox @pixelastic @bobylito

Yep, I'd rather have a var instance = instantSearch(foo, bar). Not sure if we need to pass the indexName when creating the instance or later (do we handle search in multiple indices at once?)

Yep, I'd rather have a var instance = instantSearch(foo, bar). Not sure if we need to pass the indexName when creating the instance or later (do we handle search in multiple indices at once?)

We do need at least one indexName since one instant search interface is always targeting an index.
Then some widgets like sortOrder (sort by popularity, price ..) will need to use other indexes but it's in their APIs.

Why don't we have something like :
var instantsearch = require('instantsearch').make;
var search = instantsearch(appId, apiKey, indexName);

I'm not sure about the key used here (make) but I think that's easy to instanciate and use. Don't you think?

Honestly I would be a bit surprised by this kind of API.
Documentation tooling aside, given our previous modules, I would advocate for something like:
var instantsearch = require('instantsearch');
var search = instantsearch(appId, apiKey, indexName);

I know @bobylito this is not what you prefer, adding it because I feel this is straightforward.

@algolia/javascript Are you ok with switching to:
var instantsearch = require('instantsearch');
var search = instantsearch(appId, apiKey, indexName);

Instead of:
var instantsearch = require('instantsearch');
var search = new instantsearch.InstantSearch(appId, apiKey, indexName);

Ok go :D


Check global var

@truerainbow thanks for the pull request. Changes looks great. Do you have any specific reason why you would like to see this changes pull into master? Other than checking global vars is just a good practice?


Spelling/Grammar

There were a few spelling/grammatical mistakes in the readme file.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks!


SnackbarMessageQueue do

Hi,
I enqueue several message in SnackbarMessageQueue.
All messages have same content and same actionContent but different actionHandler.
SnackbarMessageQueue consider messages as duplicate and show only the first one.
It would be great to add neverConsiderToBeDuplicate in all methods.
On the other hand, neverConsiderToBeDuplicate is never used in Enqueue(object content, bool neverConsiderToBeDuplicate).

Should be addressed by PR #762

Duplicates #761


fix: Orchestrator broken Feature Test

Description
FT was broken after some lib updates.   Composer doesn't run this test (because it's very bandwidth heavy, we disable this by default in our jest config), but Orchestrator team does in their validation.
Task Item
#minor

Coverage remained the same at 54.863% when pulling 480fff032824c80ef1c4c4c5e31eb4402d5fc713 on tachou/fixOrchUT into 3fefc2dbb6120170c34d47390503cbdcc6a32cd6 on main.


pull request for e2e test at 01/07/2017 08:26:13

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Oscilloscope: 12-bit multichannel capture

In the old firmware there is an attempt to implement 12-bit resolution for multichannel capture, but it doesn't work for an unknown reason. It should be possible to get it working in the new firmware.

I'm not sure if this can be implemented since we can only use CH0 channel for 12 bits 🤔


Add support for ExperimentalFeaturesConfig in snforge-test-collector

Originally discussed here

already done in #1012 😅


Drag drop on top of list item

Feature Description
Use cdkDropList to drop an item on top of another cdkDropList item, rather than sorting a way to add it. It can be thought of as cdkDropListMode='switch|over.
Use Case
This enables pairing one list item(s) to a second list specific item, a behaviour different from the default sorting of cdkDropList.
In current way things work, setting cdkDropListSortingDisabled will prevent droping on to of a cdkDrop item, and event index will always be zero.
The new 'over' option of the cdkDropListMode can return the item being targeting index on cdkDropListDropped event.
It is useful in cases where drag and drop is used to assign an item with some options (demo below).
In addition, it makes sense that in such scenario, the item will be cloned, rather than being moved. This can be thought of as cdkDragClone on cdkDrag item.
Thanks

This is an email-like app, showing items and custom tags.

I need to be able to know on which target item the user dragged a tag.

I have almost exactly the same feature request, where I would want to be able to drop items from list A in between the items from list B (so the existing behaviour) BUT when drag/dropping items from list B into list A, it should drag/drop the listItem on TOP of a listItem in list A.
The logic is that list A is a list with a fixed schedule, each listItem there is a time-duration.
Each listItem/time-duration of list A can be filled with a person/group.
So the moment you're drag/dropping from list A to list B, you're 'unassigning' a person from that time-duration and putting the person in a waiting area.
Later you're going to want to re-assign a person out of list B to a certain duration in List A.
At the moment I can have a cdkDropListConnectedTo between the two lists but that will enable the animation but let me fire the correct dropEvents
OR
I can remove the cdkDropListConnectedTo. That will disable the animation, but when I drop, it will animate like it's going back to list B and the dropEvent will have the targetContainer & targetIndex from that list.
It should also be possible to re-arrange the persons in list A (so basically reassign people to different time-durations) so when dragging a listItem from list A, it should animate the list A.
In essence it would mean that the sorting/between animation should be disabled when drag/dropping from list B to list A & should fire a cdkDragDropEvent when dropping the item + in the event say on which index in list A it was dropped.
So this means that the delta with what exists today would be to be able to disable the animation in a list based on certain conditions but still keep the event firing working.
Voilà, long-winded explanation (apologies), hope it is clear :)

Sorry for the (very) delayed response. I'm not sure I totally understand what the request is here. Is it to add information about what item the user was hovering over when they dropped something? As for cloning support, it should be covered by https://github.com/angular/components/issues/13906.

@zehavibarak, have you tried to achieve this effect by setting the cdkDropList element (the list container) with position="relative" and the placeholder with position="absolute"; top: 0? I remember doing that somewhere together with some opacity setting and if I remember it right it was an acceptable workaround.

Closing since there haven't been any responses to the clarifying question in a long time.

@crisbeto, I think this is a pretty common case. Can we keep this opened?


chore(deps): bump deps, update Amido -> Ensono

Security Updates for August 2024:

bump netty (CVE-2024-29025)
bump io-projectreactor-netty (CVE-2023-34054)
bump logback (CVE-2023-6378)
replace contact details with Ensono

[INFO] Scanning for projects...
[INFO] Inspecting build with total of 1 modules...
[INFO] Installing Nexus Staging features:
[INFO]   ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin
[INFO]
[INFO] -----------< com.amido.stacks.modules:stacks-modules-parent >-----------
[INFO] Building com.amido.stacks.modules:stacks-modules-parent 1.0.0-SNAPSHOT
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ stacks-modules-parent ---
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.11:prepare-agent (default) @ stacks-modules-parent ---
[INFO] argLine set to -javaagent:/home/rslater/.m2/repository/org/jacoco/org.jacoco.agent/0.8.11/org.jacoco.agent-0.8.11-runtime.jar=destfile=/home/rslater/stacks/stacks-java-module-parent/target/jacoco.exec
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.024 s
[INFO] Finished at: 2024-08-22T10:57:38+01:00
[INFO] ------------------------------------------------------------------------

Deployments are currently blocked, as Sonatype have removed the way we historically published packages:
https://central.sonatype.org/faq/what-happened-to-issues-sonatype-org/#where-did-issuessonatypeorg-go


test: fix logging to print correct line numbers

The Wrapper struct was unnecessary and broke the Helper method of the testing struct. The Helper method inspects the stack trace and adds the caller as a helper function, but this breaks when the Helper call is invoked in a nested helper function.
With this change the Helper calls work as expected and the correct line numbers are logged.

/retest

/lgtm


Better runWith errors for State

Just a spoonful of Sugar

On State the runWith method did not throw if one did not return a Pair. This PR now does that and uses this new error to clean up some more of the error handling for all the methods.
Thinking this is more a Bug Fix then a Breaking change...But we will see hows I Feelz when the release actually goes out.

Coverage remained the same at 100.0% when pulling 8bd41ec3feabd2f25aaac79e0e279881ac690474 on state-errors into 8fdf460b8c33da5be0fb2944cc0d8976c8e71297 on master.


Can't install deblur in Qiime 2: PackageNotFoundError: Package not found: '' Dependencies missing in current osx-64 channels:

PackageNotFoundError: Package not found: '' Dependencies missing in current osx-64 channels:

q2-deblur -> q2-types ==2017.2.0
q2-deblur -> q2cli ==2017.2.0
q2-deblur -> qiime2 ==2017.2.0

Close matches found; did you mean one of these?
qiime2: qiime, r-qiimer

You can search for packages on anaconda.org with
anaconda search -t conda qiime2

(and similarly for the other packages)
Within the Qiime 2 environment I am running:
(qiime2-2.0.6) Bobby-Mac-Pro:~ twchicken$ conda install -c biocore q2-deblur

Hi @slvrshot, it looks like you're within a 2.0.6 QIIME2 environment. q2-deblur right now depends on 2017.2.0. Notes on how to set that environment up can be found here. Are you able to verify if this is the issue?

 Thank you. I removed the old qiime 2 conda environment and am installing the new qiime 2 environment.

No worries at all :)

@wasade quick question though....is 150 bp the optimal trimmed sequence length for deblur...have you guys tested different lengths? I was just wondering if it even matters. I assume longer lengths might provide better taxonomic resolution but I could be wrong.

The author of the method has indicated that longer reads may benefit from modifying the mean error rate as longer reads tend to have poorer quality toward the 3' end, however I'm not aware of data that shows this is actually an issue.


soroban-rpc: Add opt-in remote logging push so we can collect usage data

What problem does your feature solve?
As SDF, we would like to know how the deployed soroban-rpc instances are running. What kind of resources they have available, and what sort of load they are dealing with.
What would you like to see?
An opt-in option for operators, which would forward their logs to a remote target (e.g. a kibana instance we're running to collect them).
It would be useful for us to receive:

Partial Soroban-rpc event logs in case an error has occurred
Startup event, containing the version and build information

Open questions?

How can we prevent/discern corrupt/false data being sent?

This is the logging equivalent of: https://github.com/stellar/soroban-tools/issues/501


why

Hi Jonh., i felt this was crucially missing from the react ecosystem and Frankly i've found myself implementing it many times across many projects.

Thanks. Despite my earlier skepticism we've just had a new requirement to implement this functionality at work. I look forward to using your excellent library.


Somtimes ffmpeg process is not finished.

ubuntu     33024   33017  7  8월26 ?      04:34:36 /home/ubuntu/.nvm/versions/node/v16.6.2/bin/node /home/ubuntu/bot/index.js
ubuntu     36962   33024  0  8월26 ?      00:00:01 /home/ubuntu/bot/node_modules/ffmpeg-static/ffmpeg -i - -analyzeduration 0 -loglevel 0 -f s16le -ar 48000 -ac 2 pipe:1
ubuntu     37297   33024  0  8월27 ?      00:00:00 /home/ubuntu/bot/node_modules/ffmpeg-static/ffmpeg -i - -analyzeduration 0 -loglevel 0 -f s16le -ar 48000 -ac 2 pipe:1
ubuntu     44057   33024  0  8월27 ?      00:00:01 /home/ubuntu/bot/node_modules/ffmpeg-static/ffmpeg -i - -analyzeduration 0 -loglevel 0 -f s16le -ar 48000 -ac 2 pipe:1
ubuntu     56265   33024  0  8월28 ?      00:00:03 python /home/ubuntu/bot/node_modules/youtube-dl-exec/bin/youtube-dl https://www.youtube.com/watch?v=PUSkqc1amgI -o - -q -f bestaudio[
ubuntu     56268   33024  0  8월28 ?      00:00:20 /home/ubuntu/bot/node_modules/ffmpeg-static/ffmpeg -i - -analyzeduration 0 -loglevel 0 -f s16le -ar 48000 -ac 2 pipe:1

Even if 3 songs are finished, 3 ffmpeg processes are not ended. Is there any solution?
Further details:

@discordjs/voice version: 0.6.0
Node.js version: 16.6.2
Operating system: ubuntu 20.04
Priority this issue should have – please be realistic and elaborate if possible:
Sometimes the ffmpeg process remains even when the song ends normally. In the above process log, the three ffmpeg processes above correspond to this problem.

Please post code that can reproduce this situation

// create AudioResource
async function songDownload(url) {
    const ytdlProcess = ytdl(
        url,
        {
            o: '-',
            q: '',
            f: 'bestaudio[ext=webm+acodec=opus+asr=48000]/bestaudio',
            r: '100K'
        },
        { stdio: ['ignore', 'pipe', 'ignore'] }
    );

    const stream = ytdlProcess.stdout;
    if (!stream) {
        throw new Error('no stdout');
    }

    const onError = () => {
        if (!ytdlProcess.killed) {
            ytdlProcess.kill();
        }
        stream.resume();
    };
    ytdlProcess.on('error', onError);
    stream.on('error', onError);

    try {
        const probe = await demuxProbe(stream);
        return createAudioResource(probe.stream, { inputType: probe.type, inlineVolume: true });
    } catch (err) {
        onError();
        throw err;
    }
};

// play the song
try {
    this.subscription.player.play(await songDownload(songs[0].url));
    this.subscription.player.state.resource.volume.setVolume(volume / 100);
} catch {
    sendMessage('failed to play song');
    songs.shift();
    return;
}

Just a recommendation, you can switch to play-dl. Play-dl doesn't require ffmpeg in normal streams.

Thanks for your recommendation. However, I think that ffmpeg used by discordjs/voice module (https://github.com/discordjs/voice/blob/main/src/audio/TransformerGraph.ts)

Thanks for your recommendation. However, I think that ffmpeg used by discordjs/voice module (https://github.com/discordjs/voice/blob/main/src/audio/TransformerGraph.ts)

Can you test again with using this script running in a different ubuntu session after the 1st song has been completed ??
#!/bin/bash

# Check if ffmpeg is running
# -x flag only match processes whose name (or command line if -f is
# specified) exactly match the pattern.

if pgrep -x "ffmpeg" > /dev/null
then
    echo "Running"
else
    echo "Stopped"
fi

I will check if there is a bug that corresponds to this issue. Thanks!

Even if all song is finished, result of that script is Running

That only means ffmpeg instance is not deleted.
@amishshah
Maybe this is the reason of #164 .


TypeScript Types

Hate to be the one to say it, but it's needed.

Try this:
// hypothetical-types.d.ts
declare module "rollup-plugin-hypothetical" {
  import type {
    Plugin
  } from "rollup";

  export interface HypotheticalOptionsBase {
    readonly allowFallThrough?: boolean;
    readonly allowExternalFallThrough?: boolean;
    readonly allowRelativeExternalFallThrough?: boolean;
    readonly leaveIdsAlone?: boolean;
    readonly impliedExtensions?: false | string[];
    readonly cwd?: false | string;
  }

  export type FileContents = string | Promise<string>;

  interface HypotheticalOptionsFilesArray extends HypotheticalOptionsBase {
    readonly files: Record<string, FileContents>;
    readonly filesMap?: never;
  }

  interface HypotheticalOptionsFilesMap extends HypotheticalOptionsBase {
    readonly files?: never;
    readonly filesMap: ReadonlyMap<string, FileContents>;
  }

  export default function hypothetical(options: HypotheticalOptionsFilesArray | HypotheticalOptionsFilesMap): Plugin;
}

It's probably not perfect - there's mention of a sourcemap on the README page for this repository, so that needs to be accounted for in the FileContents type.


Hide START button while play mode. (Suggestion from Tizen Forum)

https://samsung.tizenforum.com/app-showcase/pacman-game-available-in-tizen-store/
A suggestion by user Jahidul,
START button should be hidden while playing.
Unintentional swipe on "start" may erase a good score and possibility.

Fixed with commit  62e3ee4


Consolidate provisioners and upload manager into a single process

Our current trend seems to be to add a new binary for each new provisioner or somewhat standalone process. This has resulted in lots of duplicate code (see #431), overly large Docker images, more complex and longer builds, duplicate object caches at runtime, and more maintenance of kustomize yaml manifests.
This PR consolidates the upload manager and registry and plain provisioners into the "core" binary and deployment.
The webhook binary (formerly named "core") has also been renamed to "webhooks" but is otherwise unchanged.

would we not want to also combine the webhooks into a single process as well?

Are you thinking bundle webhook and crd validator? If so, I left CRD validator separate because it seems there's still some open discussion about the final landing place for that.
Otherwise, (to answer @timflannagan's question) I think it's okay to assume co-located webhooks in the future. At the very least, it seems like the next time we add a webhook the default thought process will be "let's add it to the webhooks binary" and not "let's make a completely separate binary".  At that point, if someone sees a problem with a single process running multiple webhooks we could split that out.


Add "read only" option to the new "repo shared with" resource to reflect GUI settings

Is your feature request related to a problem? Please describe.
We use the "Share with" feature in Artifactory and want to set it via terraform. With the newly released resource we can share repos between projects but the option to share it as read only is missing.
Describe the solution you'd like
Add an option in the resource to share a repo as read only

@jan-huso I've been waiting for a REST API fix to be released for a while. It has been blocking this feature but the fix is in Artifactory v7.94.0 so expect this feature to be released soon.


service/debugger: better error message for go1.11 executables

service/debugger: better error message for go1.11 executables

Output a better error message when users try to debug a go1.11
executable but delve was not built with go1.11.

Done


TLS with ASP.Net Core 2.1

Would it be possible to extend the documentation for ASP.Net Core 2.1 on how to add an encrypted endpoint. I have tried the approaches in the document but does not seem to work with the ASP.Net Core approach.
How can I add an mqtts endpoint listening on 8883?

I do it as follows on ASP.NET Core 2.1 and it works. I can add this in formation to the wiki if @chkr1011 agrees.
var x509 = new X509Certificate2(Configuration["Mqtt:Certificate"], "");

services.AddHostedMqttServerWithServices(builder => {
    builder
        .WithDefaultEndpoint()
        .WithEncryptedEndpoint()
        .WithEncryptionCertificate(x509.Export(X509ContentType.Pfx));
});

Note that I use a pfx certificate. The way of loading/exporting the certificate showed in the examples never worked for me (and I have still to understand why).

This does not work for me, here is my Configure Services stuff.
       services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

        var mqttServerOptions = new MqttServerOptionsBuilder()
            .WithConnectionValidator(c =>
                {
                   // some stuff that works
                }
            )
            .WithSubscriptionInterceptor(context =>
                {
                   // some stuff that works
                }
            )
            .WithApplicationMessageInterceptor(context =>
                {
                    // some stuff that works
                }
            )
            .Build();

        services.AddHostedMqttServer(mqttServerOptions);

        //supposed to add tcp support but actually next line does ?!?
        services.AddMqttConnectionHandler();

        //does this add tcp
        services.AddMqttTcpServerAdapter();

        // trying to add tls but doesn't open on 8883
        var x509 = new X509Certificate(@"some cert path here", "password");
        services.AddHostedMqttServerWithServices(builder => {
            builder
                .WithEncryptedEndpoint()
                .WithEncryptedEndpointPort(8883)
                .WithEncryptionCertificate(x509.Export(X509ContentType.Cert));
        });

        services.AddMqttWebSocketServerAdapter();

Currently I'm able to achieve ws, wss, mqtt but not mqtts (using tcp)

The call to services.AddMqttTcpServerAdapter() should be enough.

unfortunately it is not working

services.AddMqttTcpServerAdapter(); is the old api that works on .net sockets
services.AddMqttConnectionHandler(); is the new api for AspnetCore.Connections.Abstractions but it doesnt support tls yet

Your other option, dependent on how you are deploying, may be to terminate TLS with HAProxy or Nginx, then just have an unecrypted connection from there to the backend service be unencrypted.

When will this be available? I need this as well.

this depends on
https://github.com/aspnet/AspNetCore/issues/4623

@JanEggers: Thank you for the information. Hopefully, NetCore 3.0 (Initial release) will be there in August or so...

@JanEggers The issue from AspNetCore is fixed now. Just for information.

@SeppPenner I will wait some more until 3.0 is released.  and im not sure if we can update because 3.0 does not have .net framework support.

@JanEggers Yeah, that's a good idea.

I do it as follows on ASP.NET Core 2.1 and it works. I can add this in formation to the wiki if @chkr1011 agrees.
var x509 = new X509Certificate2(Configuration["Mqtt:Certificate"], "");

services.AddHostedMqttServerWithServices(builder => {
    builder
        .WithDefaultEndpoint()
        .WithEncryptedEndpoint()
        .WithEncryptionCertificate(x509.Export(X509ContentType.Pfx));
});

Note that I use a pfx certificate. The way of loading/exporting the certificate showed in the examples never worked for me (and I have still to understand why).
Also, "Mqtt:Certificate" is the configuration key that contains the full path to the pfx certificate file (X509, public key and private key). This isn't optimal, it would be better to access it using a file provider. If you have the certificate and the private key in different files you can always use openssl to join them in a pfx.

Hi, Could you please help me with setting up MQTTNet server/broker with both TCP and WS. TLS is not required right now. I tried with both ASP.NET Core 20 and 2.1, but dud not succeed.

Currently I'm able to achieve ws, wss, mqtt but not mqtts (using tcp) It feels like I'm missing an option to add tls to the tcp ?

Dear Sir, can you please share your code?

@JanEggers What is needed here? I would like to fix this issue and https://github.com/chkr1011/MQTTnet/issues/756 with one feature branch (Now that I have more time due to home office because of Corona :D).

there is no official tls middleware yet so you could start with
https://github.com/dotnet/orleans/blob/a6bf5940a515aea09b0143c58c54f1872f655203/src/Orleans.Connections.Security/Security/TlsServerConnectionMiddleware.cs
and create your own that is plugged in the pipeline.

Well, I just need to start the server in the pipeline and allow to set options with the builder. Anything else? This shouldn't be so difficult, I would say.

Turns out there a couple things that more complicated that might be expected:

You cannot add any fields to the current MqttClientOptionsBuilderTlsParameters as this is not build as a string indexed dictionary.
If you have any need to access information about the TLS channel, that is difficult as it does not seem to be propagated all the way back.  I had to add some extra fields in to the base code to get the TLS Exporter in the validation function code.

You cannot add any fields to the current MqttClientOptionsBuilderTlsParameters as this is not build as a string indexed dictionary.

I already expected that.

If you have any need to access information about the TLS channel, that is difficult as it does not seem to be propagated all the way back. I had to add some extra fields in to the base code to get the TLS Exporter in the validation function code.

Ok, good to know. I will check and see what I can do here.

this is blocked by https://github.com/davidfowl/BedrockFramework/pull/56

how's the progress

how's the progress

Closing this due to inactivity. If the issue is not solved or closing is a mistake please feel free to reopen it.

hi @chkr1011,
this issue is not solved.

hi @JanEggers , Is new update about the status of this issue after .net 6 was released?

Hey, there.
We wish to move from .NET 4.8 to .NET 6 and we use TLS inside our MQTTnet server.
Is there any news ?

@JanEggers So can we close this issue then or is there something to do?

Please see samples Run_Server_With_Self_Signed_Certificate. "ASP.Net Core 2.1" is no longer supported.


Update graphql-java from 18.1 to 18.3 as per Dependabot alert

So, we have:
https://github.com/stargate/stargate/security/dependabot/7
and should probably update. The only caveat is that the last upgrade was not straight-forward as package's API was changed in a patch.

Done in dedicated PRs #2080 and #2222.


I believe that the examples in this topic should use curly quotation marks (“ ”) instead of straight quotation marks (" ").

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: d0153bb7-38b0-cb1e-191a-8184a4c72699
Version Independent ID: bcbca2af-751d-8977-9eb8-577b9bac289d
Content: Quotation marks - Microsoft Style Guide
Content Source: styleguide/punctuation/quotation-marks.md
Product: non-product-specific
GitHub Login: @pallep
Microsoft Alias: pallep

Applies to PDF version of the guide only.


feat: add TTS Live Client

Introduce live speak functionality to existing speak client. Maintain existing interface for batch.

@lukeocodes  Things we need to probably change in this PR:

Rename of reset to clear
Clear message now has a response type.
We want to remove the container field

cc @dvonthenen

@lukeocodes Things we need to change in this PR:

Rename of reset to clear
Clear message now has a response type.
We want to remove the container field

cc @dvonthenen

Yep, confirmed those should be the only changes between now and towards the end of July. 👍


Issue With iOS 15.6.1

I get the below error on ios:
scheduledTimer(withTimeInterval:repeats:block:)' is only available in iOS 10.0 or newer
By switching:
func startListening(){
        timer = Timer.scheduledTimer(withTimeInterval: 0.2, repeats: true, block: {_ in
            let ms = (self.player?.currentTime ?? 0) * 1000
            self.plugin.onCurrentDuration(duration: Int(ms),playerKey: self.playerKey)
        })
    }```
to:

func startListening(){
if #available(iOS 10.0, *) {
timer = Timer.scheduledTimer(withTimeInterval: 0.2, repeats: true, block: {_ in
let ms = (self.player?.currentTime ?? 0) * 1000
self.plugin.onCurrentDuration(duration: Int(ms),playerKey: self.playerKey)
})
} else {
// Fallback on earlier versions
}
}
it then builds

I will submit a pull request.

@rlee1990  Can you please also add flutter doctor logs

Closing the issue as the changes have already been merged with PR #87. Thanks for the contribution @rlee1990


Mapgen doesn't optimize DOCT enough.

Maps still lag even after the DOCT optimization. It isn't to do with the collision, which is what I thought it was at first. I would suggest looking at how many polygons/vif packets an official mesh groups or DOCT file can contain. I'm still convinced this is the problem with the transparency flag, because if a more simple map is loaded, or if more simple models are loaded, transparency works fine.
Edit: It would also be an incredibly welcome feature to specify the different collision types, player collision, camera collision, and light collision in the .yml file. Using a separate FBX for each based on its name.

Thanks for commenting!
To help to identify the reason of lag (high CPU load) by using unknown size of DOCT/COCT, I have experimentally added show-stats command to show its quantity: https://github.com/Xeeynamo/OpenKh/pull/211

Edit: It would also be an incredibly welcome feature to specify the different collision types, player collision, camera collision, and light collision in the .yml file. Using a separate FBX for each based on its name.

OK it is good idea 👍  I'll implement it!


new(modern_bpf): add support for set family syscalls

What type of PR is this?
/kind feature
Any specific area of the project related to this PR?
/area driver-modern-bpf
/area libpman
/area tests
Does this PR require a change in the driver versions?
What this PR does / why we need it:
This PR is part of a series https://github.com/falcosecurity/libs/issues/513, the final aim is to support the most important syscalls also in the new probe. This PR introduces:

setgid
setuid
setns
setpgid
setresgid
setresuid
setsid
setrlimit
prlimit64

Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
new(modern_bpf): add support for `set` family syscalls

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 62666867a9611cd80df39e3a88e318a306a0b3dd

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@Andreagit97  Other than those remarks above, your PR lgtm. Thanks.

I will open a final PR to clean up all this stuff, I've added your comments to my agenda :) Thank you for the review


Nuget authenticate failed with Error: tunneling socket could not be established, cause=connect ETIMEDOUT

Required Information
Entering this information will route you directly to the right team and expedite traction.
Question, Bug, or Feature?
Type: Bug
Enter Task Name: NuGet Authenticate
list here (V# not needed):
https://github.com/Microsoft/azure-pipelines-tasks/tree/master/Tasks
Environment

Server - Azure Pipelines

If using Azure Pipelines, provide the
account name<EMAIL_ADDRESS>team project name: https://dev.azure.com/PhilipsMA/Philips.PIC
build definition name: PIIC_iX_Main.CI
build number: Multiple builds today (29-Jul-2020) e.g. PIIC_iX_Main.CI_20200729.17

Agent - Private:

If using private agent, provide the OS of the machine running the agent and the agent version: Windows 10, not sure Agent version, but not earlier than 20-Jun-2020

Issue Description
The task fails with the Error: tunneling socket could not be established, cause=connect ETIMEDOUT
Task logs
Starting: NuGet Authenticate
Task         : NuGet authenticate
Description  : Configure NuGet tools to authenticate with Azure Artifacts and other NuGet repositories. Requires NuGet >= 4.8.5385, dotnet >= 2.1.400, or MSBuild >= <IP_ADDRESS>604
Version      : 0.172.0
Author       : Microsoft Corporation
Help         : https://aka.ms/NuGetAuthenticateTask
Installing the Azure Artifacts Credential Provider (.NET Core) to 'C:\Users\SupportUser.nuget\plugins\netcore\CredentialProvider.Microsoft'. This credential provider is compatible with dotnet SDK 2.1.400 or later.
The credential provider is already installed. If there are package related authentication failures in later steps, consider setting this task's input 'forceReinstallCredentialProvider' to true to force reinstallation.
Installing the Azure Artifacts Credential Provider (.NET Framework) to 'C:\Users\SupportUser.nuget\plugins\netfx\CredentialProvider.Microsoft'. This credential provider is compatible with nuget.exe <IP_ADDRESS>85 or later, and MSBuild <IP_ADDRESS>604 or later.
The credential provider is already installed. If there are package related authentication failures in later steps, consider setting this task's input 'forceReinstallCredentialProvider' to true to force reinstallation.
SYSTEMVSSCONNECTION exists true
SYSTEMVSSCONNECTION exists true
SYSTEMVSSCONNECTION exists true
##[error]Error: tunneling socket could not be established, cause=connect ETIMEDOUT <IP_ADDRESS>:9480
Finishing: NuGet Authenticate
Troubleshooting
Checkout how to troubleshoot failures and collect debug logs: https://docs.microsoft.com/en-us/vsts/build-release/actions/troubleshooting
Error logs
##[error]Error: tunneling socket could not be established, cause=connect ETIMEDOUT <IP_ADDRESS>:9480

Internal network issue from our side


SDK Error

SDK version
2.5.0
You can use this code and run it.

void main(){
 Test test=Test.fromMap(null);
//throw Exception
}

class Test{
 String id;
 String name;
 Test();

 factory Test.fromMap(Map map)=>map==null?Test():Test()
 ..id=map["id"]
 ..name=map["name"];
}

result:
E/flutter ( 7677): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The method '[]' was called on null.
E/flutter ( 7677): Receiver: null
E/flutter ( 7677): Tried calling: []("id")
....

Try this:
void main() {
  Test test = Test.fromMap(null);
//throw Exception
}

class Test {
  String id;
  String name;
  Test();

  factory Test.fromMap(Map map) => map == null ? Test() : (Test()
    ..id = map["id"]
    ..name = map["name"]);
}

The problem is that you are using a cascade whose receiver (that is, e in an expression e..s where s is a cascadeSection) is not the object obtained from Test() but rather the one from map == null ? Test() : Test().
It is a known source of confusion that cascades have such a low precedence. However, if we want to allow the right hand side of a cascade assignment to allow for general expressions then the precedence has to be low.
(In e1..x = e2, e2 must be a expressionWithoutCascade, and that's nearly any expression).

@eernstg  thank.

Thanks! For prior discussions about the precence of the cascade syntax, please follow #608 (that's an old issue which was moved here from the SDK repository, so it's much older than the number 608 would imply).


Code quality fix - Local variable and method parameter names should comply with a naming convention.

This pull request is focused on resolving occurrences of Sonar rule
squid:S00117- Local variable and method parameter names should comply with a naming convention.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/rules/show/squid:S00117
Please let me know if you have any questions.
Faisal Hameed

Thanks for your efforts!


Class C broadcast

Is this a bug or a feature request?
feature request
I am not aware of any way to do multicast / broadcast to Class C devices, but there are already some documents describing this idea.
https://docs.google.com/viewerng/viewer?url=https://www.dropbox.com/s/877v31p0r1p056c/LoRa%2520Bootcamp%2520intelliLight%2520presentation.pdf?dl%3D1
Is there already a way to send downlink messages that will be picked up by all class C devices?

Please see #227.


Issues with rotations

I'm having an issue with rotations.
Basically I want to use ImGuizmo with Z being up and X being forward. If that's not possible, please let me know.
When I run the code, everything freaks out when I rotate the model to Y = -90. I assume it is an issue with my code but I cannot find out what's going on
void Game::TickGizmo(Model* Mesh)
{
	ImGuizmo::Enable(true);
	ViewMatrix = MyCamera->GetViewMatrix();
	ProjectionMatrix = MyCamera->GetProjectionMatrix();
	MeshTransformMatrix = MyModel->GetTransformationMatrix();
	ImVec2 viewportPanelSize = ImGui::GetContentRegionAvail();
	ImGuiIO& io = ImGui::GetIO();
	ImGuizmo::SetOrthographic(false);
	ImGuizmo::BeginFrame();
	ImGuizmo::SetRect(0, 0, io.DisplaySize.x, io.DisplaySize.y);
	ImGuizmo::DrawCubes(&ViewMatrix.m[0][0], &ProjectionMatrix.m[0][0], *MeshTransformMatrix.m, 1);
	ImGuizmo::DrawGrid(*ViewMatrix.m, *ProjectionMatrix.m, *MeshTransformMatrix.m, 500);
	ImGuizmo::Manipulate(*ViewMatrix.m, *ProjectionMatrix.m, mCurrentGizmoOperation, mCurrentGizmoMode, *MeshTransformMatrix.m);

	if (ImGuizmo::IsUsing())
	{
	Vector3 NewTrans;
	Vector3 NewRot;
	Vector3 NewScale;
	float matrixTrans[3];
	float matrixRot[3];
	float matrixScale[3];

	ImGuizmo::DecomposeMatrixToComponents(*MeshTransformMatrix.m, matrixTrans, matrixRot, matrixScale);
	NewTrans = Vector3(matrixTrans);
	NewRot = Vector3(matrixRot[0], matrixRot[1], matrixRot[2]);
	NewScale = Vector3(matrixScale[0], matrixScale[1], matrixScale[2]);
	MyModel->SetTransformation(NewTrans, NewRot, NewScale);
	}
	ImGui::End();
}

To be sure it's in your code and not the gizmo, can you try to apply the gizmo matrix instead of recomposing it from the tr/rt/sc values?
This can happen if the order of rotation are not applied in the same order as imguizmo.
To check that, when you compute the matrix on your side, does it give you the same result as the matrix recomposition done with this function ?
https://github.com/CedricGuillemet/ImGuizmo/blob/4277f2efb79e11dbebc956754329c4b019b2a0a3/ImGuizmo.cpp#L2208

@CedricGuillemet
Thank you for your response.
I'm using the SimpleMath library that serves as a wrapper for DirectXMath as a part of the DirectXToolkit.
As such, i've narrowed it down to this function
Matrix::CreateFromYawPitchRoll(float yaw, float pitch, float roll)
What I did was set the model's Y rotation to -90 using ImGui::DragFloat3. Then I switched to the rotation widget and did a single click on the Y axis to recreate the bug. The X and Z values immediately jump to -180 each.
Looking at the results from this function, it appears that this is the rotation matrix it returns
`{0, 0,-1, 0}
{0, 1, 0, 0}
{1, 0, 0, 0}
{0, 0, 0, 1}`
While using the ImGuizmo::RecomposeMatrixFromComponents function returns this:
`{0, 0, 1, 0}
{0, 1, 0, 0}
{-1, 0, 0, 0}
{0, 0, 0, 1}`
So it appears that there is a difference between how ImGuizmo creates this matrix and how DirectXMath does it.
I'm still learning so it could very well be my code
Here is the remarks from MS on the DirectXMath library

Angles are measured clockwise when looking along the rotation axis toward the origin. This is a left-handed coordinate system. To use right-handed coordinates, negate all three angles.
The order of transformations is roll first, then pitch, and then yaw. The rotations are all applied in the global coordinate frame.
Does ImGuizmo apply rotations in a different order? How can I adjust it?

I was able to fix this issue. If anyone gets the same issue, it's due to the Matrix::CreateFromYawPitchRoll(float yaw, float pitch, float roll)
This applies the rotations in order of Roll > Pitch > Yaw. The issue was because I was using  void RecomposeMatrixFromComponents(const float* translation, const float* rotation, const float* scale, float* matrix)  for the gizmo but using  Matrix::CreateFromYawPitchRoll(float yaw, float pitch, float roll) to generate the transformation matrix for the rest of the rendering code.
The solution was to avoid using Matrix::CreateFromYawPitchRoll(float yaw, float pitch, float roll)  entirely and composing the transform matrix by using void RecomposeMatrixFromComponents(const float* translation, const float* rotation, const float* scale, float* matrix)  for all purposes. I'm sure there would be a way to input the parameters to make it compatible but I was not able to figure it out.

I have a similar issue @jkinz3
No workaround except don't use CreateFromYawPitchRoll (I can't)?


Correct return terminal and empty srt

The flac must be mono (channels = 1).

Good catch, did some tests and this seems to solve the issue, thanks.


C/C++ Bug

.

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.67.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Go v0.20.0: checksum mismatch when using GOPROXY=direct

Problem statement
Because I have private dependencies I can't use a go proxy like https://proxy.golang.org, so I'm using GOPROXY=direct.
Go still tries to verify modules via sum.golang.org (except my private modules because of GONOSUMDB=git.my-company.com/*/*).
Which results in
go: finding github.com/go-swagger/go-swagger v0.20.0
go: finding github.com/go-swagger/go-swagger v0.20.1
verifying<EMAIL_ADDRESS>checksum mismatch
	downloaded: h1:nYaNsHAGa+r5u6JlcN1Zh6X7zNoOo36Shs8PHU1+G2M=
	sum.golang.org: h1:4ejFC3gnhLTI6S/j+S+7GfEaVBV3BBI2IEcFVHUteIQ=

SECURITY ERROR
This download does NOT match the one reported by the checksum server.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.

This does not happen when using GOPROXY=https://proxy.golang.org.
So I guess the cached version of github.com/go-swagger/go-swagger differs from the tagged version on github?
Steps to reproduce
Using a docker container
docker run -i --tty --rm golang:1.13

root@b70fd0ea2376:/go# GOPROXY=direct go mod download -json<EMAIL_ADDRESS>
Environment
swagger version: 0.20.0
go version: go1.13
OS:    linux/amd64

Please use go-swagger 0.20.1. I have no influence on what the cache does from golang.
From their docs (https://sum.golang.org/):

I removed a bad release from my repository but it still appears in the mirror, what should I do?
Whenever possible, the mirror aims to cache content in order to avoid breaking builds for people that depend on your package, so this bad release may still be available in the mirror even if it is not available at the origin. The same situation applies if you delete your entire repository. We suggest creating a new version and encouraging people to use that one instead.

Ok, thanks for clarifying!

The same problem now occurs with the version 0.31.0


055d232b-5ec4-432a-b0b6-0647392ec95f

this is for automated testing

1f9b1de9-5ac7-472c-a31c-7c183e310494


add Cliffords and other stubs

Some operations, like Cliffords, are used repeatedly and are somewhat awkward to do efficiently in pyqgl2.  Therefore there is a proposal to implement them in hardware in the future.  To access them from pyqgl2, we'll need to add stubs (and the corresponding plumbing) to get them down to QGL.  (QGL will also need to be modified to use the new hardware capabilities, when available.)

Added stub for Cliffords function clifford_seq. Copied other Cliffords stuff into QGL2 (as python)


[Mac][Feature] Minimized window display window preview

Currently, minimizing the window just displays the app icon. Would be nice if it showed the window preview instead.

Upon future work, this feature is kinda unnecessary, and whether or not this is merely the result of testing in VS Code at this time.


Simplify algebra for  x / 1 operations

Done to satisfy simplifications specified by #1236 .  Just replace every  parameter divided by 1 with itself. It's assumed that the eliminate_identity() pass will handle generated identity operators in our run_pass()

@pfultz2  We are not running simplify_algebra after propagate_constant, I think we may miss some optimizations in doing so.

Should we move these 'identity' transformations in another pass and call it after propagate_constant ?

No. Ideally, I would like to make a super pass that has several optimizations in a loop like simplify_algebra, simplify_reshapes, CSE, propagate_constant, etc.

That is a better idea, but ideally, we should loop into that until the program stop changing. I am not sure given the transformations we have, it is guaranteed to converge, (it could be, but not sure). Otherwise, loop trip count becomes a tuning parameter that would affect performance.

That is a better idea, but ideally, we should loop into that until the program stop changing.

Yea, we need a way to track changes to the module. Perhaps a signal? Or we could have finders return if they change the graph?

Otherwise, loop trip count becomes a tuning parameter that would affect performance.

Well we already have loop counts already. Either way, we would want to have a max loop count , but we could have a compile_options flag to increase it.

That is a better idea, but ideally, we should loop into that until the program stop changing.

Yea, we need a way to track changes to the module. Perhaps a signal? Or we could have finders return if they change the graph?

Otherwise, loop trip count becomes a tuning parameter that would affect performance.

Well we already have loop counts already. Either way, we would want to have a max loop count , but we could have a compile_options flag to increase it.

Possible another PR then? Seems like this would be more involved.

Total time:   3.37061ms ->   3.33602ms  with this change set off develop

Closing this out as I've moved the changes for a matcher to be shared between other operations.


Different context handling at Runtime under iOS and Android

[x] I have read the Getting Started section
[x] I have already searched for the same problem

This MIGHT be a Problem with Flutter, but I have not had a simmilar issue with Flutter Widgets
This is probably not a priority to fix, since my temporary solution already solve this issue, but not that nice
Environment

Technology
Version

Flutter version
3.3.8

Plugin version
6.0.0-b21

Android version
API 33

iOS version
16.1

macOS version
Ventura 13.0

Xcode version
14.1

Device information: Simulator / Emulator
Description
Outsourced functions get the BuildContext only once when the class is created. If the build function is called afterwards and the context has changed, the outsourced functions continue to access the old context. This is only an Issue under iOS, Android does not seem to care about this at all.
Example code:
  @override
  Widget build(BuildContext context) {
    return InAppWebView(
       onLoadStart: myLoadStartFunction,
     ),
   };

   void myLoadStartFunction(InAppWebViewController controller, WebUri? url) {...}

Expected behavior:  If you relocate the functions that the WebView calls, so that they are parallel to the build method, they will still work.
Current behavior: myLoadStartFunction always accesses the old BuildContext, this can be seen if you log the context.hashCode in initState and from inside myLoadStartFunction
Steps to reproduce
Code needed to reproduce seen above. BuildContext changes in my App everytime one Page has finished Loading. The new loading process will have a new BuildContext
Temporary Solution:
Call your outsourced methods inside the build method and give them the current BuildContext
@override
  Widget build(BuildContext context) {
    return InAppWebView(
      shouldOverrideUrlLoading: (controller, navigationAction) async => await wvLoadRequest(context, controller, navigationAction),
      onLoadStart: (controller, url) => wvLoadStart(context, controller, url),
    );
  }

  Future<NavigationActionPolicy> wvLoadRequest(BuildContext context, InAppWebViewController controller, NavigationAction navigationAction) async {...}

  void wvLoadStart(BuildContext context, InAppWebViewController controller, WebUri? url) => {Globals().currentUrl = url.toString()};

That could be something related to Flutter itself or how Flutter manages Platform Views.
For sure, it's not related to the plugin or any native platform code.
Also, I don't do anything with the build context when the InAppWebView widget is displayed. Check the build method: https://github.com/pichillilorenzo/flutter_inappwebview/blob/a42b0e4dfd6c2dd0506391b03c2c901dcec8b325/lib/src/in_app_webview/in_app_webview.dart#L691
It's simply Flutter/Dart code.

Okay I already thought that It might not have anything to do with your plugin :D
Just wanted to make sure, before making a issue at flutters repo

@robertosw did you try some other webview plugin?

Not to find out more about this problem, I had the "simple" webview_flutter, but it had subpar performance when scrolling fast on larger sides. And it had way less customizing options

I found the real problem that causes this. My Widget Tree is like this:
|-- My Widget (Stateful, with Variables and Methods, no const key)
   |-- InAppWebView(key: Globals.xyz)

Globals is a singleton class, where I store global Variables etc.. As in your "tutorial" the InAppWebView needs a const key, but my Widget did not have a const key. And this was the problem.
My Widget was rebuild multiple times, and got a new context everytime. Meanwhile, the InAppWebView's context was never changed, because the key always stayed the same. Thats why the functions always use the "old" context from my Widget.
The simple solution was giving my Widget a const GlobalKey()


⚠ AVS (kty) has degraded performance

In 7f0d2d4, AVS (kty) (https://avus.com.br) experienced degraded performance:

HTTP code: 200
Response time: 8588 ms

Resolved: AVS (kty) performance has improved in 37f4f57.


Why no optional new?

I was just trying to update the example in the Broccoli README to use funnel instead of static-compiler, and I noticed that broccoli-funnel doesn't support new-less instantiation. Before I put new Funnel on the Broccoli README (which is a bit different from how most plugins are instantiated), I figured I'd just ask, is there a reason why you don't like the newless style?
I'm attaching a PR in case you want to allow it.
I goes well with a verbey invocation style as well, using funnel as in "to funnel":
var funnel = require('funnel');
var newTree = funnel('foo', ...);

It was definitely intentional, though I suppose it might be possible to convince me otherwise.
My main reasoning is that I believe calling new Funnel(....) makes it much clearer that I am dealing with an instance of the Funnel class, whereas calling funnel(...) is a complete black box (even though it would call new internally).  I also dislike having to add the standard boilerplate to all plugins (though I haven't been super consistent in this stance so some of my plugins require new and others do not).

A little more detail in https://github.com/rwjblue/broccoli-funnel/pull/5.

So my reasoning was, new is basically an implementation detail. The function-call Brocfile style was meant to evoke a functional-programming style with immutable objects: Call a function on an (immutable) input tree, get a new (immutable) output tree.
Agree on the "boilerplate in all the plugins" problem though.
To my mind, it's kindof a tossup - but either way it'd be nice if we can converge on some agreement so our plugins are more consistent.

it'd be nice if we can converge on some agreement so our plugins are more consistent

This is the winning argument. Lets document that this is "heavily recommended" in the Broccoli docs?

Done (https://github.com/broccolijs/broccoli/commit/0463dc9eaf34363915586b0adc0e65500b981076). Hm, the plugin spec is clearly in need of some love, and also needs to be updated for the new API. Perhaps it's just lacking examples - we could add a brief "how to write a plugin" tutorial thing. Anyways...
Do you want me to update the broccoli-funnel README as well to use the newless style, or do you want to keep it?

I'm happy to move funnel to broccolijs if you want, and add you as maintainer either way

Moving to broccolijs sounds great. Funnel seems pretty important.

Do you want me to update the broccoli-funnel README as well to use the newless style, or do you want to keep it?

I'm sending a PR at #19 in case you want it.


Issue on docs

Path: /sdk/php/quickstart
Trouble with the documentation (probably skill issue 😆)

curl --proto '=https' --tlsv1.2 -sSf "https://darkterminal.github.io/turso-php-installer/dist/turso-php-installer.phar"
./turso-php-installer.phar
zsh: no such file or directory: ./turso-php-installer.phar
following the steps (Turso PHP Installer (Linux/macOS only)) – is not working for me.
Which TURSO_DATABASE_URL= is required? (https://[db-name]/v2/pipeline)
would be nice to add the file names where to add the code snippets

btw. not expecting to get an answer on this, but why should I choose this instead of turso-laravel

Hey, I discovered the same issue yesterday. @darkterminal is looking into it, thanks for your patience.

Hi @spiderman-eth, You can now use this command:
curl https://darkterminal.github.io/turso-php-installer/dist/turso-php-installer.phar -o ./turso-php-installer.phar

I am also update the README.md

I'll close this but feel free to reopen if the issue arises again.


No respeta 4 espacios al traducir a robot en documentación

Originally created by Luis Abdel Aguilar Jurado:
Need to add definition of "Done"

Originally created by Luis Abdel Aguilar Jurado:
HI MONSERRAT ARIDAY BALDERAS ALBA Julian Cachua Fruchier EDUARDO ANTONIO DAVALOS CAMARENA,
Could you help me with the description of this issue:
1.- Description of the actual behavior.
2.- Description of the Expected Behavior

Originally created by Julian Cachua Fruchier:
Robot framework considers different elements strings (not quoted) that are separated by at least 2 white spaces. Following python standards, we decided to provide homogeneity by using 4 white spaces to separate elements. If [Documentation] "text" is not separated by at least two spaces, it could cause an error in robot. Translator should convert the [Documentation] tag and the documentation text with four white spaces, and the documentation tag be have an indentation of 4 spaces like:
Some Keyword
(four white spaces here)[Documenation](four white spaces here) This is the documentation text for "Some Keyword"

Originally created by Ulises Buendia:
I found tabs are used when translating the documentation:
*** Keywords ***
KeywordDemo_1
	[Documentation]	Keyword for listing files from /location
	Log   message=This is a test for listing files on a directory
	List Files In Directory   path=/root

So, an expected result would be:
*** Keywords ***
KeywordDemo_1
    [Documentation]    Keyword for listing files from /location
    Log   message=This is a test for listing files on a directory
    List Files In Directory   path=/root

Is this correct?

Originally created by Victor Manuel Hernandez Delgado:
Se ve bien Ulises Buendia

Originally created by Fernando Quintero Amador:
Resuelto por el team de DarkProgrammers.

Originally created by Ulises Buendia:
Changes available for testing at http://<IP_ADDRESS>:8003


How do I reset the the consumer group offset

In some cases I need a consumer group to reprocess a topic from the beginning. Is it possible to reset the offset for this case?

There's no explicit API for this. I'd recommend versioning your group id, e.g. my-group-v3. Each group id has its own offset tracking.

In the future I may add support for seeking within partitions, among other reasons in order to support external offset management, but for now I'm closing this.

For other future people like myself, there appears to be a seek method now to do this.


Revert "Roll engine 6c763bb551cb..9726b4cb99d3 (4 commits)"

Reverts flutter/flutter#44251
cc @GaryQian

Landing on red to fix build

Several devicelab tests were broken by this roll. possible skia or splashscreen related


Current nightly build failing to run on macOS amd64

I am constantly testing foundry on different machines (yay). Today, the usual installation process yielded a binary which says zsh: exec format error: forge. This is using the latest nightly @ 1bb6e0cfbda0a9fb069db8c854a6141ad1c0a08a.
I then ran foundryup -b dbbb2482a912e32b4bd7232e3e6f3d215edb456e to install / build the latest from master and it works fine. Not sure if it's just me with this issue? But I think forcing a new nightly would fix it if others are affected.

cc @wilsoncusack has also hit this
I cannot repro on arm. Triggered a new release, let's see.

this might even be a rust issue on latest nightly
error: internal compiler error: compiler/rustc_mir_transform/src/generator.rs:755:13: Broken MIR: generator contains type &mut tokio::process::ChildStdin in MIR, but typeck only knows about {ResumeTy, &compile::Solc, &T, Vec<u8>, tokio::process::Child, &[u8], &Vec<u8>, tokio::io::util::write_all::WriteAll<tokio::process::ChildStdin>, (), tokio::io::util::flush::Flush<tokio::process::ChildStdin>, impl futures_util::Future<Output = std::result::Result<std::process::Output, std::io::Error>>} and [&compile::Solc, &T]
   --> /Users/Matthias/.cargo/git/checkouts/ethers-rs-c3a7c0a0ae0fe6be/6d7875a/ethers-solc/src/compile.rs:503:90
    |
503 |       pub async fn async_compile_output<T: Serialize>(&self, input: &T) -> Result<Vec<u8>> {
    |  __________________________________________________________________________________________^
504 | |         use tokio::io::AsyncWriteExt;
505 | |         let content = serde_json::to_vec(input)?;
506 | |         let mut child = tokio::process::Command::new(&self.solc)
...   |
519 | |         )
520 | |     }
    | |_____^

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/17d29dcdce9b9e838635eb0adefd9b8b1588410b/compiler/rustc_errors/src/lib.rs:1115:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.60.0-nightly (17d29dcdc 2022-01-21) running on x86_64-apple-darwin

note: compiler flags: -C embed-bitcode=no -C split-debuginfo=unpacked -C debuginfo=2 --crate-type lib

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [optimized_mir] optimizing MIR for `compile::<impl at /Users/Matthias/.cargo/git/checkouts/ethers-rs-c3a7c0a0ae0fe6be/6d7875a/ethers-solc/src/compile.rs:477:1: 573:2>::async_compile_output::{closure#0}`
end of query stack
error: could not compile `ethers-solc`

Why would we be hitting a nightly bug though? We compile with stable

right,
unrelated nightly-2022-01-21 bug then.

I also just ran into this problem while doing the install via foundryup from the README. Building the latest master produces a usable binary (using rustc 1.58.1 (db9d1b20b 2022-01-20))

Can one of you guys run rustup show so I can get the target? We might be compiling to a wrong target or something? Also file forge so I can see what it says the binary is (for M1 it should say something along the lines of Mach-O arm64)

Here are the outputs from my system, also experiencing the same zsh exec format error.
rustup show:
Default host: x86_64-apple-darwin
rustup home:  /Users/ruvaag/.rustup

stable-x86_64-apple-darwin (default)
rustc 1.58.1 (db9d1b20b 2022-01-20)

file forge: forge: cannot open 'forge' (No such file or directory)

@ruvaag make that file `which forge`

@ruvaag make that file `which forge`

Thanks @endophysics, the output is /Users/ruvaag/.foundry/bin/forge: data