HDDS-9550. Container report shows missing containers when they actually appear empty

What changes were proposed in this pull request?
If a container appears empty to SCM (ie key count is zero in the containerInfo) and there are no replicas, it could be a container which failed to be created on the datanodes, and no replicas will ever be reported.
However there isn't enough information to know if the container can be safely deleted or not, as the DN could have gone offline or missed some heartbeats etc.
As things stand, such as container will appear as missing in the container report. In this PR, we change that to leave the container as CLOSED but count it as EMPTY without triggering the delete process.
That means if replicas later appear, it will be OK.
However if the replicas never appear, the container will be stuck in this state forever. Additionally, if there should be replicas, as the client successfully wrote to the DNs and updated OM, there is no way to know this on SCM and the container should really be missing despite it being logged as empty, hiding the problem.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9550
How was this patch tested?
New unit test added

Thanks for iterating on this @sodonnel, I do feel better about this approach vs. the original one in #5504. However, I came up with another idea to solve this problem. Let me know what you think:

When SCM first creates the container, it knows the datanode replicas that are supposed to have the container. It should track this information until it gets reports that the container is created, even after the pipeline is closed.
When the pipeline is either closed gracefully by SCM or fails on the datanode, SCM should send close commands for all affected containers, including these empty ones.
When a datanode gets a close container command for a container it does not have, it can ack back to the SCM that the container is closed with BCSID=0, block count=0, empty, etc. If the container has data then the normal container flow still applies.
If the container was never created, SCM will now see it as empty and can then move this container through the regular close and delete flow. A datanode getting a delete command for a container it does not have should be ok.

With this approach, we can re-use the normal delete flow and safely clean the containers out of the system, because it requires one round of back and forth between SCM and datanodes. There are some things we may need to look into though:

What could happen if decommissioning a node while it still "has" one of these empty containers from SCM's point of view?
What is the retry mechanism for datanodes letting SCM know about the container if the initial close ack is dropped? The replica doesn't exist so it won't show up in container reports. I think SCM would keep sending the close command and the datanode could keep sending the ack that the "replica" is closed and empty.
May need some SCM change to persist the set of nodes that is supposed to have a container, even if it is never created or reported. This would need to survive restarts, so it may involve leaving the container's pipeline in SCM DB until all the containers are closed. This may happen anyways but need to check.

Let me know if you think there are issues with this approach that make it not viable.

You idea sounds feasible, but it also sounds like a large change. With the number of edge cases we have encountered with container management in the last few months, I find it hard to say if there will be edge cases here too.
We need to fix the current issue somewhat urgently, so I would suggest we proceed with the approach here and then open another Jira to improve upon it with your idea. That way we remediate the immediate problem and create a path for investigation for the future.

Sounds good. I will file a Jira with my proposal, but let's get this simpler solution merged first. The change LGTM for ReplicationManager. Do we have a jira and assignee  to do this in the Legacy RM too? Also I think we will need a Recon change so that these containers are not reported missing there as well.

I filed HDDS-9600 for the more involved solution that we can look at later.

@errose28 I had missing a part of the IF clause which caused some test failures. Fixed now if you want to check and approve this.
I opened https://issues.apache.org/jira/browse/HDDS-9602 to port this over to Legacy RM too, which I will work on.


Multimode Gmeep Simulation

Is your feature request related to a problem? Please describe.
Running simulations in meep through the gmeep plugin api is currently limited to only launching the fundamental TE0 mode into the waveguide. Some devices support higher order modes (such as modal demux) and require the ability to simulate other modes. The current snp format in gdsfactory currently labels the port and the mode (o1@0), but at least for gmeep, that mode value is never used.
Related to tidy3d, it's not immediately clear whether this api is already supported in the plugin. If it is not, then that could also be a useful addition to simulate multimode structures with tidy3d.
Describe the solution you'd like
I have an initial pull request ready that implements the following (in the gmeep plugin):

specify which sources to use and which mode(s) to launch from that source
specify which modes to measure on all the output ports
stores the data in the appropriate key in the snp dictionary

The preliminary pull request adopted much of the surrounding code structure to get the feature out, but future edits can reformat and clean things up a bit.
Additional features still need to implement:

specify the type of mode (TE/TM) with eigparity
validate chosen mode by plotting modes (I believe this functionality exists in tidy3d, but can easily be extended to gmeep as well)

Hi Joel,
this sounds great, thank you for your PR
Yannick has a PR for improving the tidy3d plugin and expanding it to arbitrary layerstacks
Ideally we can reuse as much code as possible for all the FDTD plugins (lumerical, tidy3d, meep and fdtdz)
@yaugenst
@simbilod

Great work Joel!
There was some undocumented code to inspect port modes over at https://github.com/gdsfactory/gplugins/blob/main/gplugins/gmeep/get_port_eigenmode.py
The MEEP plugin was one of the first ones written so it is lagging in the more advanced features of gdsfactory (like proper LayerStack integration).
It would be great to make this handling of multimodes source s, monitors, and s-parameters standard across the various FDTD plugins as Joaquin is saying.

Hey @joelslaby, thanks for the effort! I  think this is great and since it's a relatively small change we can just merge it @joamatab? The API changes will require refactoring of most of the plugins anyways, which is well beyond the scope of #222.
If you would like to contribute on that end you could check out the discussions in #139 and #142. There hasn't been a lot of activity lately but it is in the works.


Check result of prospective merge in CircleCI

Motivation

At the moment, the CircleCI tests only check the state of a specific branch. It does not check whether the result of a merged PR is valid as well. This is bad because sometimes, there is no actual file conflicts which git detects, but an implicit conflict of e.g. the migration files, or side-effects of tests etc.
Proposed Solution

Add a new job to circleci to merge the changes into the develop branch (locally on the CI server without pushing yet) and then re-run all other jobs to make sure that everything works both on the branch and also after merging.
Unfortunately, there is no straight forward way for doing this in CircleCI, see e.g. this discussions:

https://discuss.circleci.com/t/show-test-results-for-prospective-merge-of-a-github-pr/1662
https://discuss.circleci.com/t/checkout-merged-code-for-pull-requests/15398
https://discuss.circleci.com/t/ability-to-checkout-merge-commits-not-just-branch-commits-maybe-even-make-it-the-default/28777
https://ideas.circleci.com/cloud-feature-requests/p/show-test-results-for-prospective-merge-of-a-github-pr
https://ideas.circleci.com/cloud-feature-requests/p/provide-env-variable-for-branch-name-targeted-by-pull-request
https://gist.github.com/sjones6/396d301543eb026992728cd380344c06

Alternatives

We could also require PRs to be up to date with the default branch before they can be merged. This would add a little bit of overhead for PR authors and require even more rebases than right now.

I think a single job to re-run all other tests is probably a bad idea - it would double our current credit usage... Maybe we can add an initial step of the following kind:

Check if the current workflow belongs to a PR

If yes:

Check if there are git conflicts

If yes: Run the tests on the specific branch only
If no: Merge the PR locally and run the tests on the merged state

If no: Run the tests on the specific branch only


Fixing links

coverage: 92.832%. remained the same
when pulling 981e93f1d1471b02ea7606b55bdaf468570d8dae on antgonza:fixing-links
into e00ccf421aa74ce824b4f5a6c3806e34c44f85c0 on qiita-spots:dev.


feat: between star ordered rings, star-preserving ring homomorphisms preserve order

It's a bit awkward because the only morphisms we have which bundle the star operation are StarAlgHom and StarAlgEquiv, but the results here don't need to reference the module structure at all.

Is it really much more work to just define StarEquivClass?

Note: it would need to be StarRingEquivClass. And that's actually not the problem. The issue is that we actually need the type StarRingEquiv so that we have a morphism to coerce into, so that we can then use its .symm
So, yeah, kind of a lot of work for something I don't expect to come up much. If it does, then we can refactor at some point.

Alright, fair enough.
bors r+


Remove NSGeometry and NSAffineTransform from Foundation

NSAffineTransform and NSGeomerty are Mac only Apis and are not part of ios.
Fixes #2711

This change is

Why? What exactly is this hurting?

@rajsesh-msft Inclusion of NSGeometry.h & NSAffineTransform.h prevents frameworks.core package from being used independently.
NSGeometry.h defines NSPoint,NSRect,etc in terms of CGPoint,CGRect, etc. Thus making foundation depend on CoreGraphics. I need to break this dependency for packaging work, given these are not even part of ios and are not used, I've removed it.


avoid high CPU utilization while processing terminology upload

Revise storeTermConceptMapAndChildren method's innermost processing loop to use myConceptMapGroupElementTargetDao.save() instead of myConceptMapGroupElementTargetDao.saveAndFlush(), and add code to explicitly call myConceptMapGroupElementTargetDao.flush() once per 1000 records.
Additionally, modify some DAO usage to follow the CrudRepository.save advice, "Use the returned instance for further operations as the save operation might have changed the entity instance completely."

During testing, when uploading LOINC terminology to a HAPI server running on AWS, the deferred ConceptMap processing would max out the CPU for a period of over 30 minutes.  Most of the processing effort was being spent in the org.hibernate.internal.SessionImpl.flush() method invoked by myConceptMapGroupElementTargetDao.saveAndFlush().
The .flush() method has order N time complexity, based on the size of the Hibernate cache.  Calling .flush() repeatedly in an innermost processing loop can amount to an order N-squared computation, with very high CPU utilization.

The code in this PR is just a simple workaround.  There may be better ways to ultimately handle this issue.

Hi Joel,
This was actually fixed on a branch that has now been merged. Sorry for the effort, but the good news is it's now fixed. :)


Add proposal MetaData to Safe proposal

Add description metadata to a Safe based multi sig proposal.

we're not adding metadata to safe at this time


Test DOM output directly

It would be cool to use something like @testing-library/dom to directly test the rendered output and do things like click buttons, fill out inputs, etc. Since the tool uses the accessibility properties in the DOM API, it would also help make sure the output is accessible.

This is spot on! I think as soon as #204 is merged we can start using SnapshotTesting and compare HTML/CSS output with stored expected snapshots of those. In the future we could even make visual snapshots in different browsers with integration tests to ensure wider compatibility.
One other thing I was thinking about is Cypress, which may be a bit easier to maintain than WebDriver end-to-end tests, but I don't have a good experience with either unfortunately.


Fix release-download-count feature

Fixes #5147
Test URLs

Release list
Single release
Release list (with several artifact per release)

Screenshot

Thanks :)

Hi


fix grammar: allow compex exprestion inside ref-arg-brack

Description
allow complex expression as array index

Fixes #79
Special notes for your reviewer
The code of this PR need the one in PR #90. To simplify diff the base branch of the pr is PR #90. So PR #90 must be merge before, and this branch must be rebased.
So in meantime, i keep it as draft PR

@asadali  it's done :)

@asadali  it's done :)


external-auth with oauth2-proxy stopped working

Introduced with this change #1189 in version nginx 0.9-beta.12 breaks oauth2-proxy external authentication feature (https://github.com/kubernetes/ingress/tree/master/examples/auth/external-auth/nginx).
OAuth2-proxy after successfull authorization redirects again to login page. Details in below issue from their project: https://github.com/bitly/oauth2_proxy/issues/456

@krogon-dp please test quay.io/aledbf/nginx-ingress-controller:0.236

same problem here, and quay.io/aledbf/nginx-ingress-controller:0.236 fails with error unknown flag: --nginx-configmap

@fengmao that flag is deprecated. Please use --configmap

use helm, it seems need to change helm's nginx-ingress template file, thanks

@aledbf changed image to quay.io/aledbf/nginx-ingress-controller:0.236 and fix nginx-configmap with --configmap, but get this error
-------------------------------------------------------------------------------
W0930 00:51:45.916212      13 queue.go:113] requeuing default/oauth2-proxy, err
-------------------------------------------------------------------------------
Error: exit status 1
2017/09/30 00:51:45 [emerg] 49#49: unknown "location" variable
nginx: [emerg] unknown "location" variable
nginx: configuration file /tmp/nginx-cfg456472324 test failed

-------------------------------------------------------------------------------


regression(38485): Unable to specify rawText when programmatically creating tagged template literals

Fixes #38485

сс @DanielRosenwasser @rbuckton

@typescript-bot cherry-pick this to release-3.9

@typescript-bot pack this

@petebacondarwin a build should be available in a bit - can you verify that it works for you?

Will do. Thanks!

Testing now

That works for me! Thanks for dealing with this so quickly.


File/Module refactor extension ability like Pycharm

It would be great to have a feature that refactors variables, files and modules just like PyCharm. In PyCharm it automatically updates all your imports and references.

Hi @awaemmanuel , thank you for the suggestion! We have marked this issue as "needs decision" to make sure we have a conversation about your idea. We plan to leave this feature request open for at least a month to see how many 👍 votes your idea gets to help us make our decision.

Thanks @kimadeline . Hopefully it gets up voted. I'll start that off. :)

File and module refactoring are already covered in https://github.com/microsoft/vscode-python/issues/4628, so feel free to leave a 👍 there.

Closing in favour of https://github.com/microsoft/vscode-python/issues/4628.


replace exit in NIF-stubs with :erlang.nif_error/1

FIX #13

Great! Thanks for your help.

Just released version 1.3.1 with the fix


Error while trying to get a list of products with Get-PartnerProduct

Steps to reproduce
Execute Get-PartnerProduct with either CountryCode and Catalog or CountryCode, Catalog and Segment as parameter.
Example:
Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServices'
Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServices' -Segment 'commercial'
Expected behavior
A list of products for the parameters specified.
Additional Info: When using CountryCode and ProductId a single product item can be retrieved successfully.
Actual behavior
Result with CountryCode and Catalog
PS H:\> [Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'; Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServices'
Get-PartnerProduct : Value cannot be null.
Parameter name: value
At line:1 char:63
+ ...  = 'en-US'; Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServ ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: NotSpecified: (:) [Get-PartnerProduct], ArgumentNullException
    + FullyQualifiedErrorId : System.ArgumentNullException,Microsoft.Store.PartnerCenter.PowerShell.Commands.GetPartnerProduct

Result with CountryCode, Catalog and Segment
PS H:\> [Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'; Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServices' -Segment 'commercial'
Get-PartnerProduct : The method or operation is not implemented.
At line:1 char:63
+ ...  = 'en-US'; Get-PartnerProduct -CountryCode 'DE' -Catalog 'OnlineServ ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: NotSpecified: (:) [Get-PartnerProduct], NotImplementedException
    + FullyQualifiedErrorId : System.NotImplementedException,Microsoft.Store.PartnerCenter.PowerShell.Commands.GetPartnerProduct

Result with CountryCode and ProductId
PS H:\> [Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'; Get-PartnerProduct -CountryCode 'DE' -ProductId 'C5928F49-12BA-48F7-ADA3-0D743A3601D5'

ProductId                            Title               Type           Description
---------                            -----               ----           -----------
C5928F49-12BA-48F7-ADA3-0D743A3601D5 Visio Online Plan 2 OnlineServices

Environment
Module PartnerCenter Version 1.5.1903.5
Name                           Value

PSVersion                      5.1.17134.590
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17134.590
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>

Hi @KlausPeterRiemer,
Thank you for bringing this to our attention. The required code change have been made and are being tested right now. Our hope is to release a minor update today, to address this. Please let us know if you have any other issues.

Hi @KlausLoeffelmann,
Version 1.5.1903.6 has been released, which includes a fix for this issue. Please update and let us know if you have any other issues.

Hi @isaiahwilliams,
thanks for the fast deployment of a fix, the Get-PartnerProducts cmdlet works as expected now.  No other issues at the moment ...


Extend quantum extension with command 'az quantum offerings list'

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

quantum

This has been superseded by PR #3067


Misc: Add lldb pretty print script

Supports:

String (summary string in the format "hello world")
StringName (summary string in the format &"hello world"
List (synthetic children for indexed children access + summary string in the format 2 items
HashMap (synthetic children for indexed children access (to the KeyValues) + summary string in the format 2 items)
Vector (synthetic children for indexed children access + summary string in the format 2 items)

See also https://github.com/nikitalita/lldb-qt-formatters from @nikitalita

https://github.com/nikitalita/lldb-qt-formatters/blob/godot/GodotFormatters.py

That's definitely more elaborate then what I came up with. I still think a minimal pretty printer in our repo would be nice, but if this is closed in favor of existing stuff we should link to it in some way.

I would prefer a Godot Engine integration because this is not a trivial script to write for lldb support.

See also ~https://github.com/nikitalita/lldb-qt-formatters~ from @nikitalita
https://github.com/nikitalita/lldb-qt-formatters/blob/godot/GodotFormatters.py

That's actually old, the most current one resides here: https://github.com/nikitalita/GodotFormatters
I should note that this isn't quite ready for prime-time. I keep getting hangs when loading a frame that has a bunch of complex variables, and I am unable to track it down due to the lack of debugging for lldb scripts. If anyone wants to take this and run with it, be my guest.


Fire onDidSelect event when selecting event from code

This is fixing an issue I found when adding the value provider.
The issue here is that when we select an item by calling select it sets the value on the HTML input element directly - but this doesn't fire the 'change' event and so it never fires the onDidSelect event. I noticed this when setting new values for a dropdown - we'd not get notified until selecting a new item from the UI.
This behavior doesn't seem right to me - I would expect that whenever the value changed (either by user interaction or programmatically) I'd get informed through the event of that happening.
I could fix this in the vs code layer but I try to avoid that when I can and this should cover all the scenarios that we care about.
I'm still unsure on this approach though - I feel like it may be overloading the meaning of "did select". Some people may take that as only when the USER specifically selected something - and not a value being selected because of other reasons. And so one other thought I had was to add a new event instead onDidValueChange that would fire both when the user selected an item and when it was selected programmatically.
Any thoughts or preference on this one way or another?
(I also intend to look at the editable dropdown too - although that's a lot more custom so we may not have the same issue there)

I like the idea of add a new onDidValueChange event that will fire when the value changes in any way and leaving onDidSelect to fire when a user makes a selection.

I'm slightly leaning that way as well - but if we did that then I think we'd want to have that even be fired whenever onDidSelect was also fired. And it seems a little odd to have two events firing at the same time - but I think as long as we document it enough that would be fine. Then callers can just choose which one they hook in to based on what their needs are.
It would definitely be the safer approach which appeals to me as well.

Thought about it a bit more and while I could see the separate events being useful I think that firing the event any time the value changes I don't really think there's a scenario where we care about the difference between a value changing because a user selected it and it being selected programmatically. So I'm going to leave this as it is with overriding the event and we can always change it later if we decide that it's worth it.

@aasimkhan30 I had to make some fixes to the import wizard to correctly handle this - the code wasn't checking that value was actually defined (all dropdown values might be undefined if there isn't anything to select). Could you look it over?

I'm not too concerned with this kind of stuff breaking functionality either in general. It might result in some errors that otherwise wouldn't have shown up but because these are done in an event callback those shouldn't affect the overall application as long as a valid value is selected eventually.

Pull Request Test Coverage Report for Build 416548650

25 of 28 (89.29%)  changed or added relevant lines in 2 files are covered.
275 unchanged lines in 9 files lost coverage.
Overall coverage increased (+0.04%) to 41.577%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/sql/base/browser/ui/selectBox/selectBox.ts
4
5
80.0%

extensions/import/src/wizard/pages/fileConfigPage.ts
21
23
91.3%

Files with Coverage Reduction
New Missed Lines
%

extensions/azurecore/src/localizedConstants.ts
1
98.53%

src/sql/base/browser/ui/selectBox/selectBox.ts
1
47.26%

extensions/notebook/src/dialog/pythonPathLookup.ts
9
78.23%

extensions/notebook/src/dialog/configurePython/configurePythonWizard.ts
17
46.96%

extensions/notebook/src/dialog/managePackages/installedPackagesTab.ts
17
68.12%

extensions/notebook/src/dialog/managePackages/addNewPackageTab.ts
23
41.49%

extensions/azurecore/src/extension.ts
28
0%

src/sql/workbench/api/common/extHostModelView.ts
76
35.41%

extensions/azurecore/src/azureResource/utils.ts
103
8.24%

Totals

Change from base Build 414643667:
0.04%

Covered Lines:
22162

Relevant Lines:
48913

💛  - Coveralls


Usage & CLI options in README

I would like to add a usage section with detailed CLI options description and common app description and practical information.
Currently, it looks not so friendly without an actual description of usage options and a kind of starting point.

Sure, go ahead - all contributions are welcome.


Wishlist option

The Wishlist option is not working. It isn't storing any data to the user

@devangsaraogi fixed this issue by changing the code for the wishlist button and also it gets stored in for the user, which now could be seen at the backend i.e through MongoDB


⚠ Bofrost.fr has degraded performance

In ae99050, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1188 ms

Resolved: Bofrost.fr performance has improved in bf74759 after 6 minutes.


Maximum Chaos resistance is not possible

"+10% to maximum Lightning Resistance" works
"+10% to all maximum resistances" works
"+10% to maximum Chaos Resistance" does not work.
This can be achieved in game through Timeless Jewels.

Workaround:
+10% to all maximum resistances
-10% to maximum Lightning Resistance
-10% to maximum Cold Resistance
-10% to maximum Fire Resistance

Close this issues if you're okay with your solution. Since i don't think you can achieve max chaos res without timeless jewel, and they won't be added :)

Its still unsupported keyword that exists in-game so imo it should be supported regardless if it comes from Timeless Jewel or not.

Close this issues if you're okay with your solution. Since i don't think you can achieve max chaos res without timeless jewel, and they won't be added :)

It is possible with synthesised items of blight league.
You can find them with '+1% to maximum Chaos Resistance' implicit.


Configuration does not have #key?

The configuration view has #key?, but not the configuration itself.

Fixed in #820.


If local distribution zip was modified, use updated distribution contents

Expected Behavior
If gradle/wrapper/gradle-wrapper.properties's distributionUrl references a local filepath, it would be nice if the Gradle Wrapper could detect changes to the contents of that file and use the new file if it is modified @
Current Behavior (optional)
I'm finding that if I modify a gradle distribution zip and rerun gradlew, that it doesn't notice subsequent updates to this distribution zip and continues to use the old Gradle instead
Context
My process for iterating on changes to a local Gradle and testing them out in a build is approximately:

Build Gradle ( gradle $ ./gradlew :distributions-full:binDistributionZip -Dorg.gradle.ignoreBuildJavaVersionCheck=true )
Update the build to use the new Gradle (modify gradle/wrapper/gradle-wrapper.properties)
Run the new build

However, if I already did steps 1-3 previously with another local Gradle distribution, I'm finding that step 3 reuses the previously build Gradle and doesn't incorporate any new changes that I added
It would be nice if the Gradle Wrapper could detect this and re-unpack the new Gradle distribution automatically
Thanks!

For local distributions, you can use install + a bash alias.
See the details here
As for the general scenario, we doubt if that would be useful. The wrapper would need to validate the checksum on each invocation.

Oh neat https://github.com/gradle/gradle/blob/master/CONTRIBUTING.md#testing-changes does look good to me thanks!
(In practice it's slightly less convenient for us since we have some modifications to our Gradle wrapper (for things like setting JAVA_HOME, optionally running Gradle twice and ensuring the second run is up-to-date, filtering out extra warning messages, and a short "--ci" flag that enables a collection of behaviors) but if it doesn't seem to you that this behavior should belong in the Gradle Wrapper jar, then it makes sense to me that we (AndroidX) would make sure that it's easy for us to use a local Gradle like you suggested)
(I was imagining that if this were implemented, it might involve something like: checking if the distribution zip refers to a local file and if so, checking if the timestamp was updated, and if so checking if the hash was modified, so that in practice it wouldn't usually need to verify the hash)

checking if the distribution zip refers to a local file and if so, checking if the timestamp was updated

Technically that is possible, but that means different behavior for local and remote distributions. I doubt we want that.

This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary.

Thanks @mathjeff for the clarification!


[Fix-7717] [UI Next] Prettier config name error

close #7717

PTAL @songjianet @labbomb

Codecov Report

Merging #8012 (604d47d) into dev (8987277) will decrease coverage by 0.00%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #8012      +/-   ##
============================================
- Coverage     41.23%   41.22%   -0.01%
  Complexity     3718     3718
============================================
  Files           637      637
  Lines         27129    27129
  Branches       3083     3083
============================================
- Hits          11186    11185       -1
- Misses        14864    14865       +1
  Partials       1079     1079

Impacted Files
Coverage Δ

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
:arrow_down:

...inscheduler/common/task/sqoop/SqoopParameters.java
74.00% <0.00%> (-2.00%)
:arrow_down:

...dolphinscheduler/remote/future/ResponseFuture.java
83.60% <0.00%> (+1.63%)
:arrow_up:

Continue to review full report at Codecov.

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

It seems we have conflict here


Set up readthedocs

on phy.cortexlab.net

@nippoo this is done no?

Hey, yeah, this is basically done. Still have a couple of things to debug though. I'll do and close it tomorrow

do you need help on this one? i may have some time

Done!

excellent! so if I update phy-doc/master, it will "just work"?

yes! :)
On Fri, Jun 19, 2015 at 3:49 PM, Cyrille Rossant<EMAIL_ADDRESS>wrote:

excellent! so if I update phy-doc/master, it will "just work"?
—
Reply to this email directly or view it on GitHub
https://github.com/kwikteam/phy/issues/325#issuecomment-113536361.


Code cleanup: Use guard clauses for code cleanliness

^
Guard clauses are not consistently used, and should be cleaned up a bit for better readability (and hopefully improve performance).

Improved in https://github.com/MikeDev101/cloudlink/commit/ce61b59284af1874080d8f5fba522a93384d687c

Will likely not get any cleaner than https://github.com/MikeDev101/cloudlink/commit/5aab3d677e8b12956faeda25b5ab7b48d0b561f5, closing


Index not found - looks like hooks are not fired up

Pipeline for services creation runs successfully, however I'm missing index in cognitive search and authentication in the app service. anyone faced this issue?
This issue is for a: (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce
Fork repo and run deploy. Configuration of the pipeline:

Any log messages given by the failure
The pipeline can be found here: https://github.com/azure-way/rag/actions/runs/9015766065
In the infrastrucuture provision I have message: hooks.go:52: azd environment is not available, skipping all hook registrations.
Expected/desired behavior
run hooks for index creation
OS and Version?
GitHub runner version: '2.316.1'
azd version?
azd version 1.9.0
Versions

Mention any other details that might be useful

Thanks! We'll be in touch soon.

Hm, I haven't seen that before. @vhvb1989 Could you take a look at that pipeline? It looks like it skipped the hooks for some reason.

It is an issue on azd. I've created: https://github.com/Azure/azure-dev/issues/3920
Also create PR for you @karol-pieciukiewicz : https://github.com/azure-way/rag/pull/1 with a workaround you can use.
@pamelafox , this means that any project-hook is currently ignored in CI :(

Thanks Victor!
I saw the message that the environment doesn't exist, but I didn't figure
out that I needed to create it manually. Thanks for pointing that out.
When you have a new version of AZD I can make some tests if needed :)
Best
Karol Pieciukiewicz
czw., 16 maj 2024 o 22:58 Victor Vazquez @.***>
napisał(a):

It is an issue on azd. I've created: Azure/azure-dev#3920
https://github.com/Azure/azure-dev/issues/3920
Also create PR for you @karol-pieciukiewicz
https://github.com/karol-pieciukiewicz : azure-way#1
https://github.com/azure-way/rag/pull/1 with a workaround you can use.
@pamelafox https://github.com/pamelafox , this means that any
project-hook is currently ignored in CI :(
—
Reply to this email directly, view it on GitHub
https://github.com/Azure-Samples/azure-search-openai-demo/issues/1603#issuecomment-2116165752,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU24ZYZXOGGNWRGT66P543TZCUMX7AVCNFSM6AAAAABHOWEWTOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJWGE3DKNZVGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi,
I've also found an error while setting up authorization. If you
run os.getenv("XXX", "default"), then "default" will be returned only when
the env doesn't exist. However, this environment variable exists, but it's
empty, due too this pipeline part:
[image: image.png]
I've prepared the fix:
https://github.com/azure-way/rag/commit/b735ca6fd8c373909c0d41686cd40b5c11e7ecc3
If you would like, I can make a PR.

Pozdrawiam
Karol Pieciukiewicz
pt., 17 maj 2024 o 22:51 Karol Pieciukiewicz @.***>
napisał(a):

Thanks Victor!
I saw the message that the environment doesn't exist, but I didn't figure
out that I needed to create it manually. Thanks for pointing that out.
When you have a new version of AZD I can make some tests if needed :)
Best
Karol Pieciukiewicz
czw., 16 maj 2024 o 22:58 Victor Vazquez @.***>
napisał(a):

It is an issue on azd. I've created: Azure/azure-dev#3920
https://github.com/Azure/azure-dev/issues/3920
Also create PR for you @karol-pieciukiewicz
https://github.com/karol-pieciukiewicz : azure-way#1
https://github.com/azure-way/rag/pull/1 with a workaround you can use.
@pamelafox https://github.com/pamelafox , this means that any
project-hook is currently ignored in CI :(
—
Reply to this email directly, view it on GitHub
https://github.com/Azure-Samples/azure-search-openai-demo/issues/1603#issuecomment-2116165752,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AU24ZYZXOGGNWRGT66P543TZCUMX7AVCNFSM6AAAAABHOWEWTOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJWGE3DKNZVGI
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

@karol-pieciukiewicz Ah good catch, we have to do similar checks in our other code, though we've been using os.getenv(BLA) or default. Having a helper function makes sense, PR welcome!


Euro-calliope inflow and README updates

Two updates in here:

More explicit directions to data in the README
A method to deal with spotty hydro inflow data

In the second case, it's clear from the data that instances of zero inflow are erroneous (when the data in timesteps either side is >x10^4). I've dealt with this by rescaling capacities based on the percentage of timesteps in which inflow is non-zero, when calculating the capacity share. It's possibly a bit of a hack, but no more so than the existing method ;)

Closing in favour of two separate PRs


Aditi

Next time, write what the PR is about in the title rather than just your name. It could be an abstract thing such as "implemented SOS feature" or "fixed multiple SOS bugs" too😄

yes, of course, slipped my mind


localisation improvements

Resized window size a bit to prevent line break for German translated words from 300px->400px
DE lang update
EN lang amend for localisation

I think the branch this PR comes from might be a little bit out of step with the current main dev branch, which is causing some conflicts which will make it tricky to merge.
You might be able to resolve some of these issues locally without having to redo the PR, by rebasing your local branch on the upstream StarWarsFoundryVTT:dev branch. Some of the things the PR addresses are actually already fixed upstream, but there's plenty in here that will be worth a merge, and git can be a bit of a pain in these situations, so give me a shout on discord if you get stuck and I'll see if I can help you getting this to the point where we can merge it. 😃


v2.0.0-beta.6

Codecov Report
Base: 69.17% // Head: 69.17% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (796443f) compared to base (7e726ff).
Patch coverage: 100.00% of modified lines in pull request are covered.

:exclamation: Current head 796443f differs from pull request most recent head 7cda29e. Consider uploading reports for the commit 7cda29e to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1244   +/-   ##
=======================================
  Coverage   69.17%   69.17%
=======================================
  Files         173      173
  Lines        4431     4432    +1
  Branches      884      885    +1
=======================================
+ Hits         3065     3066    +1
  Misses       1354     1354
  Partials       12       12

Impacted Files
Coverage Δ

src/ble/sagas.ts
79.00% <ø> (ø)

src/toolbar/buttons/repl/ReplButton.tsx
100.00% <100.00%> (ø)

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Allow files other than Gemfile.lock to be opened in definition specs

What was the end-user problem that led to this PR?
The problem was the specs are brittle.
What was your diagnosis of the problem?
My diagnosis was  we should assume code can open other files.
What is your fix for the problem, implemented in this PR?
My fix allows other files to be opened, and only raises when opening the file under test.

@bundlerbot r+

@colby-swandale Can you backport this into 2-0-stable branch? This needs to be rubygems change that is https://github.com/rubygems/rubygems/blob/master/lib/rubygems/stub_specification.rb#L114


[REQUEST] Some questions about Domino

Hello I have some questions about the implementation of communication overlap in Domino.

Forward:
As the following figure shows:

The AllReduce(MLP1) should be overlapped with operations in next layer, however, I didn't find the relative code. In this https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/domino/transformer.py#L428, which corresponds to the AllReduce(MLP1), I consider it is not overlapped. Maybe are there any extra consideration?
Backward:
As the following figure shows:
. It seems that I can't find any overlap code for AllReduce(attn1) and AllReduce(attn0) as in this code https://github.com/microsoft/DeepSpeedExamples/blob/master/training/DeepSpeed-Domino/domino/tensor_parallel/partition.py#L302. I consider it only overlap the all-reduce of input_grad with the computation of weight_grad.
The above questions are all about the row split on input, and I don't see any implementation for column split on weight.

Can anyone help me with this? Thank you very much

Hello I have some questions about the implementation of communication overlap in Domino.

Forward:
As the following figure shows:

The AllReduce(MLP1) should be overlapped with operations in next layer, however, I didn't find the relative code. In this https://github.com/microsoft/DeepSpeed/blob/master/deepspeed/runtime/domino/transformer.py#L428, which corresponds to the AllReduce(MLP1), I consider it is not overlapped. Maybe are there any extra consideration?
Backward:
As the following figure shows:
. It seems that I can't find any overlap code for AllReduce(attn1) and AllReduce(attn0) as in this code https://github.com/microsoft/DeepSpeedExamples/blob/master/training/DeepSpeed-Domino/domino/tensor_parallel/partition.py#L302. I consider it only overlap the all-reduce of input_grad with the computation of weight_grad.
The above questions are all about the row split on input, and I don't see any implementation for column split on weight.

Can anyone help me with this? Thank you very much

Hi @yingtongxiong , thx for the detailed question! Really appreciate it!
For 1, our release version does not include overlap of AllReduce(MLP1) is for more general use cases. The key reason is a transformer block usually have to Return all output at the very end, which includes both u-batch0 and u-batch1 output return at same time. We have a prototype of next layer overlap and now working on using automatic codegen given user-defined transformer block implementation.
For 2, as we described in our paper page 7, we use our newly defined no-operation module (i.e., no_oper in code) to do overlap AllReduce(attn1) and AllReduce(attn0) in the backward. Code is here and here
For 3, we believe row-split on input is enough for most small model training (i.e. less than 30B or so). And we believe these small models are what our open-source community most focus one. For similar reason as this issue, we want to release only Necessary features to our open-source community
Let me know if the above answers your questions. Also feel free to ping me at<EMAIL_ADDRESS>if you are interested in our Domino project. We are now forming our small interest group for domino project and later on research lines.


Remove regex guess on counting query

The hasCountRegexp and check in the selectSql was causing issues on queries with embedded count(*) in them.  For example, a query in the following format will fail to act as expected -
db.Table("table1").Select(", (select count() from table2 where table1.id = table2.id)").Order("table1.name")
The sql generated will not include the order by clause, but will also not generate any errors.
The new behavior is that the query will attempt to run exactly as the developer entered it - if it is invalid, the developer will receive an error.  If the developer uses the built in gorm Count() method, any order by clauses will be ignored, and the correct count will be returned.

Hi @jseriff
Thank you for your pull request.
This is helpful for most cases, but in some edge cases (which happened in an application I written), scaning the count into a struct, but not using the Count method, which will be broken.
I will think about this in the v1 release, to think if there is any better solution to resolve your/my problem

Thanks for taking a look.
I think it would be good for the query modifying behavior that you need to be opt-in somehow, as without this PR that are queries that cannot be run at all with gorm.  So, for example, perhaps a WithoutOrder() method which removes the order from the query prior to a Find() or similar call.


Create a Python extension for C#...?

I see there are lots fo ways to use Python as the base and C++ as the extension but I am wondering: Is it possible to create something similar but using Csharp as the base and Python as the extension?
Here's what I mean: I'm developing an AddIn for ArcGISPro. Previously, in my python addin for ArcGIS 10.6, I use a great method to handle code changes on the fly: I use the regular python addin code (let's call it the 'pythonButtonWrapper') to:

import a pythonModule.function code that runs when a particular button is clicked;
'recompile' that pythonModule code on the fly and;
handle the button clicks, telling the pythonModule code what button was clicked.

The pythonModule code then takes over execution. It works great. Because I recompile the pythonModule code on the fly, I can code the functionality into the pythonModule code and never have to touch the pythonButtonWrapper. It never changes (unless of course I add new buttons, etc).
ArcGISPro uses Csharp for its addin code and I can generate a 'CsharpButtonWrapper' for it.
My question: how can I preserve the same functionality, calling my PYTHON module code functions from the 'CsharpButtonWrapper' that I get with VS 2017, passing in the button clicks? The last thing I want to do is translate all of the python module's code functionality into C#! Note: I've found lots of online example code that calls python.exe from C# but that's not what I want to do. I need access to the python module functions themselves, likely through a module.dll(?)
Thanks in advance for your helpful response,
Brian
(Thanks @kraigb for pointing me in the right direction :-)

Thanks for your response. I will look into IronPython further as it seems I have access to it, or at least some form of it. It's a bit difficult as I'm restricted to what I can do on a government server. I've been hunting high and low for a tutorial that would show me how to do what I want but to no avail so far. I'll have to do some baby-step tutorials and work myself up to it, unless of course you could point me to a tutorial on this specific issue?
Thanks again,
Brian

This might be a bit dated in places, but it should be possible to get it to work with minor obvious tweaks. I think it covers exactly what you want - how to load a Python module from C#, and use functions and classes in it via dynamic.
https://blogs.msdn.microsoft.com/charlie/2009/10/25/running-ironpython-scripts-from-a-c-4-0-program/

Brilliant! Thanks so much.
I've been investigating and I don't think the government install of VS2017 is configured properly. At least I'm on the right track now! Thanks so much,
cheers...B

@blueincmultimedia Glad you found the answers you needed, and Pavel, thanks for helping out!

I've set up my home development with VS2017 and ArcGIS Pro to have the flexibility outside government confines to work on this project.
IronPython seems to be the way to go and I have the example working perfectly, doing exactly what I originally asked: doing method calls to my python scripts from C#, so thanks again Pavel for your help.
The issue now is that the python code that the button runs imports some specific ArcGIS modules like arcpy, pythonaddins etc that IronPython just does not recognise. I've tried adding them in my C# wrapper to the System searchpaths using:
            ScriptEngine pythonEngine = Python.CreateEngine();
            System.Diagnostics.Debug.WriteLine("Search paths:");
            ICollection<string> searchPaths = pythonEngine.GetSearchPaths();

            searchPaths.Add("C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3");
            searchPaths.Add("C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3\\Lib");
            searchPaths.Add("C:\\Program Files\\ArcGIS\\Pro\\bin\\Python\\envs\\arcgispro-py3\\Lib\\site-packages");
            pythonEngine.SetSearchPaths(searchPaths);

            foreach (string path in searchPaths)
            {
                System.Diagnostics.Debug.WriteLine(path);
            }
            System.Diagnostics.Debug.WriteLine("*");

            var ipy = Python.CreateRuntime();
            dynamic test = ipy.UseFile("test.py");  //********** fails on: no module named arcpy
            test.printHello();

How do I get IronPython to recognise my python's arcpy module?
Thanks again in advance for your help,
Brian

IronPython is Python 2.x, and you're trying to add a Python 3 module, which is probably the issue here.
In general, I have no idea about ArcGIS, but you might be in the "If your module requires Python 3, or is not compatible with IronPython" category I mentioned earlier - if so you should rather look into Python.NET.

@blueincmultimedia you may be interested in this blog post about ArcGIS and pythonnet:
https://tereshenkov.wordpress.com/tag/pythonnet/

@blueincmultimedia you may be interested in this blog post about ArcGIS and pythonnet:
https://tereshenkov.wordpress.com/tag/pythonnet/

@denfromufa Thanks for this but it does the exact opposite from what I need, I think: that link is about calling C# from Python but I need to call Python from C#. Thank you anyway; I do appreciate it.

IronPython is Python 2.x, and you're trying to add a Python 3 module, which is probably the issue here.
In general, I have no idea about ArcGIS, but you might be in the "If your module requires Python 3, or is not compatible with IronPython" category I mentioned earlier - if so you should rather look into Python.NET.

@int19h Thanks, I guess I will have to. It's so frustratingly close right now! lol. I feel like if perhaps I could find a way to add the Python env that ArcGIS uses (they bundle their own version with ArcGIS Pro that has arcpy, etc in it) and add that to...IronPython's IRONPYTHONPATH environment variable(?) or something.... I know, grasping at straws now...

@blueincmultimedia pythonnet works the other way too - you can embed CPython in C# app using pythonnet. The syntax is different from IronPython.
You cannot mix ArcGIS CPython and IronPython unless you setup out-of-process calls. These are 2 totally different Python runtimes.

I think you have already moved away from the IronPython approach which is good because supporting it is no longer a priority for us given low usage and the fact that there are alternatives that work with Python 3.
(I am briefly reopening and closing this issue as our data warehouse is still showing this issue as open, and I want to trigger another close event to avoid this showing up in active issue queries).


admin UI for changing exchange status

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/27615236-admin-ui-for-changing-exchange-status?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github).

What does "exchange status" mean?

What does "exchange status" mean?

It refers to the status of an attempt to move money between Gratipay and other payment systems, one of:
('pre', 'pending', 'failed', 'succeeded').


CAN-357: Refactor to use real data ingestion

Refactored the visualisation tool to enable use of real data with the decipher data handler package.
Also removed the Person class and everything related to predictions.
Functionality that might be used in the future, such as vaccination data and the plots with predictions is left as comments (mostly)
Added data_ingestion.py which includes transformers and pipelines to prepare the data into a format that the rest of the application (which is largely untouched) can deal with
The NAHandler transformers is required only due to the processing from the data handler, which gives very annoying <NA> (pd._libs.missing.NA) types. I convert them to good old np.nan instead.

The demo data is now the random mock data that we have been using for testing, so the plots look weird. Can you see if they are weird because this or if there's a bug somewhere?

Great work! massive PR
My suggestions

[ ] Use parquet loading instead
[ ] See comments on the various transformers
[ ] Remove matfact as dependency, together with the examples dependency group

There is something wrong in bokeh_demo.backend.link_sources. I have not been able to find out exactly what, but I believe it has to to with the following: before, the indices of both person_source and exams_source was sequential. Now, at least ofr exam_source, the index is not sequential. Might be that simply resetting the index will help...


Add contribution guidelines, code of conduct, issue templates

Mirror the datajoint/pharus repository, once it is updated based off of today's discussion./.github/ISSUE_TEMPLATE/bug_report.md
/.github/ISSUE_TEMPLATE/feature_request.md
/.github/ISSUE_TEMPLATE/config.yml
/CONTRIBUTING.md
/CODE_OF_CONDUCT.md

I'm not seeing a Code of Conduct in datajoint/pharus, not on the datajoint-python or datajoint-elements repos. Should we develop one based on github's template?

Thanks @CBroz1.  Good catch.  Yes, I agree.  Let's use the template you linked and we can fill in the email address in the Enforcement section.
@dimitri-yatsenko @guzman-raphael @ttngu207, would the Code of Conduct that Chris linked above work for all of our open-source software repositories?  Thank you.


Quote special characters in urls

This is a quick and untested rebase of an old commit. Needs some testing.

@alcoralcor - Do you think that you could test with this branch ? It would really useful.

I've done some tests.
In "<img src=...", only file name is encoded. Path isn't. So, thumbnails are not loaded into page when there's a special char in path. They are loaded in last directory level because there are no more path, except "thumbnails/".
Lots of special chars have been used, all are well encoded when they are ... (in "<a href=" or file names as mentioned above).
I've tested this in all themes (galleria, colorbox and photoswipe). I'm running Python 3.6.6.

Thanks for the testing @alcoralcor , hopefully it should be good now!

Everything's working properly now @saimn ! Thank you for the fix !


error: cannot find symbol import org.opencv.DocumentScannerPackage

i have imported import com.documentscanner.DocumentScannerPackage
in my myapplication file
but when i try to build project in
app/build/generated/rncli/src/main/java one file called PackageList.java
this file generates automatically and in this file it will take import as
org.opencv.DocumentScannerPackage
i can not change this file because this is system generated file
Please help me on this

You have to link the package manually and then import it in MainApplication.java as:
import fr.michaelvilleneuve.customcrop.RNCustomCropPackage;
Also add this line to getPackages() :
packages.add(new RNCustomCropPackage());

I'm facing the same issue

Did you find the solution? :((

same issue


Add ITagHelperActivator abstraction

Since very early on ASP.NET Core MVC contained the proper interception point for the creation of controller types using the IControllerActivator abstraction. Since RC2, MVC also contains the proper interception point for the creation of another root type: view components. Interception of the creation of view components is done through the IViewComponentActivator abstraction.
Yet another root type that is resolved using the new (DI based) configuration system is the TagHelper. Just as with controllers and view models, the user might want to inject his application services into his tag helpers. Currently however, there is no way to intercept the creation of tag helpers as we can do with controllers and view components.
Please add the proper abstraction so that the creation of TagHelpers can be intercepted. For instance: ITagHelperActivator.

@dotnetjunkie is ITagHelperActivator not sufficient?

Not sure how I was able to miss that interface. That does seem sufficient.


0.8.0 Feature List

[ ] Remove trailing slash functionality (https://github.com/ibraheemdev/matchit/issues/31#issuecomment-1588148126)
[ ] Switch to {x} syntax for route parameters (https://github.com/ibraheemdev/matchit/issues/23#issuecomment-1272107900, https://github.com/ibraheemdev/matchit/issues/17#issuecomment-1112830972)
[ ] Implement route normalization (https://github.com/ibraheemdev/matchit/issues/13).

I think I read a discussion about the new syntax before, this includes escaping { and } with {{ and }} just like in Rust's format! strings, right?

@jplatte yes. Catch-all routes will also be specified within the { } as /foo/{*wildcard}.

With {} parameters, we also run into more interesting conflicts. For example, given /{foo}.{bar} and /{foo}b{bar}, what does /ab.cd match? Both are /{ab}.{cd} and {a}b{.cd} are matches, but without a user-given priority the choice is unclear, so the routes should be considered conflicting.
There are two rules that I can see working for conflicts:

Only allow a single specialized pattern per route segment. e.g. /{foo} and /{foo}.{bar} is fine, but adding /{foo}b{bar} causes a conflict.
Allow multiple specialized patterns as long as they contain a different number of parameters. e.g. /{foo}, /{foo}.{bar}, /{foo}.{bar}.{baz} are fine, but adding /{foo}-{bar} causes a conflict. Specializations with a larger number of parameters take priority, e.g. /foo.bar.baz matches /{foo}.{bar}.{baz}, not /{foo}.{bar.baz}.

I'm leaning towards option 1 for simplicity's sake, and I'm not sure how much value option 2 would add.

Hey @ibraheemdev, could you use any help with this? Looks like we'll want to ship axum 0.8 sooner rather than later (maybe around end of Q1'24, but that's entirely my personal guess) and it would be great to have the new matchit with different routing syntax included.

@jplatte Thanks for the reminder. I have most of the work finished locally, just need to clean some things up. It should be done by then, if not I'll try to have a 0.8 release with the new syntax that's still restricted to the old conflict rules.

Hey @ibraheemdev, #49 will be part of this version? Or do you plan to release it later? It is a feature that I would really need for my lib socketioxide.

0.8 has been released! See the release notes for details.
@Totodore we can get #49 merged with a minor version bump now once it's ready that the major changes are out of the way.


Draft a vendor update policy

We need to define a policy for updating the vendor/ directory.
I propose it's written in a vendor/README.md file.
My proposal for a policy is:

vendor/ is only updated when needed to fix a bug or to implement a feature.
when bugfix or feature also require changes to the gitea/ codebase, the updating PR should include both vendor/ and local file changes
when bugfix only requires upgrading of the vendor, the PR should only include the vendor update
reviewer should check to make sure the updates under vendor/ really match an upstream commit before approving the changes

We could also update minor versions of our dependencies.
I think it's the responsibility of the merger to make sure that updated dependencies don't break anything. Additionally PR creator can help with that by providing more info about why the dependency was updated.

I agree about the possibility to update minor versions, but it still needs a justification to update (so yes, would need to be written in the PR).
And yes, merger should also check the update doesn't break anything, but the important point to me is that the matching with upstream version is checked, to avoid having local-only changes (as it happened when lint errors were fixed). Do you agree on that part ? (ie: no local-only modifications)

Doesnt a VENDORING.md file in the main folder make more sense, since people tend to ignore the vendor/ directory? (cfr docker)

Good idea, +1 for VENDORING.md

We already have a lot of files in the root. Let's just add a section to the README.md that tells which vendoring tool gitea uses. I don't see the need for a extra file.

Le'ts move this to #187, where I added a vendoring section to the CONTRIBUTING.md file (which is linked from the PR template)


Missing regeneratorRuntime in 0.2.3

Because combineReducer is internally using generators babel-runtime should be explicitly defined as peer dependency.

Fixed by cffaee2d604226595e35b4c28dfbe9b4438e7612


Changing the color in the input does not update the swatch

Also if you set the color in your data on load the swatch ignores the value.

Hi @sebastienb I tried to reproduce it here: https://codesandbox.io/s/exciting-browser-sp2th?file=/src/App.vue
and it seems to work fine? can you share an example where it fails?

Hi @dcustodio, I am experiencing the same issue.
The input works until the color picker is used. Once the color picker has been used to pick the color, the input will not work anymore.
I also reproduced it in your codesandbox.
Steps to reproduce

Choose a color using the color picker.
Change the value in the input. Color in the color picker is not updated

Expected behavior
The color should be updated in the color picker when changing the input.

Hi @dcustodio, I am experiencing the same issue.
The input works until the color picker is used. Once the color picker has been used to pick the color, the input will not work anymore.
I also reproduced it in your codesandbox.
Steps to reproduce

Choose a color using the color picker.
Change the value in the input. Color in the color picker is not updated

Expected behavior
The color should be updated in the color picker when changing the input.


export woodpecker client lib module

tag woodpecker lib independent to export it for use in other projects

-> https://github.com/woodpecker-ci/woodpecker/pull/651#issuecomment-1004161934
to check: do we need own go.mod & go.sum files?

do we need own go.mod & go.sum files?

To leverage it as a separate "module" yes it would need its own.


Reinitialize ARP/NDP responders when the transport interface changes

For secondary-network scenarios, the transport interface can be changed after the agent is started. The ARP/NDP responders should be restarted after the initialization of secondary-network to bind to the transport interface of the new index.
Besides, this change also addresses the following issues:

NDP responder may fail to bind to the new interface due to the Duplicate Address Detection process.
Golang caches the zone index for the interface, which may result in NDP responder binding on the stale interface

Fixes: #6623

@tnqn @antoninbas  I have added this to the 2.2 release log, can you prioritize this PR's review as well? We'd probaboly better to include it considering it's a bug fix. Let me know if you have a different view. Thanks.

@tnqn @antoninbas I have added this to the 2.2 release log, can you prioritize this PR's review as well? We'd probaboly better to include it considering it's a bug fix. Let me know if you have a different view. Thanks.

I started reviewing the code. It may take a few days to get it merged based on the size. One concern right now is that it depends on an upstream change to the ndp library, and it seems that @xliuxu hasn't heard back from the maintainer in a while. We could make a temporary fork of ndp under the antrea-io organization; that would be slightly better than relying on a personal fork.

/test-all


Investigate analytics collection

ISSUE TYPE

Docs Pull Request

SUMMARY

Investigate analytics collection

This PR contains a document with a short summary of my investigation as a part of #506.
See #506

@pkosiec Here's the information collected by OpenShift if you're curious: https://docs.openshift.com/container-platform/4.10/virt/logging_events_monitoring/virt-openshift-cluster-monitoring.html#telemetry-about-telemetry_virt-openshift-cluster-monitoring
They do it through Prometheus push into Prometheus/Thanos: https://github.com/openshift/telemeter. That's probably way more complex than what is needed here, since it has to support tens of thousands of clusters.

Thanks @brampling 👍 I saw the OpenShift doc before, and such amount of data collected definitely makes sense for such a big platform. For BotKube I think it's more about the application itself, rather than the environment (as BotKube is currently just a single component with different external integrations), but that can change over time.  That's why IMHO the only thing we would need to collect for now is K8s version.
I also thought about failure reporting (what OpenShift does), but users can often misconfigure the application and to know what the problem is, we would need to gather even more data, which could be problematic. I think it makes more sense for such platform as OpenShift, where the app configuration is managed (so it is already known the app should work without issues). Anyway, I can include that on the list of the minimal scope - I'm open for a discussion 🙂
And yes, probably setting up our own infra for collecting these could be too complex for now. Once we get to the limits of Google Analytics Free, we can definitely go back to this topic 👍

Thank you @brampling and @mszostok. I pushed the improvements to this document - please take a look again. Thanks!


Fix start chat page closes immediately after creating a room while offline

Details

The start chat page closes immediately after we create a new room while offline.
Fixed Issues

$ https://github.com/Expensify/App/issues/40855
PROPOSAL: https://github.com/Expensify/App/issues/40855#issuecomment-2074862188
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Go offline
Create a new room from FAB
Open the new room page again from FAB
Verify the new room page is shown

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/react-native-onyx/assets/50919443/6043c996-6d6d-4307-bc34-8f435ae2cb73

Android: mWeb Chrome

https://github.com/Expensify/react-native-onyx/assets/50919443/77b1e2d4-d179-4d67-a74d-c651ce12ce3e

iOS: Native

https://github.com/Expensify/react-native-onyx/assets/50919443/ae9af2e1-7ba2-4fca-a7cd-fbd37ee43b25

iOS: mWeb Safari

https://github.com/Expensify/react-native-onyx/assets/50919443/e0ad58a0-6037-4a7f-a55b-e3dc558e1e78

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/f5d51e81-173d-4a42-ab30-33b649c25a98

MacOS: Desktop

https://github.com/Expensify/react-native-onyx/assets/50919443/8c999794-295d-4c76-9da5-9dac8a0a59df

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/puneetlath in version: 1.4.77-11 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/puneetlath in version: 1.4.77-11 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This PR fails with the fixed issue https://github.com/Expensify/App/issues/40855 in web mweb and desktop
https://platform.applause.com/services/links/v1/external/d9a89bedcea3fc66f9ab29c4824602b50e96d07c988530cad34d0e237a7ea11a
https://platform.applause.com/services/links/v1/external/d369b5417f27c4f58b57f9aa7429d7bd2d72c6f64c228fee4ac6f938f441cddf
https://platform.applause.com/services/links/v1/external/a0ad2589fdd7abf303e10ec849afbd33774fe94fd2bd6722091d8167e1964839

@kavimuru I think because the onyx bump is reverted. There is a new onyx bump PR here, we can retest after that's merged.
cc: @puneetlath @mollfpr


Cleaned the junk codes

I just cleaned the junk codes that will not execute in any situation in, that way the code looks better. By the way nice algorithm!

Why thank you, I would have never expected someone to contribute to any of my repos


Show Badge view in a List view isn't working for Android app

Describe the bug
"In Case Feed Caregiver view (Feed viewtemplate): In Case Show Caregiver view (Show viewtemplate): In Case Badge Show view (Badges viewtemplate): sqlite3_prepare_v2 failure: no such function: ARRAY_AGG" appears on my Page which has a Badge View inside of a List view.
Expected behavior
Show my Badge Show view
**Additional info
Latest Beta version, .21. I compiled the android app with all plugins installed.

Just looked at it, the badges plugin is not ready for mobile yet.
I*ll try to get this in soon.

can you try it again with 0.2.3


Created Prettier GitHub Action for Code Formatting ⚡

Related Issue
Closes: #171
Description of Changes
I have created a new workflow which Check format of code means Pretier and workflow code is added into  : .github/workflows
Checklist:

[x] My code adheres to the established style guidelines of this project.
[x] I have conducted a self-review of my code.
[ ] I have included comments in areas that may be difficult to understand.
[ ] I have made corresponding updates to the project documentation.
[x] My changes have not introduced any new warnings.

Screenshots

Please provide any necessary screenshots to illustrate the changes made.

@Nishitbaria
Which permissions should i give to run this workflow?

@Nishitbaria
Which permissions should i give to run this workflow?

Hey @apoorvaron  this workflow is not run because There are so many files that not in the format of prettier that vice its not run so firstly We have to format in the all code then it's works

😂👍


[GSB] Use resolved type when looking for a representative constraint.

When looking for a representative superclass constraint, take into
account other same-type constraints by comparing against the resolved
superclass constraint type rather than the type as spelled.
Fixes SR-8179 / rdar://problem/41851224.

@swift-ci please smoke test and merge


Invalid control character in source url

I'm not able to use image urls like the following:
https://example.com/files/uploads?path=1234/profile.jpg
I already tried to urlencode, base64 encode, but nothing gonna happen. It always results in:
"Source image is unreachable" or "invalid control character in URL". I guess the ? and/or slash in the path is the reason for this error. All other urls are working fine. When I add ?lorem=ipsum add another working image, it is also not possible.
This is my current function:
function proxyImg($url)
{
$url = urlencode($url); // does not work with or without ...
    $key = 'xxx';
    $salt = 'yyy';

    $keyBin = pack("H*" , $key);
    if(empty($keyBin)) {
        die('Key expected to be hex-encoded string');
    }

    $saltBin = pack("H*" , $salt);
    if(empty($saltBin)) {
        die('Salt expected to be hex-encoded string');
    }
    $path = "/".base64_encode($url);

    $signature = rtrim(strtr(base64_encode(hash_hmac('sha256', $saltBin.$path, $keyBin, true)), '+/', '-_'), '=');

    return 'https://img.example.com'.sprintf("/%s%s", $signature, $path);
}

any ideas?

Hey @visioncode!
Could you show me the generated URL? You can omit the host part.

@DarthSim
here we go: https://imgproxy.example.com/ZtxCmMlKR8HLbMg4Xx5latM3s5Kf4nHAeIbmRGjZlPo/aHR0cHMlM0ElMkYlMkZwb3J0YWwuZmxlZXQtZXZlbnRzLmRlJTJGZGUlMkZmaWxlcyUzRnBhdGglM0Rsb2dvcyUyRmJhYmluaS5qcGc=
$key = '2b73b2f91ae1c00e880e061cb18b5445c3758be7092238f777c0aa31bc15eeae';
$salt = 'c78c093521373895f4cddfa36aa4c7747fbf0995037fec8406bc111ed805e9b8';

aHR0cHMlM0ElMkYlMkZwb3J0YWwuZmxlZXQtZXZlbnRzLmRlJTJGZGUlMkZmaWxlcyUzRnBhdGglM0Rsb2dvcyUyRmJhYmluaS5qcGc= is decoded to escaped (urlencoded) URL. You shouldn't escape the URL before encoding to base64.
https://go.dev/play/p/QRxbGPsnpY2

@DarthSim you are right and this example now works .. but why do I get an "Source image is unreachable" error while using another path? Could you please try this out:
https://imgproxy.example.com/U7M1N22BUBGrMhmgY6TY1SLFhoV7DXsxwOf9AnAQ_eE/aHR0cHM6Ly9wb3J0YWwuZmxlZXQtZXZlbnRzLmRlL2RlL3VwbG9hZHM/cGF0aD0xMjYyL3Byb2ZpbGUuanBn
Thanks for help!

You should use URL-safe base64 encoding, meaning you need to replace / with _ and + with -. Your base64 string contains /:
aHR0cHM6Ly9wb3J0YWwuZmxlZXQtZXZlbnRzLmRlL2RlL3VwbG9hZHM/cGF0aD0xMjYyL3Byb2ZpbGUuanBn
                                                       ^here

thanks, works like a charm now! :)


Allocation reduction pass

Just a reminder to do our normal allocation-reduction pass over every module for free performance wins, even if minute.

Switch loops to be indexed when we can trust the source of the list to be random access.
Replace multi-step collection manipulation with traditional loops.
Reduce/eliminate points of value class or JVM primitive boxing, if possible

etc.

Maybe we can write Detekt rules for some of these?


Fix -Improve check of signatures subset in stateful validator

Description of the Change
Implemented the changes suggested in review comments

Benefits
Better time complexity, performance, simplicity

Possible Drawbacks
Nothing

Usage Examples or Tests [optional]

Alternate Designs [optional]

I am not really sure that you've done that you really want.
Make sure you are opening a pull request from your own repo, and double check the branch as well


Passes unhandled map interactions to lower annotations

When all OnAnnotationLongClickListener or OnAnnotationClickListener listeners return false, the event will be passed to the next annotation returned from the feature query.

@LukasPaczos Note sure what I need to do to get eyes on this. I'd really like to get this working in master, so that I can update to the latest versions released by Mapbox.

Tagging @mapbox/maps-android here.