Retry on failures for all ActivationsApiTests to stabilize mainBluewhisk

In our tests we encounter every now and then failing tests that fail because of timeouts, Cloudant's eventual consistency or other reasons.
Description
This code change tries to recover from these intermittent failures by retrying the failed test. Objective is to stabilize the mainBluewhisk builds.
01:00:13  org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should skip activations and return correct ones STANDARD_OUT
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:13      condition not met, retrying
01:00:14      condition not met, retrying
01:00:14      condition not met, retrying
01:00:14      condition not met, retrying
01:00:14      condition not met, retrying
01:00:15
01:00:15  org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should skip activations and return correct ones FAILED
01:00:15      org.scalatest.exceptions.TestFailedException: List("xyz", "xyz") was not equal to List("activations_tests_name14", "activations_tests_name13")
01:00:15          at org.scalatest.MatchersHelper$.indicateFailure(MatchersHelper.scala:343)
01:00:15          at org.scalatest.Matchers$ShouldMethodHelper$.shouldMatcher(Matchers.scala:6723)
01:00:15          at org.scalatest.Matchers$AnyShouldWrapper.should(Matchers.scala:6759)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.$anonfun$new$76(ActivationsApiTests.scala:489)
01:00:15          at scala.util.DynamicVariable.withValue(DynamicVariable.scala:62)
01:00:15          at akka.http.scaladsl.testkit.RouteTest.$anonfun$check$1(RouteTest.scala:56)
01:00:15          at akka.http.scaladsl.testkit.RouteTestResultComponent$RouteTestResult.$tilde$greater(RouteTestResultComponent.scala:50)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.$anonfun$new$73(ActivationsApiTests.scala:485)
01:00:15          at org.scalatest.OutcomeOf.outcomeOf(OutcomeOf.scala:85)
01:00:15          at org.scalatest.OutcomeOf.outcomeOf$(OutcomeOf.scala:83)
01:00:15          at org.scalatest.OutcomeOf$.outcomeOf(OutcomeOf.scala:104)
01:00:15          at org.scalatest.Transformer.apply(Transformer.scala:22)
01:00:15          at org.scalatest.Transformer.apply(Transformer.scala:20)
01:00:15          at org.scalatest.FlatSpecLike$$anon$5.apply(FlatSpecLike.scala:1682)
01:00:15          at org.scalatest.TestSuite.withFixture(TestSuite.scala:196)
01:00:15          at org.scalatest.TestSuite.withFixture$(TestSuite.scala:195)
01:00:15          at org.scalatest.FlatSpec.withFixture(FlatSpec.scala:1685)
01:00:15          at org.scalatest.FlatSpecLike.invokeWithFixture$1(FlatSpecLike.scala:1680)
01:00:15          at org.scalatest.FlatSpecLike.$anonfun$runTest$1(FlatSpecLike.scala:1692)
01:00:15          at org.scalatest.SuperEngine.runTestImpl(Engine.scala:286)
01:00:15          at org.scalatest.FlatSpecLike.runTest(FlatSpecLike.scala:1692)
01:00:15          at org.scalatest.FlatSpecLike.runTest$(FlatSpecLike.scala:1674)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.org$scalatest$BeforeAndAfterEach$$super$runTest(ActivationsApiTests.scala:49)
01:00:15          at org.scalatest.BeforeAndAfterEach.runTest(BeforeAndAfterEach.scala:221)
01:00:15          at org.scalatest.BeforeAndAfterEach.runTest$(BeforeAndAfterEach.scala:214)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.runTest(ActivationsApiTests.scala:49)
01:00:15          at org.scalatest.FlatSpecLike.$anonfun$runTests$1(FlatSpecLike.scala:1750)
01:00:15          at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:393)
01:00:15          at scala.collection.immutable.List.foreach(List.scala:392)
01:00:15          at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:381)
01:00:15          at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:370)
01:00:15          at org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1(Engine.scala:407)
01:00:15          at scala.collection.immutable.List.foreach(List.scala:392)
01:00:15          at org.scalatest.SuperEngine.traverseSubNodes$1(Engine.scala:381)
01:00:15          at org.scalatest.SuperEngine.runTestsInBranch(Engine.scala:376)
01:00:15          at org.scalatest.SuperEngine.runTestsImpl(Engine.scala:458)
01:00:15          at org.scalatest.FlatSpecLike.runTests(FlatSpecLike.scala:1750)
01:00:15          at org.scalatest.FlatSpecLike.runTests$(FlatSpecLike.scala:1749)
01:00:15          at org.scalatest.FlatSpec.runTests(FlatSpec.scala:1685)
01:00:15          at org.scalatest.Suite.run(Suite.scala:1124)
01:00:15          at org.scalatest.Suite.run$(Suite.scala:1106)
01:00:15          at org.scalatest.FlatSpec.org$scalatest$FlatSpecLike$$super$run(FlatSpec.scala:1685)
01:00:15          at org.scalatest.FlatSpecLike.$anonfun$run$1(FlatSpecLike.scala:1795)
01:00:15          at org.scalatest.SuperEngine.runImpl(Engine.scala:518)
01:00:15          at org.scalatest.FlatSpecLike.run(FlatSpecLike.scala:1795)
01:00:15          at org.scalatest.FlatSpecLike.run$(FlatSpecLike.scala:1793)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.org$scalatest$BeforeAndAfterAll$$super$run(ActivationsApiTests.scala:49)
01:00:15          at org.scalatest.BeforeAndAfterAll.liftedTree1$1(BeforeAndAfterAll.scala:213)
01:00:15          at org.scalatest.BeforeAndAfterAll.run(BeforeAndAfterAll.scala:210)
01:00:15          at org.scalatest.BeforeAndAfterAll.run$(BeforeAndAfterAll.scala:208)
01:00:15          at org.apache.openwhisk.core.controller.test.ActivationsApiTests.run(ActivationsApiTests.scala:49)

Related issue and scope

[ ] I opened an issue to propose and discuss this change (#????)

My changes affect the following components

[ ] API
[ ] Controller
[ ] Message Bus (e.g., Kafka)
[ ] Loadbalancer
[ ] Invoker
[ ] Intrinsic actions (e.g., sequences, conductors)
[ ] Data stores (e.g., CouchDB)
[X] Tests
[ ] Deployment
[ ] CLI
[ ] General tooling
[ ] Documentation

Types of changes

[x] Bug fix (generally a non-breaking change which closes an issue).
[ ] Enhancement or new feature (adds new functionality).
[ ] Breaking change (a bug fix or enhancement which changes existing behavior).

Checklist:

[X] I signed an Apache CLA.
[X] I reviewed the style guides and followed the recommendations (Travis CI will check :).
[ ] I added tests to cover my changes.
[ ] My changes require further changes to the documentation.
[ ] I updated the documentation where necessary.

Tested locally on PG2:
./gradlew :bluemix:tests:testArmada --tests org.apache.openwhisk.core.controller.test.ActivationsApiTests

> Configure project :bluemix:services:billingService
appArgs are not defined

> Task :bluemix:tests:addWhiskCertificate
Certificate was added to keystore

> Task :bluemix:tests:addStageCertificate
Certificate was added to keystore

> Task :bluemix:tests:addProdLondonCertificate
Certificate was added to keystore

> Task :bluemix:tests:addProdCertificate
Certificate was added to keystore

> Task :bluemix:tests:addOpenWhiskCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixUsSouthMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixUsEastMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixStageMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixStageCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixStage0Certificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixStage01Certificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixOpenWhiskStage1NgBluemixNetCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixOpenWhiskNgBluemixNetCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixOpenWhiskEuGbBluemixNetCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixOpenWhiskEuDeBluemixNetCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixJpTokMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixEuGbtMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addBluemixEuDetMultiDomainCertificate
Certificate was added to keystore

> Task :bluemix:tests:addArmadaUSEastCertificate
Certificate was added to keystore

> Task :bluemix:tests:addArmadaSelfSigned
Certificate was added to keystore

> Task :bluemix:tests:addArmadaLetsEncryptCACertificate
Certificate was added to keystore

> Task :open:tests:buildArtifacts
Test zip artifacts already built, skipping

> Task :bluemix:tests:testArmada

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get summary activation by namespace STANDARD_OUT
    condition not met, retrying

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get summary activation by namespace PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should return empty list when no activations exist PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get full activation by namespace STANDARD_OUT
    condition not met, retrying

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get full activation by namespace PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get full activation by namespace within a date range PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should accept valid name parameters and reject invalid ones PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get summary activation by namespace and action name PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject invalid query parameter combinations PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject list when limit is greater than maximum allowed value PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject list when limit is not an integer PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject list when skip is negative PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject list when skip is not an integer PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject get activation by namespace and action name when action name is not a valid name PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject get activation with invalid since/upto value PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should skip activations and return correct ones STANDARD_OUT
    condition not met, retrying
    condition not met, retrying

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should skip activations and return correct ones PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should return last activation STANDARD_OUT
    condition not met, retrying
    condition not met, retrying
    condition not met, retrying

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should return last activation PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get activation by id PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get activation result by id PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should get activation logs by id PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject request to get invalid activation resource PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject get requests with invalid activation ids PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject request with put PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject request with post PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should reject request with delete PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests > Activations API should report proper error when record is corrupted on get PASSED

org.apache.openwhisk.core.controller.test.ActivationsApiTests STANDARD_OUT
    Shutting down db connections

BUILD SUCCESSFUL in 1m 1s
61 actionable tasks: 39 executed, 22 up-to-date

ApiGwRestTests tests fails by the majority, not related to these changes.
org.apache.openwhisk.core.cli.test.ApiGwRestTests > Wsk api should reject an api commands with an invalid path parameter FAILED
    org.scalatest.exceptions.TestFailedException: "API creation failure: Unable to configure the API Gateway (status code 500): "\r\n<title>500 Internal Server Error</title>\r\n\r\n
500 Internal Server Error
\r\n
openresty/<IP_ADDRESS>\r\n\r\n\r\n"" did not include substring "Error: Resource path must begin with '/'."
        at org.scalatest.MatchersHelper$.indicateFailure(MatchersHelper.scala:343)
        at org.scalatest.Matchers$ShouldMethodHelper$.shouldMatcher(Matchers.scala:6723)
        at org.scalatest.Matchers$AnyShouldWrapper.should(Matchers.scala:6759)
        at org.apache.openwhisk.core.cli.test.ApiGwRestTests.verifyBadCommands(ApiGwRestTests.scala:43)
..
359 tests completed, 22 failed, 4 skipped
> Task :tests:testCoverageLean FAILED
FAILURE: Build failed with an exception.


[Suggestion] Add a new index IVF_PQ

Is there anything that's missing or inappropriate in the docs? Please describe.
A new indexing method IVF_PQ is supported in v0.5.1. There's currently no corresponding doc about it.
Describe your suggestion
Add descriptions about this new index in Milvus Operations and Product FAQ topics.

Fixed in #132


Expand long path in main view on item selection + Zip icon fix

When Sync Task Item is selected, expand the path to display it all
Fix the Zip icon in Edit Sync task dialog

1- add dynamic view

path is expanded when task is selected / on long click
ellipsize "middle" so that we can perfectly see the most important parts: the begin and end of master/target path !
this is ideal for small devices and in landscape orientation

video: https://www.youtube.com/watch?v=LhQTmiZlvM8

2- fix the broken zip icon in edit sync task dialog

3- there is a bug in the NonWrapTextView:
it adds spaces at end of text in the ellipsize "midle" !
Also, I find path more readable in main view when properly wrapped

Another idea was to expand the text on double tap: however, it is really a non standard android behavior to have double tap in apps + it needs some touch code tweaks
Hope you like the idea to be merged
Best regards

Thank you.

3- There is a bug in the NonWrapTextView:

NonWordwrapTextView does not take into account the ellipSize, as it is intended to not wrap the whole thing, so it may not be displayed correctly.
I don't agree with requiring 2 actions to see the entire file path because it complicates the operation.
I think it would be better to show the file path in the task list with ellipSize=middle and all of the file path in the edit screen if you want to make it a 2 action because it doesn't require the user to do complicated operations.
I think it is better to show all file paths in the task list as well as in the task list so that you can see the directories to synchronize in the task list.
Best regards.

It is a matter of compromise between screen space use for small devices, in land orientation for most devices and the functionality
The whole path is often not needed once we no longer edit or rename/move the task
Ellipsize middle is not bad.
Anyway, for me it is ok
Best regards


Style element error

Im not sure what the cause is, but when i try to use this plugin with an svg with a style block in it, it errors like so:
Unexpected token, expected "}" (1:255)

The character it is referring to is the first colon from the style block

hi @dontwork, thank you for the report.
The classes definition inside style block, for example .foo{opacity:0.5} were been interpreted for solid. I just fixed it scaping the curly brackets.
I published the fix as 0.3.1


Remove examples from the Cargo.toml workspace to prevent compiler warning

Currently, when compiling picoserve, all of the workspace members are included in the crate, leading to these being downloaded although they are never used. Removing the examples from the Cargo.toml members list, as is done in esp_hal and embassy (who don't even have a root Cargo.toml)
warning: skipping duplicate package `web_sockets` found at `/Users/[me]/.cargo/git/checkouts/picoserve-521def08cc55ec79/1f429b6/examples/embassy/web_sockets`
warning: skipping duplicate package `hello_world` found at `/Users/[me]/.cargo/git/checkouts/picoserve-521def08cc55ec79/1f429b6/examples/embassy/hello_world`

(although this is super unimportant)


Debug throws Cannot evaluate because of java.lang.NegativeArraySizeException: -2 when evaluating list size

In repo: https://github.com/asarkar/99-scala
In P01.scala set breakpoint at line 10 (case lst :: Nil => lst), and debug P01Suite.scala "last element of a non-empty list" test. Try to evaluate l.size, see Cannot evaluate because of java.lang.NegativeArraySizeException: -2.
More info in the original issue: https://github.com/scalameta/metals/issues/5997.
dap version: v3.1.5

Thanks for the report!

I’m the reporter of the metals ticket. Please note that no expression works in the watch panel for any code whatsoever, the watch panel is completely broken. Sometimes it shows another error message, but the exception is always some sort of array out of bounds.

@asarkar Thanks for the report and reproduction. Next time, could you avoid using such emphasis as: "the watch panel is completely broken". It can be perceived as aggressive and it won't help us fix the bug.

@adpi2 Actually, I don't see anything wrong with emphasizing a fact, so, I'm sorry but I won't be able to avoid doing that should it happen again. If that's perceived as aggressive, we can chalk it up to the reader's fragile ego.

The problem with this build is the compiler is configured with -rewrite -indent and so it tries to rewrite the file during compilation. I can fix it by automatically filtering out those options.


Assert the sourceView type for iPad.

Hi, tab-style guys, this change add assertion for the sender/sourceView's type for iPad.

Ping...

@xingheng I'm not super fond of this change. I feel like asserting fast and early is going to be better than delaying the assert. Technically there is nothing wrong with the current code, so this is merely a code structure change up if I am understanding your change correctly.

@xingheng Is there are particular scenario that the current existing code isn't properly handling for you? Perhaps some context there would be beneficial to understand why you feel this change needs to be made.

@gks For my case the sender object could be any types, such as UITapGestureRecognizer from UILabel, it won't break me in debug mode in iPad and crash in Release mode, the original NSLog warning is too meek. I expect a strong assertion to find the crash issue ASAP, for iPad.

Hi @xingheng
Unfortunately I'm going to have to close this PR. If you look at all of our assertions we've made the decision to assert at the very top. When designing an API we opted to do all the precondition checking at the top and assert immediately so the developer will know exactly where the error is.
In your particular change you've moved the assertion lower in the logic of the method. This means that the assertion is no longer doing precondition checking at the beginning and deferring it until later. Without doing an incredible amount of testing it's possible that a user might actually encounter an error due to this change but not be notified in the proper location. It would crash elsewhere in the UIActivityViewController rather than while creating the UIActivityViewController. This makes debugging the problem far more difficult.
As an alternative to this, my suggestion might be that if you really need this to work for you, perhaps fork the code, make your change and build using your own fork. You could always keep your fork in sync with ours and you'd have the change you need. But I don't want to put other developers at risk for this one and it's a fundamental change in code style than we are currently using.
If you would like to discuss further please email in at<EMAIL_ADDRESS>and mention my name (Kyle) and we can discuss, but for now I am closing this PR.


Facetview_Ads Rework

First round of upgrades including:

Cached images and ads
Image scroll
Connection to imagespace
Spacing/layout improvements
Highlighting of search/facet terms
Updated facets
Content filtering in each result based on search/filter terms

you da man thanks @khundman


Trying to add a react navigation to the App. js file. won't work.

[ ] Review the documentation: https://docs.viromedia.com/
[ ] Search for existing issues: https://github.com/viromedia/viro
[ ] Use the latest ViroReact release: https://docs.viromedia.com/docs/releases

Environment
Please provide the following information about your environment:

Development OS: Mac
Device OS & Version:  iOS version (14.4)
react-viro: "2.17.0", react-native: "^0.59.9"
Device: iphone 12 pro max

Description
I'm trying to make a viroreact project and the only and easiest way to incorporate a "homePage" or some type of navigation with it is to build it in the App.js file. When I introduce with adding a createStackNavigator or any type of navigator from react navigation i always get this error

null is not an object (evaluating '_RNGestureHandlerModule.default.Direction')
Reproducible Demo
here is my package.json file
{
"name": "Portfolio",
"version": "0.0.1",
"private": true,
"scripts": {
"prestart": "./node_modules/react-viro/bin/run_ngrok.sh",
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"@react-native-community/masked-view": "^0.1.10",
"@react-navigation/bottom-tabs": "^5.11.7",
"@react-navigation/native": "^5.9.2",
"@react-navigation/stack": "^5.14.2",
"link": "^0.1.5",
"react": "16.8.3",
"react-native": "^0.59.9",
"react-native-gesture-handler": "^1.10.0",
"react-native-reanimated": "^1.13.2",
"react-native-safe-area-context": "^3.1.9",
"react-native-screens": "^2.17.1",
"react-viro": "2.17.0"
},
"devDependencies": {
"@babel/core": "^7.12.10",
"@babel/runtime": "^7.12.5",
"babel-jest": "^26.6.3",
"jest": "^26.6.3",
"metro-react-native-babel-preset": "^0.65.0",
"react-test-renderer": "16.8.3"
},
"jest": {
"preset": "react-native"
}
}

and my App.js with things commented out. When I uncomment them I get that error.
// import 'react-native-gesture-handler';
import React, { Component, Fragment } from 'react';
import {
AppRegistry,
Text,
View,
StyleSheet,
PixelRatio,
TouchableHighlight,
} from 'react-native';
import {
ViroVRSceneNavigator,
ViroARSceneNavigator
} from 'react-viro';
import { NavigationContainer } from '@react-navigation/native';
// import  { createBottomTabNavigator } from '@react-navigation/bottom-tabs'
// import { createStackNavigator } from '@react-navigation/stack'
// import HomeScreen from './screens/HomeScreen'
// const Stack = createStackNavigator();
thnaks for any help I've been trying to figure this out for a week for my capstone and not having any luck.

The same here...

Implementation that you did is only work on RN0.60.0 or higher versions.
If you run react-viro on higher RN version, react-navigation will work as you expected.


Remove duplicated code in AcceptorChannel classes.

Motivation:
NioUdtByteAcceptorChannel and NioUdtMessageAcceptorChannel have almost same code.
For maintainability, it's better to remove it.
Motification:

Pulled a member(METADATA) and methods(doReadMessage(), metadata()) up.
Added newConnectorChannel().

Result:
Cleaner code.

AUTOMATED MESSAGE for ADMINS:Please verify and accept the pull request.To accept, say @netkins acceptTo build again, say @netkins buildTo whitelist the author, say @netkins whitelist

@netkins build

@netkins build

@lime62 thanks!
Cherry-picked into 4.0 (677990d040d1e81c39c7471a169424849f16f6dc), 4.1 (c85b770ac4d3d03af3b603af89c841ebf6c4d082) and master (a8839cc20d5afdfbda4a95594a6fe0ea428e5fc8)


.pfx is replaced by Hardware or HSM tokens...

Since June 2023, the CA's no more providing .pfx instead we get either hardware or HSM tokens. so please update article how it can be utilized with axutil. also is OV certificate is enough for this purpose?
Thanks
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 69192df7-736f-1504-e8ab-d1ececb95800
Version Independent ID: 7707373e-0ef6-ac6b-fcce-efce6a0ade73
Content: Independent software vendor (ISV) licensing - Finance & Operations | Dynamics 365
Content Source: articles/fin-ops-core/dev-itpro/dev-tools/isv-licensing.md
Service: dynamics-365-cross-app
GitHub Login: @pnghub
Microsoft Alias: gned

@pvillads can you please review?

Reached out to PM for guidance.

This document was recently updated.


Switch to ImmutableArray

Contributes to #163
Creating ImmutableArray<T>s has copying overheads if the exact size can't be known in advance.
Remaining public APIs that have interface type results:

IModuleHelpers.GetSortedTypeDefMap
IModuleHelpers.GetSortedTypeRefMap

The result size can sometimes be large.

IHeapHelpers.CreateSegments

Needs evaluation.

Very nice!


Fastlane Errors when uploading to different Play Store tracks

My task is to automate uploading aab to internal and alpha tracks in Google Play. The first one goes smoothly, the next one errors on version already used.
But we don't have this issue when uploading manually. What's up?
🚫 fastlane environment 🚫
Stack

Key
Value

OS
14.4.1

Ruby
2.7.4

Bundler?
false

Git
git version 2.39.3 (Apple Git-146)

Installation Source
~/.rbenv/versions/2.7.4/bin/fastlane

Host
macOS 14.4.1 (23E224)

Ruby Lib Dir
~/.rbenv/versions/2.7.4/lib

OpenSSL Version
OpenSSL 1.1.1w  11 Sep 2023

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
15.3

Swift Version
5.10

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
`./Fastfile`
opt_out_usage
#     upload_symbols_to_crashlytics(app_id: "1:1098558356227:android:ea102557be001b6f168736",
#                                   binary_path: options[:symbolsLink],
#                                   dsym_path: options[:symbolsLink],
#                                   debug: "true")

lane :upload_testFlight do |options|
    app_store_connect_api_key(
        key_id: "HYNWRDSK54",
        issuer_id: "799d7aa8-b433-4af4-ad03-c85a91139e60",
#         key: "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQga0Nt+eHZpO/aZNJD\n9zgx0HJ8EHeYw23v4Gnt2QK3drugCgYIKoZIzj0DAQehRANCAAQC7m/CNcihkhzM\nVmt1WaBjJ/6/7JuWr/I2K4t0YV6DQAzSGSVTCGSSI1sPyFmYX1+soDqYDOOtnNb4\nZQyfNnCL\n-----END PRIVATE KEY-----",
        key_filepath: "./fastlane/AuthKey_HYNWRDSK54.p8",
        duration: 1200, # optional (maximum 1200)
        # in_house: false # optional but may be required if using match/sigh
    )

    # Automatically loads Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
    pilot(api_key: lane_context[SharedValues::APP_STORE_CONNECT_API_KEY],
          app_version: "1."+options[:number], build_number: options[:number]+".1",
          changelog: options[:changes],
          uses_non_exempt_encryption: true,
          testers_file_path: "./fastlane/testers.csv",
          beta_app_description: "Product Recognition App for Retail",
          beta_app_feedback_email<EMAIL_ADDRESS>          ipa: "/opt/workspace/workspace/arpalusdev.productrecognition.ios-provisioned-app/.build/last/ios-provisioned-app/com.productrecognition.arpalus.ipa") --verbose
#           ipa: ".Build/Compliance/TestFlight/com.productrecognition.arpalus.ipa") --verbose
end

lane :firebase do |options|
    echo(message: "<<<<Sending to Firebase; Version Number: " + options[:number] + ">>>>")
    firebase_app_distribution(app: "1:1098558356227:android:ea102557be001b6f168736",
                              service_credentials_file: "./fastlane/shelfauditdec19-firebase-adminsdk-3e8ba-b143c450f7.json",
                              android_artifact_type: "APK",
                              apk_path: ".build/last/planogram-compliance-apk/com.arpalus.planogramcompliance.apk",
                              release_notes: options[:changes],
#                               debug: "true",
                              groups: "Dev")
end

lane :play_store do |options|
    echo(message: "<<<<Validating Key>>>>")
    validate_play_store_json_key(json_key: './fastlane/shelfauditdec19-19a799e28f82.json')

    echo(message: "<<<<Sending to Play Store>>>>")

    supply(package_name: 'com.arpalus.planogramcompliance',
           version_code: options[:number],
           track: 'internal',
           aab: '.build/last/planogram-compliance-aab/com.arpalus.planogramcompliance.aab',
#            validate_only: true,
           release_status: 'draft',
           skip_upload_metadata: true,
           skip_upload_images: true,
           skip_upload_apk: true,
           skip_upload_screenshots: true)

    supply(package_name: 'com.arpalus.planogramcompliance',
           version_code: options[:number],
           track: 'alpha',
           aab: '.build/last/planogram-compliance-aab/com.arpalus.planogramcompliance.aab',
#            validate_only: true,
           release_status: 'draft',
           skip_upload_metadata: true,
           skip_upload_images: true,
           skip_upload_apk: true,
           skip_upload_screenshots: true)
end

lane :send_slack do |options|
    echo(message: "Sending Slack")
    slack(message: options[:target] + " for " + options[:platform] + " v" + options[:number] + " Built.",
          # pretext: "Pretext Test.",
          # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
          slack_url: "https://hooks.slack.com/services/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",
          #       username: "UCB",
          #       success: true,        # Optional, defaults to true.
          # Optional, lets you specify any number of your own Slack attachments.
          payload: { "Build Date" => Time.new.getlocal.to_s }, # "Built by" => "Jenkins",
          # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
          default_payloads: ["test_result", "last_git_commit"],
          # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
          attachment_properties: { # This hash is deep merged with the existing properties set using the other properties above.
                                   # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for instance.
                                   thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
                                   fields: [{ title: options[:link_title],
                                              value: options[:link],
                                              short: false }] }, )
end

lane :upload_file_adminTool_mac do |options|
  zip(path: ".build/last/admintoolmac",
      output_path: "./AdminToolMac.zip",
      verbose: true,
      exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"])

  #upload_to_google_drive(
  #  drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
  #  service_account: true,
  #  folder_id: '1t1X61izyi0fAy7jTfYxKDHJrJNueJ3Ui',
  #  upload_files: [ './Build/AdminTool/AdminTool_Mac.zip' ]
  #)

  update_google_drive_file(drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
                           file_id: '1jqfTYihUZjTWsy8ME35yzTTcaG06j3wb',
                           upload_file: './AdminToolMac.zip')

  slack(message: "Admin Tool for Mac v" + options[:version] + " Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1jqfTYihUZjTWsy8ME35yzTTcaG06j3wb/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

lane :upload_file_adminTool_win do |options|
  zip(
    path: ".build/last/admintoolwin",
    output_path: "./AdminToolWin.zip",
    verbose: true,
    exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"]
  )

  #upload_to_google_drive(
  #  drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
  #  service_account: true,
  #  folder_id: '1t1X61izyi0fAy7jTfYxKDHJrJNueJ3Ui',
  #  upload_files: [ './Build/AdminTool/AdminTool_Mac.zip' ]
  #)

  update_google_drive_file(
    drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
    file_id: '1NnF8Y0iHpcJJJJRpnegXTKk7WI0uEWDc',
    upload_file: './AdminToolWin.zip'
  )

  slack(
      message: "Admin Tool for Windows v"+options[:version]+" Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1NnF8Y0iHpcJJJJRpnegXTKk7WI0uEWDc/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

lane :upload_file_adminTool_linux do |options|
  zip(
    path: ".build/last/admintoollinux",
    output_path: "./AdminToolLinux.zip",
    verbose: true,
    exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"]
  )

  update_google_drive_file(
    drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
    file_id: '1Cxm-g5LlfImNJcd-bYPKIHC55SKUaXhf',
    upload_file: './AdminToolLinux.zip'
  )

  slack(
      message: "Admin Tool for Linux v"+options[:version]+" Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1Cxm-g5LlfImNJcd-bYPKIHC55SKUaXhf/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

lane :upload_file_deployTool_mac do |options|
  zip(
    path: ".build/last/deploytoolmac",
    output_path: "./DeployToolMac.zip",
    verbose: true,
    exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"]
  )

  #upload_to_google_drive(
  #  drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
  #  service_account: true,
  #  folder_id: '1t1X61izyi0fAy7jTfYxKDHJrJNueJ3Ui',
  #  upload_files: [ './Build/AdminTool/AdminTool_Mac.zip' ]
  #)

  update_google_drive_file(
    drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
    file_id: '1jXeMly4uMWDSj-U05M6tDbYmf9KvRnUF',
    upload_file: './DeployToolMac.zip'
  )

  slack(
      message: "Deploy Tool for Mac v"+options[:version]+" Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1jqfTYihUZjTWsy8ME35yzTTcaG06j3wb/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

lane :upload_file_deployTool_win do |options|
  zip(
    path: ".build/last/deploytoolwin",
    output_path: "./DeployToolWin.zip",
    verbose: true,
    exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"]
  )

  #upload_to_google_drive(
  #  drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
  #  service_account: true,
  #  folder_id: '1t1X61izyi0fAy7jTfYxKDHJrJNueJ3Ui',
  #  upload_files: [ './Build/AdminTool/AdminTool_Mac.zip' ]
  #)

  update_google_drive_file(
    drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
    file_id: '1EPJ4-vVqCOtQkm6M-BfaHNH4ll0-0QzJ',
    upload_file: './DeployToolWin.zip'
  )

  slack(
      message: "Deploy Tool for Windows v"+options[:version]+" Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1NnF8Y0iHpcJJJJRpnegXTKk7WI0uEWDc/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

lane :upload_file_deployTool_linux do |options|
  zip(
    path: ".build/last/deploytoollinux",
    output_path: "./DeployToolLinux.zip",
    verbose: true,
    exclude: ["**/*DoNotShip", "build_stats*", "**/*extra_data", "temp*"]
  )

  update_google_drive_file(
    drive_keyfile: './fastlane/shelfauditdec19-66d192fb9623.json',
    file_id: '10SfRRiq5oI47KCueR9XfQngznkAnCSzb',
    upload_file: './DeployToolLinux.zip'
  )

  slack(
      message: "Deploy Tool for Linux v"+options[:version]+" Built.",
      # pretext: "Pretext Test.",
      # channel: "#unity_cloud_build",  # Optional, by default will post to the default channel configured for the POST URL.
      slack_url: "https://hooks.slack.com/services/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",
#       username: "UCB",
#       success: true,        # Optional, defaults to true.
      payload: {  # Optional, lets you specify any number of your own Slack attachments.
        "Build Date" => Time.new.to_s,
        # "Built by" => "Jenkins",
      },
      # Optional, lets you specify default payloads to include. Pass an empty array to suppress all the default payloads.
      # default_payloads: [:git_branch, :git_author],
      # Optional, lets you specify any other properties available for attachments in the slack API (see https://api.slack.com/docs/attachments).
      attachment_properties: {
        # This hash is deep merged with the existing properties set using the other properties above.
        # This allows your own fields properties to be appended to the existing fields that were created using the `payload` property for
        # instance.
        thumb_url: "https://a.slack-edge.com/80588/img/apps/default_new_app_icon.png",
        fields: [{ title: "GDrive Link", value: "https://drive.google.com/file/d/1Cxm-g5LlfImNJcd-bYPKIHC55SKUaXhf/view?usp=drive_link", short: false }]
      },
    )

#   uploaded_file_names = lane_context[SharedValues::GDRIVE_UPLOADED_FILE_NAMES]
#   UI.message("Uploaded files: #{uploaded_file_names}")
end

`./Appfile`
# Account ID:<PHONE_NUMBER>77461989235
# Service Account Email<EMAIL_ADDRESS>
# Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
json_key_file("./fastlane/shelfauditdec19-66d192fb9623.json")
package_name("com.arpalus.planogramcompliance")

fastlane gems

Gem
Version
Update-Status

fastlane
2.220.0
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-ruby
0.1.3
✅ Up-To-Date

fastlane-plugin-unity
1.1.2
✅ Up-To-Date

fastlane-plugin-firebase_app_distribution
0.9.1
✅ Up-To-Date

fastlane-plugin-google_drive
0.9.0
✅ Up-To-Date

fastlane-plugin-update_provisioning_profile_specifier
1.3.1
✅ Up-To-Date

Loaded gems

Gem
Version

did_you_mean
1.6.3

addressable
2.8.6

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

dotenv
2.8.1

emoji_regex
3.2.3

faraday_middleware
1.2.0

domain_name
0.6.20240107

http-cookie
1.0.5

faraday-cookie_jar
0.0.7

gh_inspector
1.1.3

google-cloud-env
1.6.0

mini_magick
4.12.0

naturally
2.2.1

plist
3.7.1

rubyzip
2.3.2

security
0.1.5

simctl
1.6.10

terminal-notifier
2.0.0

unicode-display_width
2.5.0

terminal-table
3.0.2

tty-screen
0.8.2

tty-cursor
0.7.1

tty-spinner
0.9.3

word_wrap
1.0.0

rouge
2.0.7

xcpretty
0.3.0

xcpretty-travis-formatter
1.0.1

uri
0.13.0

public_suffix
5.0.5

artifactory
3.0.17

aws-eventstream
1.3.0

aws-sigv4
1.8.0

aws-partitions
1.927.0

jmespath
1.6.2

aws-sdk-core
3.195.0

aws-sdk-kms
1.80.0

aws-sdk-s3
1.149.1

bundler
2.4.22

base64
0.2.0

nkf
0.2.0

rexml
3.2.6

CFPropertyList
3.0.7

excon
0.110.0

ruby2_keywords
0.0.5

faraday-retry
1.0.3

faraday-rack
1.0.0

faraday-patron
1.0.0

faraday-net_http_persistent
1.2.0

faraday-net_http
1.0.1

multipart-post
2.4.1

faraday-multipart
1.0.4

faraday-httpclient
1.0.1

faraday-excon
1.1.0

faraday-em_synchrony
1.0.0

faraday-em_http
1.0.0

faraday
1.10.3

fastimage
2.3.1

mini_mime
1.1.5

trailblazer-option
0.1.2

declarative
0.0.20

uber
0.1.0

representable
3.2.0

os
1.1.4

jwt
2.8.1

multi_json
1.15.0

signet
0.19.0

googleauth
1.8.1

retriable
3.1.2

httpclient
2.8.3

google-apis-core
0.11.3

google-apis-androidpublisher_v3
0.54.0

google-apis-playcustomapp_v1
0.13.0

rake
13.2.1

digest-crc
0.6.5

google-apis-storage_v1
0.31.0

google-apis-iamcredentials_v1
0.17.0

google-cloud-errors
1.4.0

google-cloud-core
1.7.0

google-cloud-storage
1.47.0

json
2.7.2

optparse
0.5.0

nanaimo
0.3.0

colored2
3.1.2

claide
1.1.0

atomos
0.1.3

xcodeproj
1.24.0

forwardable
1.3.3

logger
1.6.0

cgi
0.4.1

date
3.3.4

timeout
0.4.1

stringio
3.1.0

cookiejar
0.3.4

eventmachine
1.2.7

em-socksify
0.3.2

http_parser.rb
0.8.0

em-http-request
1.1.7

openssl
3.2.0

ipaddr
1.2.6

zlib
3.1.0

mutex_m
0.2.0

connection_pool
2.4.1

net-http-persistent
4.0.2

patron
0.13.3

strscan
3.1.0

io-console
0.7.2

delegate
0.3.1

fileutils
1.7.2

singleton
0.2.0

open3
0.2.1

libxml-ruby
5.0.3

yaml
0.3.0

psych
5.1.2

ostruct
0.6.0

fastlane-plugin-ruby
0.1.3

fastlane-plugin-unity
1.1.2

google-apis-firebaseappdistribution_v1
0.3.0

google-apis-firebaseappdistribution_v1alpha
0.2.0

fastlane-plugin-firebase_app_distribution
0.9.1

google_drive2
3.0.9

fastlane-plugin-google_drive
0.9.0

nokogiri
1.15.6

racc
1.7.3

google-apis-drive_v3
0.46.0

google-apis-sheets_v4
0.26.0

fastlane-plugin-update_provisioning_profile_specifier
1.3.1

generated on: 2024-05-15

Hello,
Define separate version codes in your Fastlane config or use the version_codes_to_retain option to keep the internal track's version code. This should fix the upload error.

This is informative, thanks for sharing.

Google Api Error: Invalid request - The caller does not have permission。

Google Api Error: Invalid request - The caller does not have permission。I have this question. How should I configure it? Can you give me a detailed configuration process? Because I have read a lot of information but can't find it.

I have this question. How should I configure it? Can you give me a detailed configuration process? Because I have read a lot of information but can't find it.  Google Api Error: Invalid request - The caller does not have permission。


Allow excluding of non-core projects on publishing

Problem
Jar files are too big to publish, need to exclude some submodules
Solution
Create property which controls excluding certain submodules from publishing.
If you pass the gradle property -Pinclude_noncore_projects=false to the gradle script it excludes non-core subprojects.  If you leave the property empty it defaults to including all subprojects.
This is allows, releasing smaller jar files.

@abesto I remember you removing all the include stmts, in favor of include a,b,c...
Hopefully this doesn't cause any problems


Feat(vscode): add elementary wm/model/widget snippets

There are situations when you want to create wm/model/widget without generation the whole files.
So I created 3 snippets:

elementarymodel to create ElementaryModel
elementarywidget to create ElementaryWidget
elementarywm to create ElementaryWidgetModel with widgetmodel interface

I hope that helps.

Oh, it looks really helpful. I'll check it as soon as I can. Thank you so much!


!important Mixins

Is there a way in SASS to do something like in LESS where you can mark a whole mixin as important ?
Like this per example :
@include opacity(1) !important;

Which would result in :
filter: progid :DXImageTransform.Microsoft.Alpha(Opacity=100) !important;
opacity: 1 !important;

If not it's really a feature that I think should be in there. Sometimes you have to overwrite box-shadow, text-shadow, opacity etc. you can't really control, and !important really comes in handy in these cases.

No there is not.
@chriseppstein thoughts on adding this?

I do not like this as a general facility for mixins. In this case, @include opacity(1 !important); will probably work, but it will not work generally unless compass adds support for !important as an argument to the mixins. I think it is the job of the mixin api to support importance where it makes sense.

@Anahkiasen feel free to open an issue on compass to discuss changes to the compass css3 mixins.

+1

I've proposed an idea for something similar, but with Silent Classes
http://www.sassmeister.com/gist/e50c05fa188cbfeb3ac6
%greedy {
  width:100%;
}

div {
  // we can do this
  @extend %greedy;
  // but i wish we could do this
  //@extend %greedy !important;
}

I know the point of silent classes is to group all the properties together (and you could have a group for regular, and a group for !important) so it might be a bit odd, but I've found myself wishing we could do it several times. Same with mixins.

@jpdevries That is just not technically possible. !important is a property modifier. Extend works by rewriting selectors. If we did this it would have consequences for selectors that were not intended to be important.

@chriseppstein
So is it not possible to do what I am demonstrating here? I want its table-layout  to have a value of auto in a class called itemList home-items. However if the class is only called itemList that I would want it to be table-layout: fixed !important.  In the first case of table-layout in itemList it must contain the !important. Is there anyway to then override its value in a nested class like I am trying to do here? Currently as far as I can tell from experimenting this is not supported.
.itemList {
  width: 100%;
  font-weight: 500;
  table-layout: fixed !important;

  &.home-items{
    overflow-x: hidden !important;
    width: 100% !important;
    min-width: 100% !important;
    table-layout: auto !important;
  }
}


Why is the cost_batteries sidebar item on staging set to always_hidden?

See title.
Interestingly, investments cost input statements don't exist for flex technologies on ETSource, while their names do exist on ETModel. I presume that either these names can be deleted, or these input statements should be added.
Including @jorisberkhout @ChaelKruip @AlexanderWirtz

Well spotted by @RobTerwel . It took us quite some time to implement flexibility in the ETM. In March 2015 we have created sidebar item, slides and sliders, a.o. for the investment costs in flex technologies. Because we did not want the flexibility features to show up before it was completely implemented, we have set everything to _always_hidden. Apparently we never implemented the investment cost side of things. I will create a new actionable issue for this. In view of time this has to be picked up after the deploy.


Try to solve appveyor issues

This removes the manual download of a miniconda installer and instead uses the miniconda installs that are already provided by AppVeyor on their build workers. It seems to eliminate the sporadic errors we had.

Note install.ps1 isn't used anymore (its use is commented out in appveyor.ps1), we can remove it altogether since it's copied from a third-party repository.

Yeah, let's remove install.ps1 then.

[Current coverage][cc-pull] is 73.19%

Merging [#1853][cc-pull] into [master][cc-base-branch] will increase coverage by +<.01%

@@             master      #1853   diff @@
==========================================
  Files           461        461
  Lines         62646      62692    +46
  Methods           0          0
  Messages          0          0
  Branches       6237       6244     +7
==========================================
+ Hits          45841      45887    +46
  Misses        15888      15888
  Partials        917        917

[][cc-pull]

Powered by Codecov. Last updated by ac497a4
[cc-base-branch]: https://codecov.io/gh/numba/numba/branch/master?src=pr
[cc-pull]: https://codecov.io/gh/numba/numba/pull/1853?src=pr

Ok, done. I think our repo is now free of Powershell code :-)


Fixed docker-machine ip when using multiple machines.

When using multiple machines with docker-machine, the script currently retrieves the IP of the default one, even when the environment variables are set to use another machine, for instance:
➜  eps-dev docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   -        virtualbox   Running   tcp://<IP_ADDRESS>:2376           v1.12.5
eps       *        virtualbox   Running   tcp://<IP_ADDRESS>:2376           v1.12.5
This merge should fix it by specifying the machine name when asking the IP via the docker-machine ip command.

LGTM. Thanks for the fix!


Provide better instructions when upstream is modified

Recommend adding -f rather than custom git checkout commands.
Hide the format_patches command as check_in is a much less confusing version of the command.
Don't use the force option from the makefile as we don't want to wipe out any uncommitted work by accident.

Example errors:
Error: The 'upstream' submodule is modified with untracked changes, continuing
might loose changes in the 'upstream' submodule.

Git status of 'upstream':
 M upstream

Currently checked out on the 'pulumi/patch-checkout' branch. This was likely
caused by running a 'checkout' command and not running 'check_in' afterwards.

To turn the commits in the 'pulumi/patch-checkout' branch back into patches, run:
  ./upstream.sh check_in

To disgard changes in the 'pulumi/patch-checkout' branch, use the 'force' flag (-f):
  ./upstream.sh init -f

Error: The 'upstream' submodule is modified with untracked changes, continuing
might loose changes in the 'upstream' submodule.

Git status of 'upstream':
 M upstream

Checked out upstream ref: HEAD

To continue and discard the changes to upstream, run:
  ./upstream.sh checkout -f

To keep the changes to upstream, run:
  git add upstream

I understand the desire to not have make tfgen reset upstream, but ./upstream.sh init -f is much less ergonomic. Let's make sure we offer an equivalent make command.

Ok, I think I've realised what the disconnect here is. I've always operated git with the submodule.recurse option set to true which means a git pull in the root repo updates the upstream submodule to the updated commit. But if you don't auto-recurse, then it appears out of sync, and requires a force init.

Is the recommendation here that everyone change their git config? or could we

check if we're on patch-checkout
if no, force reset
?

Is the recommendation here that everyone change their git config?

No. upstream.sh will accommodate default git configuration.


can be translated to English as "Can't parse the object {}?

@EricSmekens - I don't have access to the GitHub Pages code -- but it should probably be updated with a newer version of JSEP...

@wzenker - this wouldn't be a typical expression in JS because you're trying to assign C to an object. At the very least, an expression like this would need both the object and assignment plugins

@6utt3rfly I'll add this to my to-do list.


feat: add logging config

Our public FastAPI based services should be configured with a reasonable logging config (i.e., unstructured at info , others at warning).

please describe in the PR description how to test this this logging config is working


2.4.1 fix merge

Pull Request Test Coverage Report for Build 285

12 of 16 (75.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.04%) to 72.175%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/spring/factory/ReferenceFactoryBean.java
3
5
60.0%

runtime-sofa-boot-starter/src/main/java/com/alipay/sofa/runtime/spring/factory/ServiceFactoryBean.java
6
8
75.0%

Totals

Change from base Build 266:
-0.04%

Covered Lines:
2306

Relevant Lines:
3195

💛  - Coveralls


Error when saving my .tsx files: Failed to load plugin 'jsx-a11y' declared in 'CLIOptions'

Describe the bug
Error when saving my .tsx files:

Failed to load plugin 'jsx-a11y' declared in 'CLIOptions': The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received ''

.eslintrc.js
module.exports = {
  extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"],
  parser: "@typescript-eslint/parser",
};

package.json
{
  "private": true,
  "sideEffects": false,
  "scripts": {
    "build": "remix build",
    "dev": "concurrently \"npm run dev:css\" \"remix dev\"",
    "start": "remix-serve build",
    "dev:css": "postcss styles --base styles --dir app/styles -w",
    "build:css": "postcss styles --base styles --dir app/styles --env production"
  },
  "dependencies": {
    "@prisma/client": "^4.5.0",
    "@remix-run/node": "^1.7.3",
    "@remix-run/react": "^1.7.3",
    "@remix-run/serve": "^1.7.3",
    "@unocss/reset": "^0.45.30",
    "bcryptjs": "^2.4.3",
    "postcss-preset-env": "^7.8.2",
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  },
  "devDependencies": {
    "@remix-run/dev": "^1.7.3",
    "@remix-run/eslint-config": "^1.7.3",
    "@types/bcryptjs": "^2.4.2",
    "@types/react": "^17.0.39",
    "@types/react-dom": "^17.0.13",
    "@typescript-eslint/parser": "^5.41.0",
    "autoprefixer": "^10.4.12",
    "concurrently": "^7.5.0",
    "esbuild-register": "^3.3.2",
    "eslint": "^8.26.0",
    "eslint-plugin-react": "^7.31.10",
    "postcss": "^8.4.18",
    "postcss-cli": "^10.0.0",
    "prettier": "^2.7.1",
    "prisma": "^4.5.0",
    "typescript": "^4.8.4"
  },
  "engines": {
    "node": ">=14"
  },
  "prisma": {
    "seed": "node --require esbuild-register prisma/seed.ts"
  }
}

@AxelBriche This is an issue with @rushstack/eslint-patch which @remix-run/eslint-config uses (https://github.com/remix-run/remix/blob/3832d457b34d7a62633bf86a2606971263e710cb/packages/remix-eslint-config/package.json#L29) not with the extension or prettier-eslint. Other users have had the same issue with the @next/eslint-plugin-next which uses @rushstack/eslint-patch. I've included some links for some suggestions on how to get around it.
https://github.com/idahogurl/vs-code-prettier-eslint/issues/72#issuecomment-1247516987
https://github.com/idahogurl/vs-code-prettier-eslint/issues/72#issuecomment-1247723480


Workaround for Cave Story+

Part 1 - Cave Story+
Purchased just to test and confirmed the issue. Was looking around for a solution and found this:
https://steamcommunity.com/sharedfiles/filedetails/?id=129059216

Added, thanks :)


:bug: Remove unnecessary default values from OpenStackClusterTemplate

What this PR does / why we need it:
Remove unnecessary default values from OpenStackClusterTemplate, which are not needed cause they are defined in the values.yaml

You want probably remove it also from both OpenStackMachineTemplates

Yes, correct. Thanks for that, I did not know that it is also found in OpenStackMachineTemplates.


added assets loader fallback logic

Problem:
In iOS, relative path does not work properly. It causes dotrix cannot find the asset file.
Solution:
Added a fallback logic to search assets in execution bundle directory.
Follow Up:
Should check the file system and do conditional loading. However, Dotrix does not support mobile platform at the moment. We should revisit the problem again when we design assets loader to support multiple platforms.

Thank you for figuring this out. I will close this in favor of !146


Broken link to cla.dotnetfoundation.org

cla.dotnetfoundation.org does not resolve.  Confirmed on a few unrelated DNS servers.
https://cla.azurewebsites.net/ works fine (DNS history says above domain was CNAME'd there).

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

ID: d80fc813-0f5a-a286-fc1c-c792c96c15b9
Version Independent ID: cd89f9f6-c81b-e64e-49fb-54cf639eef37
Content: Contribute to the .NET documentation repositories - Contributor guide
Content Source: Contribute/dotnet/dotnet-contribute.md
Product: non-product-specific
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

@BillWagner - Can you help with this issue?

FYI, the .NET Foundation folks are tracking this at: https://github.com/dotnet-foundation/wg-maintainers/issues/91

This issue is now resolved and the original URL is functioning. Thanks!


doesn't work for src/pages directory

Hey, thanks for the amazing project! In my app I use the src/pages directory but it doesn't work for nextjs-routes because it only looks in the pages directory.

Hey @sachinraja thanks for reporting this. I just published v0.0.9 to enable this -- let me know if you run into any issues or have other ideas for improvement!

Wow that was fast! Works great now. One idea - it would be great to have an ESM build because the CJS build generates a lot of cruft. Will definitely let you know if I have any more ideas, but it's been very nice to work with so far.

@sachinraja Thanks for pointing that out -- that was a silly oversight on my end. Now publishing ESM in v0.0.10

@sachinraja the mjs extension is a proposal but not a requirement for consuming ESM. If you use a bundler like webpack, roll up or vite the ESM export will be picked up out of the box.

The other libraries are incorrect. The bundlers are also incorrect but are forgiving because libraries are usually incorrect. It will break in cases like testing, where files are not bundled and just run through Node.

Nextjs default webpack config will correctly pick up this ESM so is there a particular outcome you’re unable to achieve here?

nodejs will also handle ESM without the mjs extension when the package json type is set to module

This is on a per-package basis. So "type": "module" would have to be set in this project for that to work. Anyway, it's alright.

@sachinraja Ah, you’re right I see what you’re saying. Is there a reason to prefer publishing .mjs over setting type: module for this package (other than support for nodejs runtimes that predate that package.json key)?

Well if you set type:module you'll have to use .cjs extensions for commonjs. See https://nodejs.org/api/packages.html#determining-module-system

@sachinraja closing the loop on this, this library now ships ESM exclusively. I did some testing in the nextjs examples and couldn't find a need for cjs, but if you run into one LMK and I'll add a cjs export.

Thanks! I'll let you know if we run into any issues.


Editor Mode

I'm trying to hack around to make it work in editor mode.
seems like the most correct way would be to create a new Context that is availible only in EditorMode ?

You mean you want to inject into monobehaviours that have [ExecuteInEditMode] attribute?  Or inject into property drawers?  Custom EditorWindow derived class?


GitLab Fastlane integration for CICD to deploy TestFlight (for Development) and App Store (for Release) builds.

I want to auto deploy builds (TestFlight & Live App Store) via GitLab CICD feature using Fastlane. For that integration I am not able to go ahead using the steps provided under the official documentation of GitLab CICD. It is not allowing me to move ahead when asking for the Apple Store credentials.
Despite of writing working credentials It says:
The login credentials for<EMAIL_ADDRESS>seem to be wrong
Invalid username and password combination. Used<EMAIL_ADDRESS>as the username.
I want to know the overall process of working CICD concept for our all new iOS applications using GitLab's default recommended Fastlane integration. It will be helpful to know overall process for the

Any detailed explanation or video for the working steps is highly appreciated and thankful in advance.

It is not allowing me to move ahead when asking for the Apple Store credentials.

what do you mean here?
A common practice is to use appstore credentials and pass them to your build job. It seems that the official gitlab tutorial does explain what to do here. See their section titled "Apple App Store integration". You should probably follow their tutorial.

@JigneshPatel I'll close this for now. This isn't really an issue in fastlane.


[usecase][xwalk-3810] Update the description for LZMACompressionUI

Failure analysis:
https://crosswalk-project.org/jira/browse/XWALK-4326
Impacted TCs num(approved): New 0, Update 1, Delete 0
Unit test Platform: Android
Android test result summary: Pass 0, Fail 1, Block 0

Please remove the xwalk-3810 prefix and use full path link in commit message.

Updated

LGTM


Speed up instruction search

ATM the first few characters in the search take a lot of time, subsequent runs are much faster, I assume it is because as the data is filtered down the search has to run on fewer entries and becomes faster.
Possible solutions:

debounce user input to reduce the number of filtering operations
add a loader
try to use a library (maybe what is used by the rust or python docs) that can produce a reverse index to speed up the search

@hackaugusto - was this intended for the examples repo?

oops, it was, sorry about that!


Add SZ

38aa1c7 should install a working™ pysz. One thing left to do: It does not find the libSZ.so without explicitly setting the LD_LIBRARY_PATH.

Dirty library loading trick (use in a Jupyter notebook):
from ctypes import cdll
lib1 = cdll.LoadLibrary('/home/jovyan/pysz/lib/libSZ.so')
lib2 = cdll.LoadLibrary('/home/jovyan/pysz/lib/libzstd.so')

import pysz

Are the variables lib1 and lib2 used? Or ignored?

They are ignored.

Just tested the new setup. I tested it and it seems to be working. But I discovered #13

If we can be use that #13 is not a problem at our end (do not see a reason why not), we should merge.


Get esptool output to stream

Running this from command line:

esptool.py --port /dev/ttyUSB4 erase_flash

gives

esptool.py v2.0
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...

Whereas in Python,
import subprocess
process = subprocess.Popen("esptool.py --port /dev/ttyUSB4 erase_flash".split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in process.stdout:
    print([line])

hangs on the second line until you pull the USB cable out.  It's as if esptool is not calling flush() on the buffers, but the command line case is able to pull the bytes out anyway.

Possibly the holdup is not pressing the PRG button when you should.  I have inserted a message into the flow of output that prints when it gets to the "Connecting...." line


[gql_websocket_link] Add onDisconnect callback + discussion on websocket link lifecycle [WIP]

As I was working with the websocket link I ran into the situation where my code was not aware of the client closing itself because of a network cutoff or some other reason.
I had to add a callback for disconnection so I can re-create the link for my dependencies tree. (this is the PR, I don't expect it to be merged, just to create a discussion)
The best solution I think would be to have some ReconnectingWebSocketLink that will do it within itself, but it will have to re-send the previously sent subscriptions to the server or otherwise they will stop arriving. (because the server sees the reconnection as a brand new client/socket) fix me if I'm wrong here.
I went through this implementation and I didn't see anything regarding resending the subscriptions. (this code is not so readable and full of closures that return closures so I'm not confident that I understood it fully)
Maybe resending the subscriptions has implications that I'm not aware of. in any case there must be a better way for the library's user to track the lifecycle of the link and act accordingly.
Anyone with an implementation proposal? a better approach?

Actually digging in a little deeper it seems like every subscription there is sent in an infinite loop until canceled by the user. Which is actually great cause the subscriptions are resent on reconnection.
We need an implementation like this here I believe.

Thanks for sharing you code, I am having the same issue. I will share my implementation once I have something worthy.

Once the socket is closed, the client cannot receive the subscriptions again, it has to send a new subscription request.
Check here https://github.com/apollographql/subscriptions-transport-ws/blob/master/src/client.ts#L510
I have initial working code, I try to publish it once it is cleaned up and checked.

I would like to participate in this discussion. But I have no prior knowledge on how subscription works under the hood.
I had a similar case where the subscription suddenly disconnect and either the onDone or the onError doesn't call in my Stream.

I am closing this issue, the websocket link has support for subscription with auto reconnect now.


Not flowing dependency updates for Microsoft.NETCore.App

This repo is only flowing dependency updates for packages, but not for the actually .NET Core runtime (Microsoft.NETCore.App). That means bot-generated PRs such as https://github.com/aspnet/EntityFrameworkCore/pull/14500 are not actually testing EFCore with the latest .NET Core.
The repo is currently using the runtime version that is baked into the .NET Core SDK. The SDK version is not automatically updated by Arcade, and even if it were, it would often be at least 1 step behind the latest runtime version which will be inserted into the SDK.
@bricelam @ajcvickers - was this an intentional change when converting this repo to Arcade?

I'm reverting this in https://github.com/aspnet/EntityFrameworkCore/pull/14643#issuecomment-469463846. It made things way to complicated.

Re-opening. This is now blocking dependency flow for aspnetcore. See https://github.com/aspnet/EntityFrameworkCore/pull/15680


Mixed page with Register and Waveforms... Waveforms must go first.

Linux (Ubuntu) / Chrome / Jekyll /
I'm making a long (too long..) doc page with mixed graphics.
When I put a WaveDrom register diagram first, subsequent WaveDrom wave diagrams don't render properly.  No errors in the Inspector.
An empty Wave will fix it.  When I put the following at the top of the file, all is well.  Registers render fine, later Waves also render fine.

Here's what it should look like

When the above first Wave line is removed, bad things happen.

Let me know if I can do any further testing!

That is because only the first diagram on the page carry wave brick drawings. I will fix.


Module separation

What is the purpose of having separate ocpi-2-2-1 and ocpi-transport maven dependencies?
ocpi-2-2-1 should include ocpi-transport in its jar. That way, users of the lib will just need to import ocpi-2-2-1 in their project.
Later, we could also provide transport implementations, and it would make sense in that case to create separate jars, because they will be optional (example: ocpi-transport-http4k-impl)

I guess it made more sense while there was a ocpi 2.1 implementation. It might be relevant again when there is a 3.x implementation. But the relation is not as clear cut, I have far too many "hacks" to get the transport layer work nicely with ocpi module

Yes it was made because the transport layer is common for each OCPI version. The thing is that it should not be a separate maven dependency because it's not optional, but mandatory (main ocpi module depends on the transport module)
I am not super satisfied with the way the transport part of ocpi module is designed either. It may change in the future, but it's not the priority at the moment


Fix broken test

@davismj It worked on my environments (with npm update to upgrade karma-jspm). Thanks!


Using "@mentions" in Confluence

Hi,
are there any plans to bring @mentions to confluencebuilder? They look like this in the storage format:
<ac:link>
  <ri:user ri:userkey="d3b07384d113edec49eaa6238ad5ff00" />
</ac:link>

The userkey looks like an MD5 hash. When using the WYSIWYG editor I just need to start typing @username and if a match is found I simply select the desired user.
I see 2 ways this could be implemented: either the @sometext format is recognized and confluencebuilder resolves username->hash during build or we could put a list of usernames->hashes in conf.py (similar how Jira links are done with confluence_jira_servers) and confluencebuilder simply looks up the username in this dictionary. Latter would be more work for the user, but probably easier to implement.
Alternative 1: use ri:username instead of ri:userkey - no need to look up hashes.
Alternative 2: since "username" and "userkey" are both deprecated (see: https://developer.atlassian.com/cloud/confluence/api-changes-for-user-privacy-announcement/) maybe we could use "accountId" ("ri:account-id" ?). This would require a similar approach as the userkey (look up the ID during build or put a list of IDs in conf.py).

Would not object to the inclusion of a directive which would support rendering a mention-based Confluence link. A quick look at this, confluence_mention may be a good candidate for the directive name -- but, other suggestions would be welcome.
If all active (non-EOL) Confluence editions support just the accountId value (mentioned in "Alternative 2"), it would probably be best to just focus on supporting this capability (over attempts to use username or userkey). Additional comments are as follows:

It may be good to support directly placing an account UID directly in a directive instance; for example:

Talk to :confluence_mention:`<prefix?>:8fb069c8-af4b-4e61-985e-636e2c559493` for more information.

A name mapping translation (as mentioned in the original comment) could be ideal as well. For example:

(reStructuredText)
Talk to :confluence_mention:`rlueckl` for more information.

(conf.py)
confluence_mentions = {
    'rlueckl':  '<prefix?>:8fb069c8-af4b-4e61-985e-636e2c559493',
}

Unfortunately I can't find out which Confluence versions support accountId. Here's a list of supported Confluence versions: https://confluence.atlassian.com/support/atlassian-support-end-of-life-policy-201851003.html
And here are the docs to the current (7.3.3) Confluence Server API which doesn't mention accountId anywhere: https://docs.atlassian.com/ConfluenceServer/rest/7.3.3/#api/user-getUser
The only mention of the accountId I could find were:

in the Announcement https://developer.atlassian.com/cloud/confluence/deprecation-notice-user-privacy-api-migration-guide/
the Jira Cloud API docs (v2 and v3 - however I don't know which Jira version uses which API version): https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-rest-api-3-user-bulk-migration-get
and the Confluence Cloud API docs: https://developer.atlassian.com/cloud/confluence/rest/#api-api-user-bulk-migration-get

Maybe the removal of userKey only refers to Confluence Cloud and Jira Cloud platform, but not the Confluence Server versions? :thinking:
I'm using Confluence 6.15 and when I query my user through the API, I get the userKey back:
$ curl -s https://******/rest/api/user?username=rlueckl -u '******' -H 'Accept: application/json' | jq .
Enter host password for user '******':
{
  "type": "known",
  "username": "rlueckl",
  "userKey": "8acf41924e6e1fbe014e723*********",
  "profilePicture": {
    "path": "/download/attachments/917510/user-avatar",
    "width": 48,
    "height": 48,
    "isDefault": false
  },
  "displayName": "XXX YYY",
  "_links": {
    "base": "https://******",
    "context": "",
    "self": "https://******/rest/api/user?key=8acf41924e6e1fbe014e723*********"
  },
  "_expandable": {
    "status": ""
  }
}

I would be interested in this feature as well.

v1.9 is now available on PyPI -- marking as closed.


Firebase analytics not included

Describe the feature you would like to see
can you include firebase analytics in next update, if yes when.

I need more information than that. Please tell me what you want explicitly, and include links to the documentation where that feature is described.
Please make sure this isn't a feature of the client SDKs, and that/if the feature is implemented in one of the official Admin SDKs.
Concerning the "when": as soon as my limited free time allows it. Please also read the funding section in the README of this project.


Allow GoTrueClient injectable to SupabaseClient initializer

Feature request
It would be great a GoTrueClient to be injected as a parameter to SupabaseClient initializer.
Is your feature request related to a problem? Please describe.
We have a specific Keychain configuration that we need to inject to the GoTrueClient (whose initializers already support injecting their own KeychainStorage/GoTrueLocalStorage. Our app will not be able to use the defacto Keychain location that is being provided in the GoTrueClient(...) init that this initializer is using.
Describe the solution you'd like
This could be as easy as allowing a new constructor
  public init(
    supabaseURL: URL,
    supabaseKey: String,
    schema: String = "public",
    headers: [String: String] = [:],
    httpClient: HTTPClient = HTTPClient(),
    authClient: GoTrueClient
  ) {

It seems that the auth client does depend on the headers, so maybe allowing some kind of convenience method on GoTrueClient(...) to construct it based upon the existing supabaseURL and supabaseKey which are added via the defaultHeaders property, would be helpful.
Describe alternatives you've considered
Instead of being provided to the initializer, the auth property could become a var for an automatic get or there could be another function like setAuthClient(...) that is exposed. But that would probably introduce some weird conditions that are tougher to reason about rather than just injecting in the init(...)
Additional Context
If either approach is acceptable, I'm happy to write it up and put up a PR.
Thanks.

@grsouza thoughts? You would have more context.

I understand the need for this, I would just check if the official JS library already has a way of solving this, and try to implement the same behavior, otherwise the one suggested is good and I can add it.

Hi @kurtguenther check out https://github.com/supabase-community/supabase-swift/pull/72


Android.mk

Android.mk for android builds

Thanks for the contribution. Would you mind adding a few sentences on how to use this stuff to the Usage section of the docs? I guess Android developers should now this, so there is no need to go into much details, but it might be useful at least to give this more visibility.

Yes yo can add info to use you library under Android developer just need to add few lines to their Android.mk
first add
LOCAL_WHOLE_STATIC_LIBRARIES += cppformat_static
second
$(call import-module,{relative patho to cppformat}cppformat)
for me it was $(call import-module,../../cppformat)

Could you please elaborate a bit or give an example. I've copied cppformat to NDK samples and tried to adapt one of them to use the library, but cannot get it to work:
$ ndk-build
Android NDK: .../android-ndk-r10d/samples/test-libstdc++/jni/Android.mk: Cannot find module with tag '../../cppformat' in import path
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?

Setting NDK_MODULE_PATH gives another error:
$ NDK_MODULE_PATH=`pwd` ndk-build
Android NDK: Trying to define local module 'test-libstl' in .../android-ndk-r10d/samples/test-libstdc++/jni/./Android.mk.
Android NDK: But this module was already defined by .../android-ndk-r10d/samples/test-libstdc++/jni/./Android.mk.

Here's the Andorid.mk file that I use:
LOCAL_WHOLE_STATIC_LIBRARIES += cppformat_static
$(call import-module,../../cppformat)

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := test-libstl
LOCAL_SRC_FILES := test-libstl.cpp
include $(BUILD_EXECUTABLE)

Sorry for naive questions, I haven't used NDK before.

Here is mine
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := game_shared
LOCAL_MODULE_FILENAME := libgame
LOCAL_SRC_FILES := hellocpp/main.cpp
LOCAL_WHOLE_STATIC_LIBRARIES := cppformat_static
include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)
$(call import-module,../../cppformat)

$(call import-module,../../cppformat) must be relative to jni folder
"Are you sure your NDK_MODULE_PATH variable is properly defined" - it look like you path is wrong

I've created a small repository that contains an example of using cppformat with Android NDK: https://github.com/cppformat/android-ndk-example
Unfortunately it doesn't work yet - I get various errors when trying to build it. Could you by any chance have a look at it and tell me what I'm doing wrong? Since you have much more experience in Android development, you'll probably see what's wrong straight away while it will take me ages to figure it out. I'm using this script for building which simply runs ndk-build, but can be extended to set any environment variables (NDK_MODULE_PATH?) if needed.
Thanks!

Fixed small bug in Android.mk
and full working demo here https://github.com/newnon/android-ndk-example.git

Awesome, thanks!


Python3.8 aarch64 Build Possible?

I Dont have good resource to build it myself

Hey @ckvbalusu, I can give this a shot on the next TensorFlow release (2.5).


Adding a new BUTTON

This is a(n):

[ ] Update to an existing Animated Button
[ ] Any Error
[x] Proposal to the Repository
[ ] Documentation / README.md changes

Details:
I wish to add a new animated button to the site
Screenshot:

@SakshiRawat13 Assigned to you!


Linux ARM support

This is same as #237, but for linux.
Polars added linux arm support a few days ago (issue) (PR), which will also be wanted here, since Docker images running on M1 macs will be running arm architecture as well.
connectorx successfully installs in my arm docker image when I run pip install connectorx, but then fails when I try to import it:
import connectorx
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/fabrica/projects/forecast-compare/Untitled.ipynb Cell [1](vscode-notebook-cell://attached-container%2B7b22636f6e7461696e65724e616d65223a222f666f7265636173742d636f6d70617265227d/fabrica/projects/forecast-compare/Untitled.ipynb#ch0000052vscode-remote?line=0)8' in <module>
----> 1[ import connectorx

File /usr/local/lib/python3.9/site-packages/connectorx/__init__.py:3, in <module>
      ]()[1](file:///usr/local/lib/python3.9/site-packages/connectorx/__init__.py?line=0)[ from typing import Optional, Tuple, Union, List, Dict, Any
----> ]()[3](file:///usr/local/lib/python3.9/site-packages/connectorx/__init__.py?line=2)[ from .connectorx_python import read_sql as _read_sql
      ]()[5](file:///usr/local/lib/python3.9/site-packages/connectorx/__init__.py?line=4)[ try:
      ]()[6](file:///usr/local/lib/python3.9/site-packages/connectorx/__init__.py?line=5)[     from importlib.metadata import version

ModuleNotFoundError: No module named 'connectorx.connectorx_python']()

If I require it to use the binary from pypi, then it does not find a match:
pip install -U connectorx --only-binary connectorx
ERROR: Could not find a version that satisfies the requirement connectorx (from versions: none)
ERROR: No matching distribution found for connectorx

Hi @thomasaarholt , thanks for the issue. The source file on pypi is not ready yet so we have removed it from our new alpha version. We are working on it.

Feel free to ping me if you need any help.

Hi @messense , can you please help to check this error (build wheel for arm linux): https://github.com/sfu-db/connector-x/runs/5337702956?check_suite_focus=true ? I have no idea how to fix it. The yaml file can be found here. Thank you!

@wangxiaoying Try add manylinux: 2014 option to maturin-action.

This is harder than we thought since you have system dependencies which aren't present in maturin-action's cross compilation docker images(they are based on Ubuntu 20.04).
https://github.com/sfu-db/connector-x/blob/fd7a61d910110310d521df66e90f0465942ccd2e/.github/workflows/release.yml#L46
And
https://github.com/sfu-db/connector-x/blob/fd7a61d910110310d521df66e90f0465942ccd2e/.github/workflows/release.yml#L12
forces x86_64 so you may need to change to use QEMU and switch to the official aarch64 manylinux docker image instead, but it's gonna be at least 6x slow on CI.

For now the easiest way forward is to use an CI with native ARM support for example https://www.drone.io/

Has anyone taken a look at this since February? I just met this again now - installing connectorx succeeds on aarch64, but it is not importable, resulting in
ImportError: connectorx is not installed. Please run `pip install connectorx>=0.2.2`.

Hi @thomasaarholt , we are now successfully supporting apple m1 with wheel files. But still having issue to cross compile for linux arm. Currently the only way to install connector-x on linux arm is to build it from source: https://sfu-db.github.io/connector-x/install.html#build-from-source-code

Sorry for bumping this, but I find it more adequate than creating yet another issue (in addition to #186, #386, and #240).
I understand there was an attempt to build ARM releases, but it was removed at #739b8b59406a60, but I can't really tell why.
Do you need help figuring out the ARM gh action @wangxiaoying? Is there something we can do?

Sorry for bumping this, but I find it more adequate than creating yet another issue (in addition to #186, #386, and #240).
I understand there was an attempt to build ARM releases, but it was removed at 739b8b5, but I can't really tell why.
Do you need help figuring out the ARM gh action @wangxiaoying? Is there something we can do?

Yes, the previous PR for supporting aarch platform was failed (more details here). We are still looking for help on this one. Unfortunately, the logs for the previous actions are already expired. But I think you can fork the repo and test the gihub action (.github/workflows/release.yml) locally. Please feel free to submit a PR.

Hey @wangxiaoying, I've tried to get CI workflow up for Linux ARM and so far I am able to do so when I completely remove integrated-auth-gssapi from the feature list of tiberius found in the dependencies.
I've tried many different strategies (using features functionality, installing pre-requisite tools, conditional dependencies etc.) but unfortunately when cross-compiling for Linux ARM, integrated-auth-gssapi simply does not work as long as it appears in the dependency section.
I was able to build the wheel and verify it successfully using manylinux2_28 without integrated-auth-gssapi, which is based on CentOS 7, with glibc 2.28. Any older versions such as manylinux2_24 or manylinux2014 will result in compilation failure as at least 1 of the transitive dependency is not backward compatible — specifically<EMAIL_ADDRESS>So technically it is possible to get something up for Linux ARM running on more recent OSes if we were to forgo the system authentication feature for MSSQL, however given that I can't get the conditional dependencies definitions in Cargo.toml to work at the moment we may need to find some workaround so that a proper release can still include integrated-auth-gssapi for other OS & architectures.


Fs cloning traitlet

This addresses the first piece of the #154 plan, setting up the configuration and validation.

@chyzzqo2 This is ready to review.


Add strategy [orange-reputation-campaign-id-weighted]

Changes proposed in this pull request:

Add the orange-reputation-campaign-id-weighted strategy.

I'm abandoning this PR because the Orange Reputation NFTs don't support the ERC721Enumerable interface.
Given that there are already over 17k OrangeReputation NFTs, and Snapshot has an effective cap of 32,000 calls (details below), I question how long a snapshot strategy could remain viable.
Snapshot uses Multicall to batch discrete calls together into 1 big call, but their node providers enforce a maximum call size so Snapshot paginates - limits each Multicall to 8000 calls. Then, they limit each strategy to about 4 or 5 Multicalls to protect their servers from DoS attacks. 8000 * 4 = 32000


Model importing error

Tested versions
Latest version
System information
Forward+, 1050ti, i5-4990 or something like that, 8gb
Issue description
when imported, model significantly differs from what blender viewport shows

Steps to reproduce
import the model, add it to scene.
model:
https://drive.google.com/file/d/1-s3SC7Bm1ORXljxeOmLLqB4LlZiKS4tz/view?usp=sharing
(trying loading it to github giving me errors)
Minimal reproduction project (MRP)
N/A

Loading into https://gltf-viewer.donmccurdy.com/ gives this result.

Blender is giving similar results.

so that means thats probably a problem on my side


remove re-initialization

Sorry but there is no re-initialization as there are two different variable names.


Improvement: make jbpm-quarkus-devui badges dynamic.

As a part of https://github.com/apache/incubator-kie-issues/issues/280 we recovered the static badges displaying the count of elements (ProcessInstancess/Tasks/Jobs/Forms) in the extension Card.
As mention this values are static and display the count of elements in the moment the user opens the Dev UI. The new Quarkus APIs allow to display dynamic data in the badges which is srtreamed from the Quarkus runtime. We can take advantage of this to stream the elements count and update and display the real count of elements.
More info: https://quarkus.io/guides/dev-ui#custom-cards

Hi @pefernan, it was solved? If not, I would like to solve this one!


parse function not found for treesitter

I've been using it without issues, but since recently I ran PackerSync, I'm unable to call debug_test, got the following error message.
E5108: Error executing lua ...e/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:203: attempt to call field 'parse' (a nil value)
stack traceback:
        ...e/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:203: in function 'get_closest_test'
        ...e/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:253: in function 'debug_test'
        [string ":lua"]:1: in main chunk
Press ENTER or type command to continue

for the newest treesitter, I think the function has been renamed to parse_query (line 203 and 220), after manually changed the code locally, it runs without problem
https://github.com/leoluz/nvim-dap-go/blob/cdf604a5703838f65fdee7c198f6cb59b563ef6f/lua/dap-go.lua#L203-L220
happy to make a small PR if deemed appropriate

Hey, thanks for the investigation. If you can push a PR, it will be awesome as I'm far from my laptop for the next few weeks.

Actually it is the opposite. The parse_query is the deprecated function.
vim.treesitter.query.parse_query() is deprecated, use vim.treesitter.query.parse() instead
. :help deprecated
This feature will be removed in Nvim version 0.10
stack traceback:
        ...im/0.9.1/share/nvim/runtime/lua/vim/treesitter/query.lua:230: in function 'pars
e_query'
        ...e/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:213: in function 'get_
closest_test'
        ...e/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:263: in function <...e
/nvim/site/pack/packer/start/nvim-dap-go/lua/dap-go.lua:262>

You are getting the error because you probably using an old version of nvim.


arptables and ebtables missing for legacy

legacy fix for iptables-nft

cherry picked into PR #1556 as this should be in one single PR
/close in favour of PR #1556


Diagrams (UML and Activity)

Done with all diagrams.
You'll find the pdf versions and the versions proper to StarUML
" https://github.com/staruml/CSharp.git "


add(test): test-tube

We also have the same for Injective: https://github.com/InjectiveLabs/test-tube


Rewrite Error::into_io to ret inner source if its type is io::Error

Without the change, Error::into_io would always wrap self in io::Error, even if the source is already is an io::Error.
Signed-off-by: Jiahao XU<EMAIL_ADDRESS>

The problem with this is that directly returning source could cause some context kind and url to be lost.
I'm not very familiar with reqwest and not sure how io::Error is converted into an Error and whether Error::with_url is called at all.


Update Azure Core Shared Codes 2023-03-22_20:31:58

Update Azure Core Shared Codes 2023-03-22_20:31:58

Approve this one as this is an auto PR to resolve build failure.


changed MultiLineArrayCommaSniff to support comments

issue #24

:+1:
ping @djoos: Can you please merge this one? This is a must have!

Thanks for your contribution @rweich!
Kind regards,
David

Thanks! :+1:
Could you please bump a new patch release? :-)

I was waiting for Travis to give me the green light ;-)
...2.6.0 has now been released!
Kind regards,
David


Changing CSV Download

Previously, CSV download used GET request. This did not work if the querystring was too long ( mentioned in #145 ).
Changed CSV download to use POST request. Download is triggered by FileSaver.js.

Current coverage is 64.59%

Merging #146 into master will increase coverage by +0.05% as of 5b1ffed

@@            master    #146   diff @@
======================================
  Files          101     101
  Stmts         2959    2957     -2
  Branches         0       0
  Methods          0       0
======================================
  Hit           1910    1910
  Partial          0       0
+ Missed        1049    1047     -2

Review entire Coverage Diff as of 5b1ffed

Powered by Codecov. Updated on successful CI builds.

POST does mean that the page becomes unbookmarkable, is this an issue?

There isn't really any way around this as the query string gets too long if you search for multiple variables.
Also, the results page is unbookmarkable as it is anyway, so I guess that isn't an issue.

As far as I know, IE 9 handles URLs of about 5000 characters length. Maybe
this is only a Problem for older versions?
Am 21.12.2015 20:34 schrieb "Stephanie Ng"<EMAIL_ADDRESS>
There isn't really any way around this as the query string gets too long
if you search for multiple variables.
Also, the results page is unbookmarkable as it is anyway, so I guess that
isn't an issue.
—
Reply to this email directly or view it on GitHub
https://github.com/D-PLACE/dplace/pull/146#issuecomment-166398104.

It gives an Error 414: Request URI too long. I don't think that's related to the browser, but I'm not sure. I use Firefox.

I see. If this is a server side issue, I'm sure this can be fixed with
configuration. It definitely can for nginx.
Am 21.12.2015 21:27 schrieb "Stephanie Ng"<EMAIL_ADDRESS>
It gives an Error 414: Request URI too long. I don't think that's related
to the browser, but I'm not sure. I use Firefox.
—
Reply to this email directly or view it on GitHub
https://github.com/D-PLACE/dplace/pull/146#issuecomment-166408861.

The problem is, it's impossible to predict how long the query string will be because the user can search for as many variables as he/she wants. Unless we can configure the server so that the query string has no limit?

Ok, but do we need to let users search for as many variables as they want? This sounds like a good way to craft a denial of service attack (give me all your data at once please, and watch the database server choke).

There have been various discussions on this but we never came to a conclusion. Limiting the search sounds like a good idea, I can't remember the reasons against it off the top of my head though.