Can Chrome Web Store app be run on Chromium?

I tried running this on Chromium on a Raspberry Pi, but CWS seems to disallow it (because it's not Google's Chrome distro) and pointing Chromium at the unpacked extension fails to display the Details, Launch, and Reload links.
Is there a way to make it run in this case?

Hmm, it looks like I have it working on my end.  I wonder what version of Chromium you are using? That could be the issue as there where problems with google V8 and ARM processors that were only recently fixed. So, definitely be sure you have the latest chromium for the Raspberry Pi.
I didn't have any problems running this on mac.
Here is some information about my system at the time I was able to make it work.
Version 44.0.2362.0 (64-bit)

When I first opened chromium I was immediately presented with a link to the Chrome App Store at the top of the window near the toolbar.

I was also able to go to chrome://extensions, select 'developer mode' ->
load unpacked extensions and launch.  I am also able to see the 'details' and 'reload' links.

Upon opening a new window I was able to see the application icon at chrome://apps.

Good point.  I'll check those things and update this thread when I can.

@urbantumbleweed - looks like Chromium in RPi is stuck at old versions.
It shows Version 22.0.1229.94 Built on Debian 7.0, running on Debian 7.8 (161065)
Thinking there must be an updated build somewhere or that I could build it on the RPI, I started looking around and came up with the following Q&A's that lead to dismal thoughts:
https://www.raspberrypi.org/forums/viewtopic.php?t=51897&p=401514
http://raspberrypi.stackexchange.com/questions/31267/installing-latest-chromium-with-version-1
Any ideas?  Seems like a cross-compile would be necessary, but even so, may be very problematic because of limited run-time resources on the RPi.


Version 2.3 Released

Hi,
I don't want to set up a board for this small project. Anyway I really like your feedback.
If you have questions, feature requests or other issues - please open a new issue. If you have feedback for the new release feel free to post a comment.
Thanks for all the stars :+1: :smile:
Best regards

It was easier as I toughed to invent pipes. So soon I will release version 2.1.
If you have any other features you want to see in version 2.1 please let me know now.

now we have version 2.1 with pipes in translations

Love it!!! Only thing I wanted to mention is that maybe we could replace the translator.translate('TEXT') from returning a promise to an observable. That way the UI would always automatically update when TranslatorContainer changes the language :)
But I think we already had that topic once :)

We had a different topic once (was about the observable languageChanged not languageLoaded).
It's a good idea to have an observable for each translate. Maybe with a third method observe('TEXT'). I rather don't want to change the interface completely (everyone will have to update every call to translate).
I will have to think about how this could be implemented. Please open an issue for this feature request.

Sounds good, thx :)

Can I ask if this new release work with new version of angular^5.0.0 ?

@mouragz  nothing changed from pipes in angular 5. I think it'll work just fine

I'm trying to update to angular5 but i have an error say "ERROR TypeError: Cannot read property 'annotations' of undefined at PipeResolver.resolve" when i add this line of code in app.component.ts file
constructor( private translator: Translator,private translatorContainer: TranslatorContainer) { } @BorntraegerMarc

@mouragz thanks for your contribution. Currently I don't get the tests to run with angular 5.0.1 it seems this will take more time.
:cry: every half year a new version with so much incompatible code - it's frustrating.

@mouragz I opened #64 and #65 to solve the problems with angular 5 - hopefully it still works in angular 4 and 2


api: add cron job delete endpoint

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#123  👈
#122
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @isaacharrisholt and the rest of your teammates on  Graphite


Fix : Remove Invalid request error when response-template is not specified

Fix : Remove Invalid request error when response-template is not specified
https://github.com/localstack/localstack/issues/3936

This is a valid error @usmangani1 - this is exactly how AWS behaves. If you comment out the decorator and run that same test  you'll notice that AWS returns the same error

@bblommers I have tried the same thing against the AWS using the commands given below. AWS does not throw this error.
`service % aws  apigateway create-rest-api --name "TEST"
{
"id": "ki5uhiune6",
"name": "TEST",
"createdDate": "2021-04-29T20:37:00+05:30",
"apiKeySource": "HEADER",
"endpointConfiguration": {
"types": [
"EDGE"
]
},
"disableExecuteApiEndpoint": false
}
service % aws  apigateway get-resources --rest-api-id ki5uhiune6
{
"items": [
{
"id": "giift4z7kg",
"path": "/"
}
]
}
service % aws apigateway create-resource --rest-api-id ki5uhiune6 --parent-id giift4z7kg --path-part pets
{
"id": "g5atc8",
"parentId": "giift4z7kg",
"pathPart": "pets",
"path": "/pets"
}
service % aws apigateway put-method --rest-api-id ki5uhiune6 --resource-id g5atc8 --http-method GET
--authorization-type "NONE"
{
"httpMethod": "GET",
"authorizationType": "NONE",
"apiKeyRequired": false
}
service % aws apigateway put-method-response --rest-api-id ki5uhiune6 --resource-id g5atc8 --http-method GET
--status-code 200
{
"statusCode": "200"
}
service % aws apigateway put-integration --rest-api-id ki5uhiune6 --resource-id g5atc8 --http-method GET --type HTTP
--integration-http-method GET
--uri 'http://petstore-demo-endpoint.execute-api.com/petstore/pets'
{
"type": "HTTP",
"httpMethod": "GET",
"uri": "http://petstore-demo-endpoint.execute-api.com/petstore/pets",
"connectionType": "INTERNET",
"passthroughBehavior": "WHEN_NO_MATCH",
"timeoutInMillis": 29000,
"cacheNamespace": "g5atc8",
"cacheKeyParameters": []
}
service % aws apigateway put-integration-response --rest-api-id ki5uhiune6 --resource-id g5atc8 --http-method GET  --status-code 200 --selection-pattern ""
{
"statusCode": "200",
"selectionPattern": ""
}
`

Apologies @usmangani1 - I closed it prematurely.
After some more testing, the error seems to be thrown when the PUT request does not have a body at all.
The existing unit test does not have any body parameters, so that should fail.
But: in the above example, the 'selection-pattern'-parameter is send over as the body, which is why it doesn't fail against AWS.
I'd be happy with moving this error scenario to responses.py:integration_responses. If the method == PUT and the body is empty, throw that InvalidRequestInput-exception.
That way, the existing unit test (test_put_integration_response_requires_responseTemplate) should not need any modifications.

Thanks for making that change @usmangani1 - happy to merge once the build passes

@bblommers  Tests are passing in server mode and in normal mode One test is failing. Any idea what could be the reason here ? Can you please help me out ?

Codecov Report

Merging #3885 (1b54a3b) into master (f5e3cd8) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #3885      +/-   ##
==========================================
- Coverage   94.86%   94.85%   -0.01%
==========================================
  Files         447      448       +1
  Lines       48950    48993      +43
==========================================
+ Hits        46438    46474      +36
- Misses       2512     2519       +7

Flag
Coverage Δ

servertests
55.87% <0.00%> (+<0.01%)
:arrow_up:

unittests
94.72% <100.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

moto/apigateway/models.py
93.77% <ø> (-0.02%)
:arrow_down:

moto/apigateway/responses.py
99.73% <100.00%> (+<0.01%)
:arrow_up:

moto/s3/exceptions.py
93.64% <0.00%> (-2.81%)
:arrow_down:

moto/core/utils.py
91.59% <0.00%> (-0.85%)
:arrow_down:

moto/sqs/utils.py
95.34% <0.00%> (ø)

moto/core/responses.py
93.51% <0.00%> (ø)

moto/autoscaling/models.py
96.96% <0.00%> (ø)

moto/dynamodb2/responses.py
97.76% <0.00%> (ø)

moto/dynamodb2/exceptions.py
100.00% <0.00%> (ø)

moto/dynamodb2/limits.py
100.00% <0.00%> (ø)

... and 5 more

Continue to review full report at Codecov.

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

Fixed @usmangani1 - the body can be None as well, not just empty

Fixed @usmangani1 - the body can be None as well, not just empty

Ahh, Got it. I missed that. Thanks for adding it


Hi, SQL to TableRegistry::get('RbacRules')

Hi, code SQL created Tabled RbacRules ...?
user in Rules on DB..?
Example in Doc Table..?

What? I don't get what you want.


Add simple usage code

Show  simple usage code for rust newbies like me

@bors r+

:pushpin: Commit 80dc54436ee96def4b80d27573caff31f41ffa95 has been approved by Amanieu

:hourglass: Testing commit 80dc54436ee96def4b80d27573caff31f41ffa95 with merge 14bb115f7ce6de2d12f056e4a14845431e3c8b5d...

:sunny: Test successful - checks-travis
Approved by: Amanieu
Pushing 14bb115f7ce6de2d12f056e4a14845431e3c8b5d to master...


esp32 client for T-keyboard

This is an example of how to connect your esp32 to your T-keyboard and read keys from it.

Hello, @allthemod  tried this code and got this error.
error: conversion from 'BLEScanResults*' to non-scalar type 'BLEScanResults' requested
19 |   BLEScanResults res =pBLEScan->start(5, false);
I am a beginner so forgive me if this is trivial, but what should i change?

First of all woah you found this two years after I posted it. Second I'll check the code. Third I'm also not that good.

Hello, @allthemod tried this code and got this error.
error: conversion from 'BLEScanResults*' to non-scalar type 'BLEScanResults' requested 19 | BLEScanResults res =pBLEScan->start(5, false);
I am a beginner so forgive me if this is trivial, but what should i change?

What does your ide says?

And are you using platform io?

And are you using platform io?

Arduino IDE.
I fixed the error by the way, initially i downgraded my ESP32 version to the one around your post date and confirmed it worked, then i used copilot to make compatible for the latest version v3.0.5 ... maybe you are still on a prior version? this is the code the worked for me.
`#include <BLEDevice.h>
#include <stdio.h>
#include <string.h>
#include <Arduino.h>
#include "TKeyboardClient.h"
BLEClient* pClient = nullptr;
void setup() {
Serial.begin(921600);
Serial.println("Starting...");
MyAdvertisedDeviceCallbacks callbackDev = MyAdvertisedDeviceCallbacks();
BLEDevice::init("T-Keyboard client");
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
BLEScanResults* res = pBLEScan->start(5, false); // Change to pointer
int count = res->getCount(); // Dereference pointer
Serial.printf("count %1d \n", count);
for(int i = 0; i < count; i++){
Serial.print(i);
Serial.println(" checking...");
callbackDev.onResult(res->getDevice(i)); // Dereference pointer
}
if(connectToServer()){
Serial.println("We are now connected to the BLE Server.");
}
delay(5000);
}
void loop() {
}
`

And are you using platform io?

Arduino IDE.
I fixed the error by the way, initially i downgraded my ESP32 version to the one around your post date and confirmed it worked, then i used copilot to make compatible for the latest version v3.0.5 ... maybe you are still on a prior version? this is the code the worked for me. Thanks for the reply!
`#include <BLEDevice.h>
#include <stdio.h>
#include <string.h>
#include <Arduino.h>
#include "TKeyboardClient.h"
BLEClient* pClient = nullptr;
void setup() {
Serial.begin(921600);
Serial.println("Starting...");
MyAdvertisedDeviceCallbacks callbackDev = MyAdvertisedDeviceCallbacks();
BLEDevice::init("T-Keyboard client");
BLEScan* pBLEScan = BLEDevice::getScan();
pBLEScan->setInterval(1349);
pBLEScan->setWindow(449);
pBLEScan->setActiveScan(true);
BLEScanResults* res = pBLEScan->start(5, false); // Change to pointer
int count = res->getCount(); // Dereference pointer
Serial.printf("count %1d \n", count);
for(int i = 0; i < count; i++){
Serial.print(i);
Serial.println(" checking...");
callbackDev.onResult(res->getDevice(i)); // Dereference pointer
}
if(connectToServer()){
Serial.println("We are now connected to the BLE Server.");
}
delay(5000);
}
void loop() {
}
`

Cool, happy for you and have fun using your esp32 to access your keyboard. It feels really good knowing that somebody used some code I made


Configure the ChiSqSelector to reuse ChiSqTestResult by numTopFeature, Percentile and Fpr selector

What changes were proposed in this pull request?
Configure the ChiSqSelector to reuse ChiSqTestResult by numTopFeature, Percentile and Fpr selector,
This is the initial version, I will add annotation for the functions and vars.
Maybe some more examples.
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)
…s, Percentile, and Fpr selector

It could make this PR clearer to set the base as master the branch without any change you commit.


Typo page 65, "Thie->The"

Page 65 (printed on book, not viewer page), line 15-16. "Thie MAP" -> "The MAP".
Version: 28 Feb 2022.

fixed, thanks


Can't use poetry in several pre-release versions

[ ] I am on the latest Poetry version.
[x] I have searched the issues of this repo and believe that this is not a duplicate.
[x] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

OS version and name: Linux Mint 19.1 Cinnamon
Poetry version: 1.0.0a2, 1.0.0a3, 1.0.0a4, 1.0.0a5, 1.0.0b1, 1.0.0b2
Link of a Gist with the contents of your pyproject.toml file: I have no specific gist to show but even in a sandbox, in a new virtual environment with only poetry having been pip installed the error happens.

Issue

I have been having issues when trying to use poetry in general when using python 3.7.4 and any of the poetry versions mentioned. Whenever I try to run poetry I get the following error:
ImportError: cannot import name 'ConsoleEvents' from 'clikit.api.event' (/home/carlos/sandbox/python_stuff/poetry_error/.env/lib/python3.7/site-packages/clikit/api/event/__init__.py).
But the error is not present in versions 1.0.0a0 nor in version 1.0.0b3.
Steps to get the error in a sandbox:

python -m venv venv
source venv/bin/activate
pip install poetry==1.0.0b2
poetry

Same here. I had to pin cleo to 0.7.5 as a workaround.
https://gitlab.com/dalibo/dramatiq-pg/commit/51682b5097a8ddd3445eb9c8d15e73c08601c367

You should use the 1.0.0b3 version which properly sets the clikit dependency and fixes the issue.
If you absolutely need to use a previous prerelease then downgrading cleo like @bersace mentioned should work as a temporary fix.


[Bug] Can't set status on certain songs

When listening to this song:
https://open.spotify.com/track/6xKQQTR4pQVAKok4J4lzMt
Death Grips - You Might Think He Loves You For Your Money But I Know What He Really Loves You For It's Your Brand New Leopard Skin Pillbox Hat
I cannot update my slack status.
This is probably because of how long the song title is.
Screenshot:

Reproduction steps:

Listen to this song on spotify (https://open.spotify.com/track/6xKQQTR4pQVAKok4J4lzMt)
Try to set spotify status with the slash command, or through the app page.
See failure

[ ] Fixed
[ ] Verified

Oh interesting! I thought perhaps you were getting a different song in your status, like #2, but this is different. Will try it!

QA'd the shit out of it famo

Also, the output from slack looks like this:

This is now fixed:

According to https://api.slack.com/methods/users.profile.set, the status can be at most 100 characters. Now the app checks for that first before trying to update your Slack status

Son I am a disappoint.


Accounts to Wallets: Codebase Alignment

Task Description
We need to move from the Accounts structured codebase towards the Wallets(BIP-85) structured code, this would re-align the codebase w/ the Keeper ERD
Dependencies

#167

Taken care of, not relevant anymore.


Callback interface is expensive

A callback-based interface adds a significant amount of overhead. The synchronous methods should ideally return values instead of using a callback.

@Matt-Esch Which methods are you talking about, specifically?

@russtee I'm looking forward to getting your feedback about this as well. :)

We use lmdb synchronously for all operations whenever possible and the extra code overhead to handle the cursor callbacks seems unnecessary.
LMDB is very fast especially when running on SSD's.
That said on slower machines callbacks could be handy and would fit well into the node streams system for iteration operations.

One way to go about this is to create a JavaScript object and return that instead of calling a callback. The proposed object could have a key and  data property. Would something like this suit your needs?
For example,
var x = cursor.getCurrentString();
console.log(x.key, x.data);

that would work. However do I actually need the key as I would most likely already have it from the cursor iteration function?

What do you mean? Can you post some example code of how you would be comfortable using it?

for (var c = cursor.goToFirst(); c; c=cursor.goToNext()) {
   var val = cursor.getCurrentBinary();

As a hack/test I changed my local copy of the library to return the value instead of the key when 'convertFunc' was set.
Probably not they way you would want to do it but it seems to work and solves the problem we have.

But then this would make it impossible to see the current key.

We use the value from goToNext etc. as we always call that prior.

I see. Okay, let me think about it a bit more and I'll get back to you guys.

Let me +1 just returning the value from getCurrent*() -- you'll always have the current key as the return value of cursor.goTo*(), and the callback makes any iteration (by loop, or especially by  forEach(), map(), reduce(), etc) much clumsier.

I've submitted PR #78, which I think is a workable compromise. The callback interface is still present, if you need both key and value together, but getCurrentString() and friends return the value instead of the key regardless, meaning they can be used without a callback if desired. Also, there's no extra conversion overhead, since I merely relocated the call to convertFunc(cw->data).

Thank you @rneilson for your work. This is much better than what we had before, so it's a step in the right direction. :)

@Venemo You're quite welcome.

I believe we can agree to close this issue now, the current API doesn't require the use of callback anymore.


Add input for product qty in product page

We should be able to specify quantity of products added to cart.
At the moment we can add only 1 product by clicking on Add to cart button.
We have a design for qty in bundle products, so maybe we can implement this also in product page?

@filrak could You add it before 1.0?


LANG-341: Add number to byte array methods to org.apache.commons.lang3.Conversion

LANG-341: Add number to byte array methods to org.apache.commons.lang3.Conversion

Add toPrimitive(byte[]) and toByteArray(primitive) functions
Add hexToPrimitive(String) and toHex(primitive) functions
Add bitString functions
Add invertBitOrder() functions

Coverage decreased (-0.05%) to 94.239% when pulling d55aa3ff4e2953d372b97023ce75af04ffb8ae1e on yurelle:LANG-341_AddNumToByteArrayMethods into e56ac1c37d236c9a0e4e7b86bd7d1b7201ac177d on apache:master.

Crap. I used a primitive integer constant that's only in java 8. I'll fix.

Coverage decreased (-0.04%) to 94.246% when pulling 41103d1fc59c79d2dc1bbd3871131342b3d1dabd on yurelle:LANG-341_AddNumToByteArrayMethods into e56ac1c37d236c9a0e4e7b86bd7d1b7201ac177d on apache:master.

I got a little carried away; this PR is 4,500 lines. I'm sure this is probably going to take quite a while to validate and get accepted into the code base. I'm just glad I could get the ball rolling. If someone could check on my big/little endian implementations, I'd appreciate it. I can never keep those straight. I went off of these references:
https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html
https://en.wikipedia.org/wiki/Endianness
https://en.wikipedia.org/wiki/Bit_numbering
I'm not sure why it's saying that test coverage went down. As far as I can tell, I've got tests for all my new functions.
One thing to note: in all my new functions that had a pre-existing alternate implementation, I added a chunk in the unit test to compare my results with the existing implementation. However, I had some trouble getting proper data out of the pre-existing hexToPrimitive() functions. The test code to do this validation is in the JUnit functions, but it's commented out. I'm probably just not understanding the existing implementation properly.

Might be worth splitting this into smaller PRs that can be more easily reviewed?
The LANG-341 stuff was pretty much ready to go last time it was reviewed, so splitting that out would help get it into the code base sooner.
Some of the other methods are new (to me at least), and might warrant individual conversation - do we want/need these methods, etc. (Not saying we don't, but easier to have a coherent discussion about a smaller scope of change).

Avoiding a mixture of white-space and code changes is also welcome :-)

Needs conflicts resolved...

Ok, I fixed the merge conflicts and all the new build style tests that have been added since I first made this PR back in 2016. And the build works for Java 8, but it is dying on the Java 16 build. The errors are complaining about stuff that I didn't touch, so I don't think this is my doing.
Also, back when I wrote all this code, I wasn't allowed to use stuff that was added in Java 8 (specifically the BYTES static property that was added to the Primitive object classes). So, I manually created equivalent integer constants in the Conversion class. However, judging by the versions in the automated builds, it appears that java 8 is now the min supported version. If that is the case, then I can update this code to use the Java 8 BYTES fields, and remove the integer constants. Can you confirm if I'm allowed to use stuff that was introduced in Java 8?
Also, @dmjones mentioned a desire to have the PR broken up into chunks to make review easier. I can do that if you want, but I need to know how small you want those chunks to be. My original commit message split the changes into 4 groups of functions:

primitive to byte[] and back
hex to primitive and back
bit strings
invert bit order

Would these 4 PR's be sufficient? or do you want it more fine grained?
As for the whitespace, Intellij did it automatically; I'm not sure how to undo it.
-Yurelle
P.S. Sorry for leaving this in limbo for so long, but I've had depression for several years, and with a full-time job, I haven't had the energy to do much else. But I've had some time recently, and I'd like to finally get this finished, if yall still want it.

We know the build fails on Java 16, there is a separate thread about that
on the dev ML. It looks like a problem in our data parser or possibly an
issue in the JDK, hard to say, but we do need help figuring it out.
Gary
On Sun, Mar 28, 2021, 18:16 yurelle @.***> wrote:

Ok, I fixed the merge conflicts and all the new build style tests that
have been added since I first made this PR back in 2016. And the build
works for Java 8, but it is dying on the Java 16 build. The errors are
complaining about stuff that I didn't touch, so I don't think this is my
doing.
Also, back when I wrote all this code, I wasn't allowed to use stuff that
was added in Java 8 (specifically the BYTES static property that was added
to the Primitive object classes). So, I manually created equivalent integer
constants in the Conversion class. However, judging by the versions in the
automated builds, it appears that java 8 is now the min supported version.
If that is the case, then I can update this code to use the Java 8 BYTES
fields, and remove the integer constants. Can you confirm if I'm allowed to
use stuff that was introduced in Java 8?
Also, @dmjones https://github.com/dmjones mentioned a desire to have
the PR broken up into chunks to make review easier. I can do that if you
want, but I need to know how small you want those chunks to be. My original
commit message split the changes into 4 groups of functions:

primitive to byte[] and back
hex to primitive and back
bit strings
invert bit order

Would these 4 PR's be sufficient? or do you want it more fine grained?
As for the whitespace, Intellij did it automatically; I'm not sure how to
undo it.
-Yurelle
P.S. Sorry for leaving this in limbo for so long, but I've had depression
for several years, and with a full-time job, I haven't had the energy to do
much else. But I've had some time recently, and I'd like to finally get
this finished, if yall still want it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/apache/commons-lang/pull/219#issuecomment-808968232,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJB6NZQ7CR5WU62E45545DTF6TETANCNFSM4CXUBPHQ
.

@yurelle
throw new IllegalArgumentException("Input data is longer than size of 'double' primitive ("+SIZE+" bytes)");

tips:
next time when you wanna bake some codes from a template for all primitive types, suggest use boolean, as boolean is the less troublesome one in them...
if cannot use boolean then can use double
do never use int or long as template...that will cause the longer->doubler thing.

I never thought about using boolean; that's a good idea.  Thanks.


Bug when rotating the display in full-screen mode on iOS

Hello,
When you rotate a device in full-screen mode, the container size doesn't change to fit a display. The bug is found on iPhone 6/6 Plus iOS version 12.1.
How can I fix this? Please advise.
Thank you in advance.

More details
The screenshot when I opened http://openseadragon.github.io/ and switched to full-screen mode:

The screenshot when I rotated the display in full-screen mode:

Good catch! That's unfortunate.
It looks like the full page container we move the viewer into isn't getting resized properly. To step back a moment: part of what's going here is that the iPhone Safari doesn't have true full screen (though it looks like the iPad does now!), so instead we go into "full-page" mode where we hide all the rest of the page content and resize the container to fill that space. That code is here:
https://github.com/openseadragon/openseadragon/blob/81a634a61845aac973cf6b7d00ee0dcbbaf968ea/src/viewer.js#L906
It looks like we explicitly set the width and the height of the element that was given to OSD to contain the viewer. That's the element property of the viewer. I suppose one option would be to try changing that to just 100% instead of actual pixel values. If that doesn't work, perhaps we need to watch for resize events on the window and update the pixel values then. If that's not reliable,  we could detect changes to the window size whenever we update. That code is here:
https://github.com/openseadragon/openseadragon/blob/81a634a61845aac973cf6b7d00ee0dcbbaf968ea/src/viewer.js#L3259
Are you up for looking into this? Either way, thank you for reporting it!


Feature/add arrow strip marker

ROS2 port of this PR

Adds conversion methods between Ogre::ColourValue and msg::ColorRGBA types
Refactors the Arrow class:

Splits set() into setHeadLength(), setHeadDiameter(), setShaftLength(), setShaftDiameter() for clarity.
adds a setLength() method for setting the total arrow length, preserving shaft and head proportions.
adds a setShaftHeadRadio() method for setting shaft and head proportions, preserving the total arrow length.

Refactors code depending on Arrow to use the new methods
Adds an ArrowStripMarker class for rendering batches of arrows efficiently

Note:
While working on point 3, I noticed that there are inconsistencies in the way values are being passed to the (now removed) Arrow::set method. The documentation suggests it accepts shaft and head diameters, whereas the usage suggests some callers are passing in radii.
I've stuck to using diameter for now to preserve existing behaviour and for consistency with the original documentation. It's also more obvious now through the method names i.e. set..Diameter(...radius) where these inconsistencies exist, so it should be clearer for a future PR.
TODO:

[x] Finish ArrowStripMarker implementation
[ ] Port files that don't seem to have ROS2 analogue
[ ] Apply formatting
[ ] Add unit tests

@ahcorde
Bump as I won't have much time to work on this from next week

Hi @clalancette, would you be able to answer the questions above?

This PR is block with this other PR https://github.com/ros2/common_interfaces/pull/218

First, I'm sorry for the long delay.  May is an extremely busy month leading up to the release, so I just didn't have time to look at this back then.  I can answer some questions now.

The ROS1 version of this PR used a CI mechanism to pull in and compile against unmerged branches from other repositories, which will be required to resolve the dependencies between this one and the common msgs PR adding the new ARROW_STRIP Marker type. Does such a mechanism exist in rviz2?

Yes, though it is somewhat more manual.  In this case, we use jobs launched on https://ci.ros2.org to do the same thing.  Assuming we go forward with this and https://github.com/ros2/common_interfaces/pull/218 , that's the mechanism we'll use.

Also, that PR featured a test Python script demonstrating rendering of the new marker type. Is there a place for these kinds of scripts in rviz2, or should writing the unit tests for the ArrowMarkerStrip class be sufficient?

Um, that's a good question.  I don't really know.  What I think we should probably do for now is just to keep that separate, but if you could put a link to it somewhere for testing that would be helpful.

Also, if you could let me know what tools I should be using to lint & format the code, that'd be super helpful.

If you follow the installation procedure on http://docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Development-Setup.html, you should have all the tools you need.  Then you can checkout this branch and the one in common_interfaces, and do:
$ colcon build
$ colcon test --packages-select rviz_common rviz_default_plugins

That should tell you what you need to change.

do you have plan to continue working on this PR @rr-tom-noble ?

Apologies for letting this get stale. I've had my head in ros1 for a while now, but we're migrating over to humble, so it's giving me more time to get into ros2 again.
I'd definitely be interested in picking this back up over the coming weeks


play/pause  in nexus6p cannot work

I just test app in my nexus 6p(android7.0). It can only work one loop(pause and then play), after that, operation in headset will not take effect at all.
It is playing, but we get KEYCODE_MEDIA_PLAY in onMediaButtonEvent(). Do you know reason for that?
log:
MusicService: AudioControlService->onMediaButtonEvent()keycode: 126 ;key: 0 ;active: true
Thanks.

Hello, I suggest looking at the "UAMP" sample: https://github.com/googlesamples/android-UniversalMusicPlayer.
The UAMP sample contains a MediaBrowserService implementation that works with more Android features.
https://android-developers.googleblog.com/2018/06/a-new-universal-music-player.html
https://medium.com/androiddevelopers/making-the-uamp-sample-an-instant-app-30c3f0a050af
If you still see this issue in the UAMP sample, please open an issue there. Thank you!


Incorrect ref API usage fixed.

release method of local_ref and global_ref doesn't call deallocator, in fact, it leaves the caller responsible for deletion of the reference, while otherwise the reference is released on scope left.
Fixes #18292.
Test Plan:
If there is a mistake in the change it won't even run.
Pass the big array (bigger than 512 elements) and call importTypes method on it. If it doesn't crash the problem is fixed.
Release Notes:
Help reviewers and the release process by writing your own release notes. See below for an example.
[BRIDGE] [bugfix] [JNI] - Fixes spontaneous local_ref table overflow. Fixes global_ref table overflow as well.

Holdon on that, I need to finish some testing, I might go too aggressive - not sure about the global_ref yet, need to make sure it doesn't break anything.

Warnings

:warning:

:clipboard: Release Notes - This PR may have incorrectly formatted Release Notes.

  Generated by :no_entry_sign: dangerJS


[SPARK-11274][SQL] Text data source support for Spark SQL.

This adds API for reading and writing text files, similar to SparkContext.textFile and RDD.saveAsTextFile.
SQLContext.read.text("/path/to/something.txt")
DataFrame.write.text("/path/to/write.txt")

Using the new Dataset API, this also supports
val ds: Dataset[String] = SQLContext.read.text("/path/to/something.txt").as[String]

Merged build triggered.

Merged build started.

Merged build finished. Test FAILed.

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

Test build #1944 has started for PR 9240 at commit 14f7404.

Test build #1944 has finished for PR 9240 at commit 14f7404.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build triggered.

Merged build started.

Test build #44206 has started for PR 9240 at commit 0abeae0.

Test build #44206 has finished for PR 9240 at commit 0abeae0.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * class DefaultSource extends HadoopFsRelationProvider with DataSourceRegister \n  * class TextOutputWriter(path: String, dataSchema: StructType, context: TaskAttemptContext)\n

Merged build finished. Test FAILed.

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

Merged build triggered.

Merged build started.

Test build #44211 has started for PR 9240 at commit 906845b.

Merged build triggered.

Merged build started.

Test build #44215 has started for PR 9240 at commit 7756825.

Test build #44215 has finished for PR 9240 at commit 7756825.

This patch fails to build.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * class DefaultSource extends HadoopFsRelationProvider with DataSourceRegister \n  * class TextOutputWriter(path: String, dataSchema: StructType, context: TaskAttemptContext)\n

Merged build finished. Test FAILed.

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

Test build #44211 has finished for PR 9240 at commit 906845b.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * class DefaultSource extends HadoopFsRelationProvider with DataSourceRegister \n  * class TextOutputWriter(path: String, dataSchema: StructType, context: TaskAttemptContext)\n

Merged build finished. Test PASSed.

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

Merged build triggered.

Merged build started.

Test build #44240 has started for PR 9240 at commit 740c263.

Test build #44240 has finished for PR 9240 at commit 740c263.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):\n  * class DefaultSource extends HadoopFsRelationProvider with DataSourceRegister \n  * class TextOutputWriter(path: String, dataSchema: StructType, context: TaskAttemptContext)\n

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

Merged build finished. Test PASSed.

LGTM. Merging to master.


Elements are not transferred/saved

Used Shopware Version: <IP_ADDRESS>
Description:
If I use the "Selection field" option when creating a custom products template and then select things like "Display as drop down menu", "Multiple selections possible" or a default value in the drop-down menu within an element, I can click on "Apply" at the bottom right. But the values are not saved/accepted. The template is then created, but without the selected values.
The same happens with migrated templates from Shopware 5
Environment: <IP_ADDRESS>
Expected result:
The selected values should be saved so that they can also be used.
[Bildschirmfoto%2B2024-07-09%2Bum%2B15.36.44.png|https://sbp-issuetracker-attachments.s3.eu-west-1.amazonaws.com/1720532517_668d3e25f3c79_Bildschirmfoto%2B2024-07-09%2Bum%2B15.36.44.png]  [Bildschirmfoto%2B2024-07-09%2Bum%2B15.37.16.png|https://sbp-issuetracker-attachments.s3.eu-west-1.amazonaws.com/1720532518_668d3e267337e_Bildschirmfoto%2B2024-07-09%2Bum%2B15.37.16.png]  [Bildschirmfoto%2B2024-07-09%2Bum%2B15.37.28.png|https://sbp-issuetracker-attachments.s3.eu-west-1.amazonaws.com/1720532518_668d3e26e8353_Bildschirmfoto%2B2024-07-09%2Bum%2B15.37.28.png]

[public] Automated response: This issue is linked to the internal issue https://shopware.atlassian.net/browse/CUS-705.
[created from CUS-705, comment 484895]


⚠ 366.ru has degraded performance

In d9deb70, 366.ru (https://366.ru) experienced degraded performance:

HTTP code: 200
Response time: 3180 ms

Resolved: 366.ru performance has improved in 87e20a9.


Google Return Url redirect

MainActivity has leaked ServiceConnection net.openid.appauth.browser.CustomTabManager$1@2f048d4 that was originally bound here
                  android.app.ServiceConnectionLeaked: Activity com.byteowls.teamconductor.MainActivity has leaked ServiceConnection net.openid.appauth.browser.CustomTabManager$1@2f048d4 that was originally bound here
                      at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1336)
                      at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1231)
                      at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1450)
                      at android.app.ContextImpl.bindService(ContextImpl.java:1422)
                      at android.content.ContextWrapper.bindService(ContextWrapper.java:636)
                      at android.support.customtabs.CustomTabsClient.bindCustomTabsService(CustomTabsClient.java:71)
                      at net.openid.appauth.browser.CustomTabManager.bind(CustomTabManager.java:95)
                      at net.openid.appauth.AuthorizationService.<init>(AuthorizationService.java:116)
                      at net.openid.appauth.AuthorizationService.<init>(AuthorizationService.java:94)
                      at net.openid.appauth.AuthorizationService.<init>(AuthorizationService.java:83)
                      at com.byteowls.capacitor.oauth2.OAuth2ClientPlugin.authenticate(OAuth2ClientPlugin.java:145)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99)
                      at com.getcapacitor.Bridge$2.run(Bridge.java:473)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.os.HandlerThread.run(HandlerThread.java:61)

Causes the App to reload / restart Capacitor

Known Issue: https://github.com/openid/AppAuth-Android/issues/91

I have no idea why it worked before I didn't change anything.
After doing lots of OAuth2 lately using no library becomes increasingly attractive. OAuth isn't that hard to do just a couple of requests ;)

AppAuth's AuthorizationService must be disposed as soon as it is not "needed". Although I needed it in the redirect I dispose the service on app stop and create a new one when again needed.
@Override
    protected void handleOnStop() {
        super.handleOnStop();
        disposeAuthService();
    }

    private void disposeAuthService() {
        if (authService != null) {
            authService.dispose();
            authService = null;
        }
    }

The exception is gone but when I chose a account to login and want to return to the app a toast presents applications my application twice. If I use the 2nd one it works using the first one it restarts the app and the token is gone.


Window is too dark on Ubuntu

VSCode Version: 1.31.1
OS Version: Ubuntu 18.04 x64

Steps to Reproduce:

Install Ubuntu 18.04
Install VS Code 1.31.1
Run VS Code

No extensions were installed

Same problem was with Chrome 72, fixed by adding  --use-gl=angle to shortcut parameters

Does this issue occur when all extensions are disabled?: Yes

Those colors are driven by themes, and that doesn't look like a default bundled theme to me. You might also want this setting:
"window.titleBarStyle": "native"


⚠ HawkeUno has degraded performance

In 105b3b6, HawkeUno ($UNO) experienced degraded performance:

HTTP code: 403
Response time: 2100 ms

Resolved: HawkeUno performance has improved in ffe4af4 after 6 minutes.


Traversable 3D Model of the Moon

That's related to Lunar Spatial Data handling, but more technical.

Makes sense to build it on top of Terrain3D extentsin


xn2v_parser

Remove this class -- it does not make sense to have it here. We still have the code in the original IDG2KG management repository

xn2v_parser has been removed.

@justaddcoffee and I updated the tests to reflect this change too 😄


fix(xhr): allow setters for non-existing properties

Fixes https://github.com/mswjs/msw/issues/1816

Investigation
This issue is caused by the Axios XHR adapter in Happy DOM only. Axios does:
request.timeout = config.timeout

Where request is already a proxy established by Interceptors. It looks up the setProperty trap on the proxy and since timeout doesn't have a special case, it defaults to invoke().
Calling invoke() to set timeout on XMLHttpRequest proxy returns false because property timeout does not exist on target:
https://github.com/mswjs/interceptors/blob/1f04d100bad190a393a5855fc6cc3a54f6117dfb/src/utils/findPropertySource.ts#L9-L11
The timeout property is not mandatory on XMLHttpRequest, so it's missing from the immediate XHR instance as well as its prototype. We return false from the setter and that causes the following error:
TypeError: 'set' on proxy: trap returned falsish for property 'timeout'

Solution
I think us forbidding setters on unknown properties is a mistake. To fix this, I'm adding a fallback to propertySource to be the immediate target itself is findPropertySource returned null.

Released: v0.25.9 🎉
This has been released in v0.25.9!

📄 Release notes
📦 npm package

Make sure to always update to the latest version (npm i @mswjs/interceptors@latest) to get the newest features and bug fixes.

Predictable release automation by @ossjs/release.


Live Search Filter List

Is there a way using the Live Search recipe as a baseline to list all entries by default and then live filter those entries as the user types the query in the search field (rather than displaying nothing but the search field at first)? Any help is appreciated!

Sure, just remove the condition for a query.

    {% set entries = craft.entries.search(query).all() %}
    {% if entries|length %}
      {% for entry in entries %}
        {{ entry.title }}
      {% endfor %}
    {% else %}
        No results
    {% endif %}

Thank you! This works great.


Package for linux-arm7 didn't run on arm7 platform

I've created a package for a js file with targets set as -t node8-linux-arm7.  But it gives the following error:-
module.js:487
throw err;
^
Error: Cannot find module '/snapshot/filePath/filename.js'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1251:46)
at Function.Module._load (module.js:437:25)
at Function.Module.runMain (pkg/prelude/bootstrap.js:1280:12)
at startup (bootstrap_node.js:200:16)
at bootstrap_node.js:617:3

I am getting a strange behaviour with armv7 on orange pi zero. I can create an executable file successfully without warnings and errors, meaning all packages where successfully snapped shot.
But when I ran the package, it generates error Cannot find module [some module]. [Some module] is a dependency of one of my required packages. When I manually require the [some module] package, it will generate another error for other packages being not found.
To conclude, I have to manually require in my codes the sub dependencies of my project's depdencies in order for it to be added in the executable file.
Note that this does not happen in raspberry pi 3 model b and in my ubuntu pc. Only in orange pi zero.

I want to run the package on WebOS. Any help appreciated. Thank you.


Allow arcdps to be installed in addons/arcdps for gw2AL integration

This change adds an option to enable Addon Loader integration.
It is a bit finicky right now, since you have to have the checkbox enabled BEFORE u set the gw2 path (setting gw2 path downloads arcdps and would replace d3d11.dll from AL if not set before)
I changed the flow a bit, so you will not get a file selector immediately when u enable arcdps module.
Now you have to press the button manually.

Significantly simplified the changes. The activation flow will now also be the same as before. It checks if addonLoader.dll exists and sets the useAL config option to true in that case.


opesearch NPM connection issue on high load with AWS opensearch

Describe the bug
We are trying to replace the elasticsearch NPM with opensearch NPM in our project (using AWS opensearch 1.0 cluster).
We are connecting to AWS opensearch from AWS lambda.
Now in case of high load we start getting ConnectionError: getaddrinfo EMFILE error.
ConnectionError: getaddrinfo EMFILE *******.us-****-1.es.amazonaws.com
    at ClientRequest.onError (/opt/nodejs/node_modules/@opensearch-project/opensearch/lib/Connection.js:126:16)
    at ClientRequest.emit (events.js:400:28)
    at ClientRequest.emit (domain.js:470:12)
    at TLSSocket.socketErrorListener (_http_client.js:475:9)
    at TLSSocket.emit (events.js:400:28)
    at TLSSocket.emit (domain.js:470:12)
    at emitErrorNT (internal/streams/destroy.js:106:8)
    at emitErrorCloseNT (internal/streams/destroy.js:74:3)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  meta: {
    body: null,
    statusCode: null,
    headers: null,
    meta: {
      context: null,
      request: {...},
      name: 'opensearch-js',
      connection: {
        url: 'https://*******.us-****-1.es.amazonaws.com/',
        id: 'https://*******.us-****-1.es.amazonaws.com/',
        headers: {},
        deadCount: 4,
        resurrectTimeout:<PHONE_NUMBER>285,
        _openRequests: 0,
        status: 'dead',
        roles: { master: true, data: true, ingest: true }
      },
      attempts: 3,
      aborted: false
    }
  }
}

If I put elasticsearch NPM back then it works fine.
By looking at the error, it looks like that there is host resolution problem and doesn't seem related to opensearch. But same host works fine with elasticsearch NPM.
Also this is working fine with opensearch NPM when there is low traffic. But when there is high load it starts giving error.
Is there any internal issue with opensearch http connection management?
Plugins
elasticsearch: "^16.5.0"
@opensearch-project/opensearch: "^1.0.0"
Host/Environment (please complete the following information):
AWS lambda

Hi! Is there an update on how this issue was resolved? I'm facing the same error with OpensSearch host

@jnith @shashank-sachan it sounds like opensearch-js is causing the system to run out of file descriptors
What's your output from ulimit -a? Generally this is 1024. There's a bunch of articles on how to increase it (example), I would try that as a workaround.
If you can reproduce this consistently, let's see the output of lsof and lsof -n -i -P (from this SO).
It's possible that this client/server combination has higher throughput than the elasticsearch one and causes you to hit a limit earlier under load.

Yes thanks for the details. I was able to figure out that the issue was causing because each update request to openSearch is creating a new connection and I was creating 1000s of connection. I was able to overcome the issue with the Bulk update feature and hence limiting the number of connections.

@dblock I'm using this inside AWS lambda so I don't have control over ulimit.
But elasticsearch-js was not causing this issue so may be we need to the optimization in this library.

@shashank-sachan Which version of elasticsearch-js were you using? Need to track down the diff (help wanted). Either way sounds like we're creating some unbounded number of connections, which should be replaced by a pool.

Recently been hitting the same issue, is there a way to control the number of connections? It seems like it's already using ConnectionPool by default. Notice the ConnectionPool is reporting connection is alive when the request is already dead.

I had exactly the same problem when replacing ElasticSearch client with OpenSearch client. The problem fix was simple: just call client's close function when you're finished with the client. In my case, the client is re-created per lambda instance invoke (the same client is not reused in different invocations).
Sadly the use of close is not documented in OpenSearch Javascript client docs. Only Java documentation says that you should close the client when you're finished.

@perttu-n Care to add it to the documentation?

I am having the same issue while replacing the elasticsearch client. I am running it from lambda. Previously I was using the elasticsearch 16.3 version.

Ok so after spending a day on this, i solved it. I realized the client initialization was happening inside the handler function of lambda. So, I just moved the initialization part out of the handler function. So, now it's using the same client instance as long as the lambda is alive.

@arnabrahman Would you care to contribute something to the documentation/samples? Maybe an example for Lambda with some cautionary tales?

@dblock Sure, happy to contribute to open source. Let me know how to get started.

@arnabrahman You can get started here: https://github.com/opensearch-project/.github/blob/main/ONBOARDING.md. Thanks!

@dblock created a PR of the explanation in the doc.

@arnabrahman do you think we should close this one?

@dblock Maybe, we have added an explanation in the documentation to guide users in avoiding this problem.
However, it's worth noting that the previous Elasticsearch client did not encounter such issues. So, if it's possible then we should look into code to see why it's behaving differently.


Fix invalid handle error for Read/Write operations on Windows

Fixes #35

Relevant from
https://github.com/ziglang/zig/blob/01081cc8e8b79104f7992d60dbd1bc8682e8fedf/lib/std/os/windows.zig#L616-L626

Can you rebase this on top of the master? Should fix the CI.

Thanks, I wanted to rewrite the commit message, but github interface bugged out somehow.


Add more tests for NPM semantic versions

The samples used for testing are based on the range examples provided by:
https://github.com/npm/node-semver
The tests expose some issues related to NPM semantic versions.

This also migrates the project to Java 6, because the project we're using it in does not support Java 8.

Awesome!


Awesome setup !!!

Man this project gotta be one of the most unique creative project I ever set up your the goat man I can’t find no other place to support it but I decided to support it here the picture of my setup is down below it was hard but managed to pull through can’t wait for your next up coming. Project 👨💻 picture down below 👇
https://prnt.sc/1jYuwdFHgCXg

can you help me setup


trapezoider poly with holes: how to get a list of only "inner" trapezoids?

I'm calculating trapezoids like this:
  path = [
		// Contour
		[ { x:0.0, y:0.0 },	{ x:30.0, y:0.0 }, { x:30.0, y:40.0 }, { x:0.0, y:40.0 } ],
		// Holes
		[ { x: 2.5, y:26.0 },	{ x: 5.0, y:31.0 }, { x:10.0, y:28.5 } ],
		[ { x:27.5, y:25.0 },	{ x:25.0, y:30.0 }, { x:20.0, y:27.5 } ],
		[ { x:15.0, y:20.0 },	{ x:12.5, y:10.0 }, { x:18.0, y:10.0 } ],
						];

  var trapezoider = new PNLTRI.Trapezoider( new PNLTRI.PolygonData(path) );
  trapezoider.trapezoide_polygon();
  var traps = trapezoider.queryStructure.trapArray;

but in resulting array there is a list of all trapezoids, including holes and outside world

In the above example, how can I filter out trapezoids 0, 15, 3, 16, 26, 9, 24?

looks like I found answer - use depth == 1 ?


.Net core 2.1 and .Net standard 2.0

The library runs fine in .Framework environment only.
When its used on .Net Core no devices are detected same as .Net Standard

+1 to this. DiscoverDevices not working on .net std 2.1, 2.0 or .net core 3.1.

I think have seen the same thing, using latest stable from NuGet, 4.0.4 as well as 4.0.2
I have a Class Library set to target .NET Standard 2.0, and code within that library:
IReadOnlyCollection<BluetoothDeviceInfo> devices = client.DiscoverDevices(50);```

When I reference this Class Library from a Windows Forms targeting .NET Framework 4.6, I instantiate the the class and call the code that runs the BluetoothClient code you see above, it finds all of my devices in about 5 seconds or so.

When I reference this Class Library from a UWP (target win10 1903), Mac (??), Android (target v9), or Xamarin.Forms (target .net standard 2.0) projects it does not work at all. Am I missing something stupid?

At the moment not all the platforms are implemented. The .NET Framework library works on Windows Desktop projects only. UWP requires a separate implementation because the Win32 APIs used are not permitted inside a UWP app.
The .NET Standard dll is a reference library with no implementation. The relevant platform dll will be deployed into the end application when you reference the NuGet library.  I'll add a matrix of platform support to the documentation to show how the library is progressing.

I'd welcome any contributions to the library. I'm hopeful that with the architectural changes in v4 that there wouldn't be significant work to also build a .NET Core version of the dll. The problem as I see it is ensure there are runtime specific versions as .NET Core can run across Windows, Linux etc and these require different implementations. I see this as an important piece as we move towards .NET 5 and conversion of the different runtimes. The table in the Wiki does indeed show planned support so while some of the underlying macOS support is there it is not currently supported in InTheHand.Net.Bluetooth.

.NET Core 3.1 and .NET 5.0 support added


Discrete actions

Hello,
I am playing with your code, and it is great, I learned a lot!! Now, I want to use it for a project with discrete actions. I set "ac_bins": "uniform:3" in the config json and expected to get 3 discrete actions between low and high, but this was not the case. How can I get discrete actions?
Thanks and kind regards
Ernst

Hello,
found the problem. There was ac_noise_std = 0.01, and that added a little bit of noise to the actions. When setting the noise to 0., it works.
Kind regards
Ernst


spack.yaml: depend on generic tracers Spack components

Testing new infrastructure
Original PR: https://github.com/ACCESS-NRI/ACCESS-OM2/pull/82

:rocket: The latest prerelease access-om2/pr86-18 at ae9c4f4432db77ed5638530a281ae29ce8335964 is here: https://github.com/ACCESS-NRI/ACCESS-OM2/pull/86#issuecomment-2540256957 :rocket:

$ module use /g/data/vk83/prerelease/modules
$ module load access-om2/pr86-1
Loading access-om2/pr86-1
  Loading requirement: oasis3-mct/2023.11.09-uymfvj3 libaccessom2/2023.10.26-l6hmysz cice5/2023.10.19-epnbkes mom5/dev_2024.08.14-nj74pgj

Awesome!

Hi @CodeGat , Same prerelease name for both deployments.

NOTE
Module access-om2/pr86-10 does not contain Spack-based generic tracer support:
$ spack find --variants --long mom5 | grep eaa3
eaa3kwy<EMAIL_ADDRESS>build_system=makefile type=ACCESS-OM

Module access-om2/pr86-11 does:
$ spack find --variants --long mom5 | grep nj74pg
nj74pgj<EMAIL_ADDRESS>build_system=makefile type=ACCESS-OM

Hey, due to https://github.com/ACCESS-NRI/build-cd/issues/173 we have had to update the infrastructure in this repository, as well - see https://github.com/ACCESS-NRI/ACCESS-OM2/pull/90.
We try and keep these kinds of updates to a minimum, and, starting from this one onwards, it will no longer be a hard requirement to update PR branches to incorporate infrastructure changes in order for the infrastructure to work - as you need to for this one.
To update this PR to the new origin/main, do the following:
git rebase origin/main
git push --force

to incorporate CI changes into the PR.
Your PR may redeploy, but that is okay - it should be identical to the last deployment. Let me know if you have any questions or issues.

!redeploy

Hi @dougiesquire , @pearseb and @chrisb13 ,
If you want to test Spack-built ACCESS-OM2 with wombatlite-sinking:
$ spack env activate access-om2-pr86-18
$ spack find --path<EMAIL_ADDRESS>==> In environment access-om2-pr86-18
==> 1 root specs
[+] access-om2

==> Installed packages
-- linux-rocky8-x86_64 /<EMAIL_ADDRESS>-----------------------
<EMAIL_ADDRESS>/g/data/vk83/prerelease/apps/spack/0.22/release/linux-rocky8-x86_64/intel-<IP_ADDRESS>1/access-generic-tracers-git.dev_2024.12.0_2024.12.0-kjyflqiymfteq4g6btxjxcpn5fra6zlo
==> 1 installed package

$ git diff main..wombatlite-sinking

+          print*, "Error: Ecosystem model is not conserving nitrogen"
...
+          print*, "Error: Ecosystem model is not conserving carbon"

$ strings /[...]/0.22/release/linux-rocky8-x86_64/intel-<IP_ADDRESS>1/access-generic-tracers-git.dev_2024.12.0_2024.12.0-kjyflqiymfteq4g6btxjxcpn5fra6zlo/lib64/libgtracers.a | grep -i Ecosystem
Error: Ecosystem model is not conserving nitrogen
Error: Ecosystem model is not conserving carbon

What does this mean?
On Dec 15, 2024, at 8:30 PM, Harshula Jayasuriya @.***> wrote:

Hi @dougiesquirehttps://github.com/dougiesquire , @pearsebhttps://github.com/pearseb and @chrisb13https://github.com/chrisb13 ,
If you want to test Spack-built ACCESS-OM2 with wombatlite-sinking:
$ spack env activate access-om2-pr86-18
$ spack find --path @.***_2024.12.0=2024.12.0
==> In environment access-om2-pr86-18
==> 1 root specs
[+] access-om2
==> Installed packages
-- linux-rocky8-x86_64 / @.*** -----------------------
@.***_2024.12.0=2024.12.0  /g/data/vk83/prerelease/apps/spack/0.22/release/linux-rocky8-x86_64/intel-<IP_ADDRESS>1/access-generic-tracers-git.dev_2024.12.0_2024.12.0-kjyflqiymfteq4g6btxjxcpn5fra6zlo
==> 1 installed package
$ git diff main..wombatlite-sinking

     print*, "Error: Ecosystem model is not conserving nitrogen"

...

     print*, "Error: Ecosystem model is not conserving carbon"

$ strings /[...]/0.22/release/linux-rocky8-x86_64/intel-<IP_ADDRESS>1/access-generic-tracers-git.dev_2024.12.0_2024.12.0-kjyflqiymfteq4g6btxjxcpn5fra6zlo/lib64/libgtracers.a | grep -i Ecosystem
Error: Ecosystem model is not conserving nitrogen
Error: Ecosystem model is not conserving carbon
—
Reply to this email directly, view it on GitHubhttps://github.com/ACCESS-NRI/ACCESS-OM2/pull/86#issuecomment-2543644453, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AA7GKGDBWJDYMNTRZ3VN6UT2FVD33AVCNFSM6AAAAABR2FDNKGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBTGY2DINBVGM.
You are receiving this because you were mentioned.Message ID: @.***>

What does this mean?

Use Pre-release pr86-18 if someone wants to test Spack-built ACCESS-OM2, with componentized generic-tracers, containing wombatlite-sinking.

Hi @pearseb , Your latest changes should be in the following ACCESS-OM2 deployment: https://github.com/ACCESS-NRI/ACCESS-OM2/pull/86#issuecomment-2547291783


Targeting different linux distros

Hey there! Great module!
I got a question: I don't suppose there is an ability to target multiple distros even theoretically with this library? The specific use case is to provide a binary compiled against glibc for distros that use glibc and a binary compiled against musc for distros (e.g. alpine) that use musc. The only way I imagine this could be done is if the consumer of the library
provides the target he wants installed (like with a config file at the root of his package or a property on package.json)

Both ends (prebuild and prebuild-install) include detection of libc flavor, so if you run prebuild in Alpine it'll produce a prebuilt binary for musl, and if a consumer runs prebuild-install in Alpine, it will download that prebuilt binary. You can see here that a libc variable is included in the download URL.

Awesome, that's cool, thank you 👍


Hidden Object Game

🎮 Game Request
Hidden Object Game: A game where players find hidden objects in a picture or scene.
Point down the features
Hidden Object Games feature visually detailed scenes where players find specific objects within, often with levels, hints, time limits, scoring, themed storylines, and interactive elements.
Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @mahek0620! 🙂
It seems like you are not following proper guidelines !! 👀
Read documentation properly !!🙏
If you have any queries reach out to us on Discord🕹 .

Hey @mahek0620 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


[Bug]: Pixtral-12B not supported on CPU

Your current environment

The output of `python collect_env.py`
Collecting environment information...
WARNING 09-21 15:29:13 _custom_ops.py:18] Failed to import from vllm._C with ImportError('libcuda.so.1: cannot open shared object file: No such file or directory')
PyTorch version: 2.4.0+cu121
Is debug build: False
CUDA used to build PyTorch: 12.1
ROCM used to build PyTorch: N/A

OS: Ubuntu 22.04.5 LTS (x86_64)
GCC version: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Clang version: 14.0.0-1ubuntu1.1
CMake version: version 3.30.3
Libc version: glibc-2.35

Python version: 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0] (64-bit runtime)
Python platform: Linux-6.8.0-40-generic-x86_64-with-glibc2.35
Is CUDA available: False
CUDA runtime version: No CUDA
CUDA_MODULE_LOADING set to: N/A
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                         x86_64
CPU op-mode(s):                       32-bit, 64-bit
Address sizes:                        48 bits physical, 48 bits virtual
Byte Order:                           Little Endian
CPU(s):                               16
On-line CPU(s) list:                  0-15
Vendor ID:                            AuthenticAMD
Model name:                           AMD Ryzen 7 5800X 8-Core Processor
CPU family:                           25
Model:                                33
Thread(s) per core:                   2
Core(s) per socket:                   8
Socket(s):                            1
Stepping:                             0
Frequency boost:                      enabled
CPU max MHz:                          4850.1948
CPU min MHz:                          2200.0000
BogoMIPS:                             7585.94
Flags:                                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm debug_swap
Virtualization:                       AMD-V
L1d cache:                            256 KiB (8 instances)
L1i cache:                            256 KiB (8 instances)
L2 cache:                             4 MiB (8 instances)
L3 cache:                             32 MiB (1 instance)
NUMA node(s):                         1
NUMA node0 CPU(s):                    0-15
Vulnerability Gather data sampling:   Not affected
Vulnerability Itlb multihit:          Not affected
Vulnerability L1tf:                   Not affected
Vulnerability Mds:                    Not affected
Vulnerability Meltdown:               Not affected
Vulnerability Mmio stale data:        Not affected
Vulnerability Reg file data sampling: Not affected
Vulnerability Retbleed:               Not affected
Vulnerability Spec rstack overflow:   Vulnerable: Safe RET, no microcode
Vulnerability Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:             Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Vulnerability Srbds:                  Not affected
Vulnerability Tsx async abort:        Not affected

Versions of relevant libraries:
[pip3] numpy==1.26.4
[pip3] nvidia-cublas-cu12==<IP_ADDRESS>
[pip3] nvidia-cuda-cupti-cu12==12.1.105
[pip3] nvidia-cuda-nvrtc-cu12==12.1.105
[pip3] nvidia-cuda-runtime-cu12==12.1.105
[pip3] nvidia-cudnn-cu12==<IP_ADDRESS>
[pip3] nvidia-cufft-cu12==<IP_ADDRESS>
[pip3] nvidia-curand-cu12==<IP_ADDRESS>
[pip3] nvidia-cusolver-cu12==<IP_ADDRESS>
[pip3] nvidia-cusparse-cu12==<IP_ADDRESS>
[pip3] nvidia-ml-py==12.560.30
[pip3] nvidia-nccl-cu12==2.20.5
[pip3] nvidia-nvjitlink-cu12==12.6.68
[pip3] nvidia-nvtx-cu12==12.1.105
[pip3] pyzmq==26.2.0
[pip3] torch==2.4.0
[pip3] torchvision==0.19.0
[pip3] transformers==4.44.2
[pip3] triton==3.0.0
[conda] Could not collect
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.6.1.post2@9ba0817ff1eb514f51cc6de9cb8e16c98d6ee44f
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
Could not collect

Model Input Dumps
No response
🐛 Describe the bug
I am running into an error when trying to run Pixtral12B on CPU. Here is the sample code I am using:
from vllm import LLM
from vllm.sampling_params import SamplingParams

model_name = "mistralai/Pixtral-12B-2409"

sampling_params = SamplingParams(max_tokens=8192)

llm = LLM(model=model_name, tokenizer_mode="mistral")

prompt = "Describe this image in one sentence."
image_url = "https://picsum.photos/id/237/200/300"

messages = [
    {
        "role": "user",
        "content": [{"type": "text", "text": prompt}, {"type": "image_url", "image_url": {"url": image_url}}]
    },
]

outputs = llm.chat(messages, sampling_params=sampling_params)

print(outputs[0].outputs[0].text)

And here is the output of the program:
python3 main.py
WARNING 09-21 15:31:18 _custom_ops.py:18] Failed to import from vllm._C with ImportError('libcuda.so.1: cannot open shared object file: No such file or directory')
INFO 09-21 15:31:19 config.py:1653] Downcasting torch.float32 to torch.float16.
WARNING 09-21 15:31:19 arg_utils.py:910] The model has a long context length (128000). This may cause OOM errors during the initial memory profiling phase, or result in low performance due to small KV cache space. Consider setting --max-model-len to a smaller value.
INFO 09-21 15:31:19 llm_engine.py:223] Initializing an LLM engine (v0.6.1.post2) with config: model='mistralai/Pixtral-12B-2409', speculative_config=None, tokenizer='mistralai/Pixtral-12B-2409', skip_tokenizer_init=False, tokenizer_mode=mistral, revision=None, override_neuron_config=None, rope_scaling=None, rope_theta=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.float16, max_seq_len=128000, download_dir=None, load_format=LoadFormat.AUTO, tensor_parallel_size=1, pipeline_parallel_size=1, disable_custom_all_reduce=False, quantization=None, enforce_eager=False, kv_cache_dtype=auto, quantization_param_path=None, device_config=cuda, decoding_config=DecodingConfig(guided_decoding_backend='outlines'), observability_config=ObservabilityConfig(otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=0, served_model_name=mistralai/Pixtral-12B-2409, use_v2_block_manager=False, num_scheduler_steps=1, enable_prefix_caching=False, use_async_output_proc=True)
Traceback (most recent call last):
  File "/home/joel/Documents/Code/Personal/pixtral/main.py", line 8, in <module>
    llm = LLM(model=model_name, tokenizer_mode="mistral")
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/entrypoints/llm.py", line 178, in __init__
    self.llm_engine = LLMEngine.from_engine_args(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 550, in from_engine_args
    engine = cls(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/engine/llm_engine.py", line 317, in __init__
    self.model_executor = executor_class(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/executor/executor_base.py", line 47, in __init__
    self._init_executor()
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 38, in _init_executor
    self.driver_worker = self._create_worker()
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 105, in _create_worker
    return create_worker(**self._get_create_worker_kwargs(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/executor/gpu_executor.py", line 24, in create_worker
    wrapper.init_worker(**kwargs)
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/worker/worker_base.py", line 449, in init_worker
    self.worker = worker_class(*args, **kwargs)
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/worker/worker.py", line 99, in __init__
    self.model_runner: GPUModelRunnerBase = ModelRunnerClass(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/worker/model_runner.py", line 960, in __init__
    self.attn_backend = get_attn_backend(
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/attention/selector.py", line 108, in get_attn_backend
    backend = which_attn_to_use(num_heads, head_size, num_kv_heads,
  File "/home/joel/Documents/Code/Personal/pixtral/.venv/lib/python3.10/site-packages/vllm/attention/selector.py", line 215, in which_attn_to_use
    if current_platform.get_device_capability()[0] < 8:
TypeError: 'NoneType' object is not subscriptable

Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

I think you need to install the ROCm version of PyTorch.

Thanks for the answer. I've tried installing the ROCm version of PyTorch, but I got the same result. But I am trying to run it on CPU, I have an AMD GPU, but it doesn't support ROCm.

I see, sorry I missed the part about wanting to support this on CPU. Let me update the title to reflect this.

Have you followed the installation instructions for CPU shown here?

@youkaichao how can I tell whether vLLM was compiled for CPU or GPU?

Yes, I've tried following the CPU tutorial. Same problem if I run it natively. I have a memory leak if I run it on docker. It takes 100G of ram, but there is already a discussion on that (https://github.com/vllm-project/vllm/discussions/309).

I think #8534 should fix the particular error you're running into by considering the case of device_capabilitt=None, however I am not sure whether the model can run. Can you try installing vLLM from source using the latest main branch?

this section shows vllm build flags:

vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled


fix: add a missing secret and update outdated information

What this PR changes/adds

Add a missing secret ARM_CLIENT_SECRET and related instruction in CD documentation
Update a data dashboard example

Why it does that

The method using Terraform also sets ARM_CLIENT_SECRET, and other pipelines such as run_azure_dataspace_tests.yaml are implemented to retrieve it from GitHub secrets, so Option2 instructions should also include a step to set it.
Since Azure deployment has already been removed from MVD repo the data dashboard example should be consistent with current content.

Linked Issue(s)
Closes #128
Checklist

[x] added/updated relevant documentation?
[x] formatted title correctly?

@aykhara @loubigard is this PR still relevant now that ARM deployment was removed from the Cloud CD pipeline in #139 ?


Unable to connect to <IP_ADDRESS>/24 IP Addresses

When using docker-machine, my docker-machine vm (and thus any containers therein) are unable to connect to hosts on my VLAN with <IP_ADDRESS>/24 addresses. This occurs because eth0 is configured on this subnet and does not appear to be modifiable.
docker@default:~$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:8D:BA:49
          inet addr:<IP_ADDRESS>  Bcast:<IP_ADDRESS>  Mask:<IP_ADDRESS>
          inet6 addr: fe80::a00:27ff:fe8d:ba49/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:245973 errors:0 dropped:0 overruns:0 frame:0
          TX packets:54958 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:277515200 (264.6 MiB)  TX bytes:3500591 (3.3 MiB)
docker@default:~$ curl -I http://<IP_ADDRESS>:8080
HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 20 Aug 2015 15:00:08 GMT
Content-Length: 202

docker@default:~$ curl -I http://<IP_ADDRESS>:8000
curl: (7) Failed connect to <IP_ADDRESS>:8000; No route to host
docker@default:~$ exit
jcderr@JCDerrs-MBP:~$ curl -I http://<IP_ADDRESS>:8000
HTTP/1.1 200 OK
Server: SimpleHTTP/0.6 Python/2.7.6
Date: Thu, 20 Aug 2015 15:01:23 GMT
Content-type: text/html; charset=UTF-8
Content-Length: 3722

jcderr@JCDerrs-MBP:~$

I'm using docker 1.8.1 and docker-machine 0.4.1, both installed by Docker Toolbox. I was able to resolve this by running
jcderr@JCDerrs-MBP:~$ VBoxManage modifyvm default --natnet1 "<IP_ADDRESS>/24"
jcderr@JCDerrs-MBP:~$ docker-machine restart default
[ snip ]
jcderr@JCDerrs-MBP:~$ docker-machine ssh default
docker@default:~$ curl -I http://<IP_ADDRESS>:8000
HTTP/1.1 200 OK
Server: SimpleHTTP/0.6 Python/2.7.6
Date: Thu, 20 Aug 2015 15:18:39 GMT
Content-type: text/html; charset=UTF-8
Content-Length: 3722

docker@default:~$

Could we get a virtual box driver flag to specify this?

Yeah I think we will probably run into similar issues the more we work with VPNs etc.


add: usage_items to return iter

Currently the usage method does the formatting, and there's no way to change it. This add usage_with_format that takes a closure.
private method usage_items returns the iterator of the options directly, usage_with_format sits on top it, and usage in turn sits on top of that.
/// Derive a formatted message from a set of options.
    pub fn usage(&self, brief: &str) -> String {
        self.usage_with_format(|opts|
            format!("{}\n\nOptions:\n{}\n", brief, opts.collect::<Vec<String>>().join("\n")))
    }

    /// Derive a custom formatted message from a set of options. The formatted options provided to
    /// a closure as an iterator.
    pub fn usage_with_format<'a, F: FnMut(Box<Iterator<Item=String> + 'a>) -> String>(&'a self, mut formatter: F) -> String {
        formatter(self.usage_items())
    }

Addresses https://github.com/rust-lang-nursery/getopts/issues/58

Update: add format_with_usage and make usage_items private.

Alright, this looks good now as far as I can see. Thanks @prasannavl for the contribution!


Is this project dead?

No commits recently. Many open PRs. Is that project dead?

Not quite, our development branches are also not publicly shown, we had to make changes that will allow for more wallet/blockchain features to ensure the application can keep running during times when there is network congestion for transactions and a fee needs to be added to ensure pubsub keeps working.

ok thank you


Add support for deepObject

Add support for deepObject style
Add test

Add support for single level deepObject style Query Parameters. e.g. /users?id[role]=admin&id[firstName]=Alex

Great work! In general looks good but some minor changes needed

Changes made as requested.
Thanks

Sorry for delay, was a bit busy

LGTM 👍
Great work @ctipggroup


Spelling errors cause misses in possible hits

https://slackarchive.silverstripe.org/slack-archive/message/272447#msg_272447
As per the message on Slack, a spelling error either in the query or the issue causes a miss

I’m not sure what we can do about that really. It’s essentially a wrapper for a GitHub search, which would also have the same issue

Me neither, I'm only forwarding the message because this repo is not publicly available :)

I guess a client side library to detect and add extra search terms for suggested typos might work

Quick side note, this repo is public


How to use cloud-provider on AWS?

I've added the cloud-provider.yml to my CFCR deployment but kube-controller-manager is failing with:
I0407 06:32:00.756032       1 controllermanager.go:108] Version: v1.9.5
I0407 06:32:00.759799       1 leaderelection.go:174] attempting to acquire leader lease...
I0407 06:32:00.774871       1 leaderelection.go:184] successfully acquired lease kube-system/kube-controller-manager
I0407 06:32:00.779666       1 event.go:218] Event(v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system", Name:"kube-controller-manager", UID:"3e9fb9b4-3a0d-11e8-a1c8-06c67689547c", APIVersion:"v1", ResourceVersion:"17055", FieldPath:""}): type: 'Normal' reason: 'LeaderElection' 152eb4e4-1bdb-43e6-8981-cca89208da04 became leader
I0407 06:32:00.805756       1 aws.go:1000] Building AWS cloudprovider
I0407 06:32:00.805829       1 aws.go:963] Zone not specified in configuration file; querying AWS metadata service
E0407 06:32:01.155802       1 tags.go:94] Tag "KubernetesCluster" nor "kubernetes.io/cluster/..." not found; Kubernetes may behave unexpectedly.
W0407 06:32:01.155835       1 tags.go:78] AWS cloud - no clusterID filtering applied for shared resources; do not run multiple clusters in this AZ.
F0407 06:32:01.155902       1 controllermanager.go:150] error building controller context: no ClusterID Found.  A ClusterID is required for the cloud provider to function properly.  This check can be bypassed by setting the allow-untagged-cloud option

The only reference I can see to tags is in https://github.com/cloudfoundry-incubator/kubo-deployment/blob/e38ebfa72c4fc109e38878c9ab20f3c2417f4ecd/bin/deploy_bosh#L128 - so I did the same and added manifests/ops-files/iaas/aws/bosh/tags.yml to my bosh create-env and redeployed my CFCR with the following command:
bosh deploy cfcr-compiled-deployment/cfcr.yml \
  -o cfcr-compiled-deployment/ops-files/vm-types.yml \
  -v master_vm_type=default \
  -v worker_vm_type=large \
  -o cfcr-compiled-deployment/ops-files/allow-privileged-containers.yml \
  -o cfcr-compiled-deployment/ops-files/iaas/aws/cloud-provider.yml \
  -o cfcr-compiled-deployment/ops-files/iaas/aws/add-master-credentials.yml \
  -o cfcr-compiled-deployment/ops-files/iaas/aws/add-worker-credentials.yml \
  -v aws_access_key_id_master=$(bosh int bucc/vars.yml --path /access_key_id) \
  -v aws_access_key_id_worker=$(bosh int bucc/vars.yml --path /access_key_id) \
  -v aws_secret_access_key_master=$(bosh int bucc/vars.yml --path /secret_access_key) \
  -v aws_secret_access_key_worker=$(bosh int bucc/vars.yml --path /secret_access_key)

Is there some other operator file I need to use in addition to aws/cloud-provider.yml and the aws/add-{master,worker}-credentials.yml files?

@drnic there is a tag assigned in terraform https://github.com/cloudfoundry-incubator/kubo-deployment/blob/master/docs/terraform/aws/platform/kubo-infrastructure.tf#L93
Later this tag is exported in jumpbox https://github.com/cloudfoundry-incubator/kubo-deployment/blob/master/docs/terraform/aws/platform/kubo-infrastructure.tf#L392

I'll check, but should my AWS cloud-config also add this tag to each vm_type/cloud_properties like you're doing with GCP?

As per https://github.com/starkandwayne/cfcr-compiled-deployment/#aws-cloud-provider - do I actually need to add a KubernetesCluster tag to my bosh/0 VM? Or just to the CFCR master/worker VMs?

@drnic The KubernetesCluster tag is used by the AWS cloud provider to identify the Kubernetes Cluster resources, therefore bosh/0 does not need it.
The ops-file name lb.yml reflects the fact that tagging is primarily used for AWS load balancing,
it also looks like the tag itself has been changed to "kubernetes.io/cluster/..." in the latest AWS CP
code, however, @mordebites or @BenChapman should be able to discuss it further on Monday.

Perhaps we rename lb.yml to cloud-provider-tag.yml?
We can maybe merge lb.yml and cloud-provider.yml since it's not working with cloud-provider.yml alone.
@glestaris @seanos11 what do you think?

@mordebites @seanos11 - any updates on this issue?

We documented using AWS cloud provider here
Does it solve your problem?

Closing the issue due to no response. Feel free to reopen it if needed.


Cannot read properties on API PUT call

What version of Node.js are you using?
16.13.1
What version of npm are you using?
8.3.0
What operating system are you using?
Linux (ubuntu 20.04)
Describe the Bug
Error:
    name: 'TypeError',
    message: "Cannot read properties of undefined (reading 'isDispatch')",
    status: 500

Expected Behavior
The call should succeed and the target user's status should be updated with the value sent.
To Reproduce

fixed in 3ac41f6


Compression for serialized objects

Feature Request 🛍
Support compression of serialised Concerto objects.
Use Case
ASTs and serialised objects in general are verbose. They compress well due to repeated JSON properties, like $class.
Possible Solution
Provide compress/decompress functions within Concerto core or util.
Context

Working with large models getting HTTP timeouts or other storage issues

Detailed Description
Two approaches, which may be complimentary have been explored.
Class Map
This specifically targets the $class properties within the JSON objects produced by the Serializer. The JSON tree is visited to build a Map of all $class values in the JSON. $class entries that start with the same prefix as the root $class are shortened by removing the common prefix.
This map is used to replace the $class properties with indexes into the map, resulting in a JSON object that looks like:
{
  "$class": "1",
  "models": [
    {
      "$class": "2",
      "decorators": [],
      "namespace"<EMAIL_ADDRESS>      "imports": [],
      "declarations": [
        {
          "$class": "3",
          "name": "SSN",
          "location": {
            "$class": "4",
            "start": {
              "offset": 22,
              "line": 3,
              "column": 1,
              "$class": "5"
            },
            "end": {
              "offset": 124,
              "line": 9,
              "column": 1,
              "$class": "5"
            }
          },
}],
"$version": 1,
  "$classMap": {
    "1": ".Models",
    "2": ".Model",
    "3": ".StringScalar",
    "4": ".Range",
    "5": ".Position",
    "6": ".Decorator",
    "7": ".ConceptDeclaration",
    "8": ".StringProperty",
    "9": ".DecoratorString",
    "10": ".ObjectProperty",
    "11": ".TypeIdentifier",
    "12": ".IntegerProperty",
    "13": ".MapDeclaration",
    "14": ".StringMapKeyType",
    "15": ".StringMapValueType",
    "16": ".EnumDeclaration",
    "17": ".EnumProperty"
  },
  "$prefix"<EMAIL_ADDRESS>}

LZ Compression
LZ compression is used on the JSON object (either the source object as-is, or the object after the Class Map has been built). Resulting in a JSON object that looks like:
{
  "compressed": "ᯡࠩƬ΀䌦㧤Ɛ䄣氧ァ☢㠥暠㨡㛻熤娠䷒䀠䁦ᄠ᥺၌䛛ࠣK嚴≄ú ",
  "format": "LZ_UTF16"
}

Results
Class Map: approximately 1.6x compression
ClassMap + LZ: approximately 12x compression
Just LZ: approximately 10x compression

For LZ compression, how is the byte stream converted into a string in your example? I think you'd want to consider two things.

First, you may want to consider the production of strings that would be invalid in UTF-16 (e.g. with unpaired surrogates), which is commonly used by languages to hold strings in memory. Invalid UTF-16 strings aren't necessarily bad, because they rarely cause actual problems, but it's worth investigating if you're going to be using high Unicode characters like that.
Second, given that UTF-8 is pretty much the ubiquitous standard for text encoding in storage and transmission, I think you'd want to be careful that the encoding of the compressed bytes into a string produces Unicode code points that will encode efficiently into UTF-8. For example, code points from 0-127 encode into a single byte, wasting 12.5% of the bits. Code points from 128 to 2047 encode into two bytes, wasting 31.25% of the bits. Code points from 2048 to 65535 encode into three bytes, wasting 33.33% of the bits, and higher ones waste over 36%. Basically, you'd be better off encoding everything into low ASCII, except that low ASCII has 34 characters that must be escaped in JSON (making them take either two or six bytes instead of one), including the NUL character which causes problems with many systems (given that much code treats NULs as terminators). So, you should exclude from the alphabet those characters that must be escaped, and you should exclude NUL characters, given that they sometimes cause problems. (For example, Postgres can't store a string containing NUL.) Excluding those 34 characters means low ASCII wastes at least 18.1% of the bits, but that minimum requires a sophisticated algorithm to achieve. Considering only simple algorithms, base-64 wastes 25% and base-85 wastes 20%. 20% is close enough to 18.1%, so simply using base-85 (whose standard alphabet requires no escaping in JSON) is probably your best bet.

For the class map, you'd almost certainly benefit more from a general string table that applies to both property names and property values. Also, the string table could be represented more efficiently in JSON as an array rather than a dictionary. And for $class properties, I'd suggest a mechanism that's probably better than a prefix in general - given that in many cases the prefix will be empty or will be only "com." or something - split the $class into namespace+version and type, and index them both into the string table separately<EMAIL_ADDRESS>might become "0.1" (where 0 is the index of<EMAIL_ADDRESS>and 1 is the index of "ConceptDeclaration"). Abbreviated $class values, when implemented, would be recognized by not having a period.


Allow installing packages directly (not using Git)

See https://github.com/raxod502/straight.el/issues/148#issuecomment-325849696 and https://github.com/raxod502/straight.el/issues/148#issuecomment-325875032.

My plan:

Factor out the :host handling into an extensible system which can have hosts added dynamically.
For each host, add a function that generates a tarball download URL for any given revision, or returns nil if direct download is not supported. We could even support things like CGit, I think.
Controllable by a user option and/or recipe keyword, download a tarball instead of a Git repo the first time, and write a file .straight-head or something which contains the SHA of the tarball revision.
Repository management operations, instead of doing stuff with Git, just download a new tarball when you need to do a checkout. Alternatively you can ask for them to be converted into full Git repositories.
Using find-file-hook or similar, files inside tarball repositories are marked as read-only, and if you try to edit them then straight.el first asks to convert them to full Git repositories (in-place).

The main problem with this approach is that I'm not sure how to get the revision SHA when you're cloning master (i.e. initially). Any ideas?

cc @vyp @JAremko @et2010 @stonejiajia

Amazing! Thanks.
Requiring two network calls is of course not ideal but I think it would still be an improvement, especially when cloning repositories in parallel.

This feature might not only be useful to reduce disk space usage. I just encountered a situation when Emacswiki package (dired+) in https://github.com/emacsmirror/ is quite outdated in comparison with the wiki version. This problem is likely unavoidable because packages in emacsmirror are updated manually. I would prefer if straight.el provided an option to download Emacswiki packages directly from Emacswiki to ensure the latest version.

Sorry, but installing packages from Emacswiki will never be supported. See https://github.com/melpa/melpa/pull/5008 for the reasoning. This issue is specifically for installing snapshots of packages that are hosted on GitHub and similar registries.

Sorry, but installing packages from Emacswiki will never be supported.

To be frank, I thought that straight.el is possibly the safest way to install packages from such untrusted sources. Unlike direct download, I can easily view diff of the package when updating. Hence, I can directly review any suspicious changes in the package.

What would straight.el be doing to produce such a diff, and how would it differ from a manual download? I don't see how straight.el downloading an untrusted file would be any more secure than you doing the same.
 I don't think straight.el can do anything for you here; installing things directly from Emacswiki is just inherently unsafe. What you want is a Git mirror of Emacswiki, which is exactly what Emacsmirror is. Perhaps there is some problem with the synchronization code that Jonas has yet to address, which is causing that package to be out of date. It could be worth looking into.
There's also https://github.com/emacsmirror/emacswiki.org; perhaps something can be extracted from there. But I don't think anything can be done on the straight.el side; the crucial thing that is missing is an up-to-date Git mirror, as that is what would support a secure installation of Drew's packages. Well... "secure" compared to the alternative, at least.

What would straight.el be doing to produce such a diff, and how would it differ from a manual download? I don't see how straight.el downloading an untrusted file would be any more secure than you doing the same.

I imagine that straight.el can create local git repo on first download
and then automatically create an "update" commit when the package files
change. That commit will contain diff from the last downloaded version
of the package.

Hypothetically such a thing could be done, but it would be a totally novel feature---nothing remotely similar is currently supported in straight.el. I'd really rather not go there in straight.el, as it would add significant complexity and we should be discouraging such outdated methods of package management anyway. In my opinion if the user wants to achieve such functionality, they should write their own script, since it is a rather idiosyncratic use case compared to everything else that straight.el supports, and many UI decisions would have to be made.


Implement passphrase prompt

Summary
Implement passphrase prompt for Safari and Status Bar.
Motivation
When Pass for MacOS need unlocked and passphrase free gpg session for decrypting local storage, instead of manual passphrase entering inside terminal, prompt user for passphrase in the same pop-up window.
It will be a good option to implement Safari Session based ttl cache. After entering passphrase inside Safari, cache passphrase for this session and use without prompt. When user quits Safari, local passphrase cache clears out.
Is your feature request related to a problem? Please describe.
It seems that Pass for MacOS only works when you entered passphrase in actual pass inside terminal.
After entering passphrase inside terminal i'v got some time, which is defined in gpg-agent.conf, to use Pass for MacOS. By default it's only 10 minutes.
When time expires I need to re-enter my passphrase again.
It's ok for CLI use, but not for Safari/Status Bar.
Extending ttl time isn't an option.
Describe alternatives you've considered
As I described above, increasing ttl in gpg config isn't an option, but it might be an option for Pass for MacOS.
Implement local passphrase cache storage and add option for custom ttl in App Preferences.
And of course, you need to encrypt/decrypt this local storage with symmetric encryption algorithm.
Additional context
Nothing to add here :(

Thank you for the suggestion, but I'm afraid this won't be possible (or desirable).
A little explanation. How Pass for macOS works is that it uses the shell command to directly interact with pass using Swift's Process() class. So, when the user selects a password to decrypt, Pass for macOS literally calls sh -l -c "pass -c <path>". An here, I am not able to handle the passphrase and give it to GnuPG's pin entry.
That was a deliberate decision to do it that way. Otherwise I would have to handle the user's passphrase. The only secure way I can think of to do this is to use macOS' keychain to securely cache the password. Alternatively, I would have to either keep it in RAM or write it to disk, which would require the use of some kind of crypto, which would again be an unnecessary security risk. Additionally, there is no way to enter the passphrase in GnuPG's pin entry from the Process() class.
Anyway, I would propose the following:
First, users could use a GUI-based pin entry tool like pinentry-mac (can be installed with brew install pinentry-mac. This will prompt the GUI every time the gpg-agent clears its cache. Additionally, users can decide whether they want to store the passphrase in the macOS keychain. This is probably the most secure way.
Second, I could find a way to check if the passphrase is still cached  and if not notify the user that they have to enter the passphrase. But I'm not sure if this makes any sense as I would not be able to do this within Pass for macOS unless the user started the gpg-agent with the --allow-preset-passphrase option.
Third, I could stop using pass but instead use gpg directly to decrypt the password files and provide the passphrase every time. But again, this would require that Pass for macOS handles the gpg passphrase, which is a security risk in my opinion.
These are the ideas that currently come to my mind spontaneously. But I  appreciate any other suggestions. Maybe there is a feasible way that I just don't see at the moment.

Thank you for the reply!
Yeah, second and third solutions are not trivial + risky and it breaks "Unix way" philosophy:

Pass for MacOS -> GUI wrapper for pass
pass -> CLI wrapper for gpg

The first solution is fine, but it needs to be documented :)

I added a GUI-based pinentry as a requirement to the README. I hope this is an acceptable solution. I noticed that Browserpass does the same, so I decided to follow their example.


[x] The buildserver is happy.
[x] The PR is rebased with current master.

Checklist

[ ] I added unit tests for my code
[ ] I fully described what my PR does in the documentation
(not in the PR description)
[ ] I fixed all affected documentation
[ ] I fixed all affected decisions
[ ] I added code comments, logging, and assertions as appropriate
[ ] I mentioned every code or binary not directly written or done by me in reuse syntax

Review

[ ] Documentation is conforming to our Documentation Guidelines
[ ] Examples are well chosen and understandable
[ ] Code is conforming to our Coding Guidelines
[ ] Code is consistent to our Design Decisions

Will update docs in this PR soon

@markus2330 everything resolved :)
I'll change the branch of the jenkins job to master once you have merged this PR.

@lukashartl done, please fix the Jenkins job :rocket:

fixed 🚀

Perfect, I love it! I just removed the "seeds" link. Works super fast! :rocket: