Python2/Python3 compatibility

So, I'm close but for some reason on my install image in docs don't show up in python2 and are a little smaller in python3.
I'm gonna fix this even if it kills me.
Todo:

[x] Figure out how to render a transparent PDF as white (-flatten doesn't work for multipage PDFs)
[ ] Make the images the right size
[x] Clean up the string.join issues in reportlab_paragraph
[ ] Fix background for tr's

Got the images showing up in Python2 again due to a StringIO/BytesIO issue. Images are still a little smaller than the reference pngs, but they are identical across Python2 and 3 now! :dancer:

Todo:

[ ] Figure out how to render a transparent PDF as white
[ ] Make the images the right size
[ ] Clean up the string.join issues in reportlab_paragraph

People should be able to review the current state of rendering here: https://preview.c9users.io/legostormtroopr/py3_xhtml2pdf/testrender/output/index.html

It seems that the last stumbling block is that <tr>s have an issue with background colors, but that seems to be common in browsers as well, and apart from some flattening issues when converting from PDF to PNG, the lack of support for <tr> backgrounds is now the only difference.
Thoughts on how to proceed?

No thoughts on the  issue, sorry :( But great work, hoping to see this merged soon. To wrap it up, you can create a single commit once done using this technique:
http://makandracards.com/makandra/527-squash-several-git-commits-into-a-single-commit

@benjaoming Cheers for the link, I have a bad habit of using commit messages as a train of thought. I can clean it up when its more finalised.
It seems that there may be a difference between my version of ImageMagick (6.7.7-10) and that used for the reference images which may be causing some of the differences.

Ok, so I have a breakthrough on the tr issue
Python 3 is stripping all inline background colors rules in tables, but no where else. Python2 is doing it just for <tr> cells.

Python2
Python3

@LegoStormtroopr are you still working on this? :)
I would also like to know if you think I should close #222 because it seems from your comments you started out with the original work from that PR?

Hey, thanks for the pull on this. It had a few quirks that I just wanted confirmation on. If there are issues, just assign blame back this way and I'll clean them up.
Hopefully this gets us a little closer to a Py3 build. Thanks for all your hard work!

I feel like there's a pretty clean slate now, as long as people make PRs against the 'develop' I should manage to merge things easily (I messed up by merging some things into develop and others into master, so it took quite some time to clean up).
Please don't hesitate to deploy the current develop branch into whatever you're working on and feel assured that fixes get merged quickly.

Btw did the layout issues go away? I found an issue regarding comparison and implemented __eq__ and __lt__ because Python3 doesn't use __cmp__:
https://github.com/xhtml2pdf/xhtml2pdf/blob/develop/xhtml2pdf/w3c/css.py#L297

i never did get this resolved, but thanks for accepting :)

Your contributions would be very warmly welcomed!! The Python3 stuff that you've worked on really took the project forwards, it was seeing such efforts going to waste that made me take up maintainership.
Btw there's still the issue that you identified regarding background table colors, I created that as a separate issue after discovering it on my own :) #219


App for Android

@nt1m , do you authorize me to publish this app in my developer page on Google Play Store?

@Plasmmer As long as you add a link back to the github repo in the description, feel free to publish it.
Something like:
"Source code: https://github.com/nt1m/HTML5AudioPlayer/"

I'm going to close this so we can do everything in #89

Hey, do you have an Google Play developer account?

Reference: https://github.com/nt1m/media-player/issues/168


Update Connector.cpp

fix compiling error in gcc 6.3

Thanks your PR. This error already fixed.
https://github.com/IronsDu/brynet/commit/f467234c3c1e81affa3c953f86aa958fd3d0ceda#diff-4bb0ba87d706f4098b68a10d8e526872R301 .


Enhance i18n

Move translations to separate JSON files for easier tooling.
Include Localise tools for VS-Code.
Add translations for org-management page.
Add english translations for other pages and components.
Editorial changes on some existing translations.

Resolve #40

Looks good. The only thing I've noticed is that under "Manage my Account" the items are not translated into English.
I don't see anything that's obviously wrong in the code. Everything else seems to be translated properly.

fixed...


Support external LiteLLM proxy

Is your feature request related to a problem? Please describe.
I use R2R Docker and want to connect to an external LiteLLM proxy on the same local network (e.g., http://localhost:4000). This would enable seamless integration with providers like Voyage, Cohere, AWS Bedrock, or any other service that supports an OpenAI-like API. Typically, this can be done using the environment variable OPENAI_BASE_URL='http://localhost:4000'. However, neither the OPENAI_BASE_URL environment variable nor the api_base configuration parameter are recognized when the "openai" provider is set in the R2R config file.
Describe the solution you'd like
Enable the Docker (r2r service) to accept the OPENAI_BASE_URL variable from the environment.
Describe alternatives you've considered

Modify the code in providers/{llm, embeddings}/openai.py to accept an api_base configuration parameter.
Create a new provider (perhaps named "litellm") that requires an api_base configuration parameter.

This is a fine proposal, would you mind making a PR or would you like us to?

also, additional follow-up here. LiteLLM is already the default provider in R2R, read more here - https://r2r-docs.sciphi.ai/cookbooks/basic-configuration

merged your PR, also adding in more environment variables for those that would like to communicate directly with their target LLM - https://github.com/SciPhi-AI/R2R/pull/816

I believe the correct environment variable is OPENAI_API_BASE.
not OPENAI_BASE_URL.


add a query for type ids

This is a proposal for a new endpoint /v2/types, which simply returs the list of distinct entity type ids in the system. It seems that this functionality is not available yet.
There is also a default implementation available in the class BaseTranslator, which is probably not super efficient, but makes it work for all translators that implement query_ids.
No tests yet, since I couldn't make pytest work on my machine :(

Hello @cnoelle! Thank you for the proposal.
I'm curious though, what's your use case? I'm struggling to find a good one. Is this endpoint supposed to help discover what kind of entities are in Quantum Leap? If so, how's that information going to be useful to the client? E.g. say
GET /types

returned
{ "types": [ "X", "Y", "Z" ] }

How could the client use that information in any meaningful way without prior knowledge of what X, Y and Z are? Perhaps, the client knows all types in the DB have a common attribute? If so, how?

Hi @c0c0n3 ,
the idea is exactly to discover the entity types present. I was thinking how a visualisation tool could allow the user to filter the data to be displayed. In a first step, it would display the available entity types, after selecting one of them the corresponding entity ids, then the attribute(s) of the selected id. The latter two filters can be implemented efficiently using the available REST endpoints (/v2/entities?type= and /v2/entities/<ENTITY_ID>), but the first one is missing.

The client may also know certain entity types from a specified data model, e.g. https://fiware-datamodels.readthedocs.io/en/latest/Environment/AirQualityObserved/doc/spec/index.html.

visualisation tool could allow the user to filter the data to be displayed

Ha! I wasn't thinking of the human sitting behind the screen. Yes, now it makes a lot of sense to me too, thanks for clarifying. Supposedly the person exploring your visualisation will have some knowledge of what those entity type names mean.

types from a specified data model

I wouldn't bank on that, at least not until we support NGSI-LD. In practice you'll see data in all sorts of wonderful shapes :-)
One thing that springs to mind though is to use our metadata table to help the user pick a given entity type based on attributes of interest. Your query could also return the attribute names of those entities and as an added benefit, a plain query to the metadata table is going to be more efficient than calling query_ids. Killing two birds with one stone?

no follow up in the last 6 months, this PR is closed.

no follow up in the last 6 months, this PR is closed.


Add support for non-UTC timezones

This diff makes it possible to provide custom timezones to the glog
formatter, such as chrono::Local.
It keeps Glog::default() the same, so it should be backwards compatible.

thanks for doing this—I can't believe I hard-coded this to use UTC timestamps. That's my bad!
I'll do a more detailed review later today (vet appointment first...), but here are some quick notes:

Since we're adding a generic parameter, we'll need to give it a default in order to not break existing implementers, but a breaking change here isn't the worst. We can always bump to 0.2.
I think we'll want to mimic how we handle timers in other formatters in fmt (see implementors on https://docs.rs/tracing-subscriber/latest/tracing_subscriber/fmt/trait.FormatEvent.html). Specifically, we'd want to use the FormatTime trait and remove this crate's dependency on Chrono—all timestamp formatting should be sourced from tracing-subscriber.

Turns out the API I want is only possible for formatters that live in tracing-subscriber because the timer is a property on Format, not the layer/subscriber. I'm working with Eliza about exposing that information.


Multiple cascading search

Add the ability to have multiple search criteria like data-mapping="title|og:title". The page actually created automatically would be according to 1st criterial in the list.
In case one changes the criteria later, the conversations will not get unlinked from the page.

Thanks for the suggestion, but I'm still not sure about this. This means we'd have to pass all of the page's attributes to the widget.
To be honest, users can solve this manually by just renaming the existing discussions' titles to reflect the new mapping. It might be a bit of a heavy task if you've got a lot of discussions, but you can also write a script for that.
If someone comes up with a PR, I'll consider it.


Fixed typo in Profile settings, 'Not Susbcribed'

Fixes #439
Describe the changes you have made in this pr -
Typo in Profile settings as described in issue #439
Screenshots of the changes (If any) -

Coverage remained the same at 82.582% when pulling<PHONE_NUMBER>9128a41d5a8260bfba5d36061ddb2b on phyzicist:typo-susbcribed#439 into 3bf08ee1d801e8954d663976391b771c8b867b45 on CircuitVerse:master.


My Feedback

web is very smooth, no problems, no bugs/errors, everything looks good
nice ui/ux with not too crowded background color available features work well
smooth faucet transactions no problems

@angelquerty Thank you for your testing and we hope to continue delivering high quality features and improvements!


Collate Code

Coverage remained the same at 90.774% when pulling 7088543d454262c0f2d610b3c7eae890b664a021 on jaivigneshvenugopal:Collate_Code into 31a528139bf99446dc30b062c9b881bad538baf7 on CS2103AUG2017-T17-B1:master.


robotgo.Move moves cursor to invalid position on multi-monitor setup

Robotgo version (or commit ref): v1.0.0-beta5
Go version: go version go1.17.6 windows/amd64
Gcc version: gcc.exe (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0 (recommended by README)
Operating system and bit: Windows 10 64bit
Resolution: 1920x1080 x3 - 3 monitors with same resolution, middle one set a primary/main
Provide example code:

package main

import (
	"fmt"
	"github.com/go-vgo/robotgo"
)

func main() {
	robotgo.Move(10, 100)
	robotgo.MilliSleep(1) // optional
	x, y := robotgo.GetMousePos()
	fmt.Println(x, y) // outputs -1910 99
}

Description
robotgo.Move moves cursor to absolute X, Y position that is passed to the function. robotgo.GetMousePos returns position of the cursor, which used immediately after robotgo.Move should be exactly the same, assuming no user input.
Since robotgo.Move moves cursor to invalid location since<EMAIL_ADDRESS>at least on multi-monitor setup like my own - 3 monitors with 1920x1080 resolution, middle one being set as primary/main, therefore starting with X 0, Y 0, and the left one has negative X positions.

I will check it.

Fixed in beta5.1, and not support multi screen in Windows now.

New test:
Setup:
Windows 11 (21H2, build 22000.556)
go version go1.18 windows/amd64
gcc.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0

Code:
package main

import (
	"github.com/go-vgo/robotgo"
	"fmt"
)

func main() {
	// Setup: 3 1920x1080 screens - middle one is primary
	moveTo(0, 0) // middle screen
	moveTo(10, 100) // middle screen
	moveTo(-1900, 100) // left screen
	moveTo(1930, 100) // right screen
}

func moveTo(x int, y int) {
	robotgo.Move(x, y)
	robotgo.MilliSleep(100)
	x, y = robotgo.GetMousePos()
	fmt.Println(x, y)
	robotgo.MilliSleep(900)
}

Result:
go get<EMAIL_ADDRESS>| go run .
go: downgraded github.com/go-vgo/robotgo v1.0.0-beta5 => v0.100.10
0 0
10 100
-1900 100
1930 100

go get<EMAIL_ADDRESS>| go run .
go: upgraded github.com/go-vgo/robotgo v0.100.10 => v1.0.0-beta3
-1920 0
-1910 99
-1920 99
9 99

go get<EMAIL_ADDRESS>| go run .
go: upgraded github.com/go-vgo/robotgo v1.0.0-beta3 => v1.0.0-beta5
-1920 0
-1910 99
-1920 99
9 99

go get<EMAIL_ADDRESS>| go run .
go: upgraded github.com/go-vgo/robotgo v1.0.0-beta5 => v1.0.0-beta5.1
-1920 0
-1891 99
-1920 99
-1 99

Well, something did change (-1891 vs -1920 in X), but it's not fixed - values from robotgo.Move still don't match values from robotgo.GetMousePos(), be it outside main screen or not.
Side note: I have taskbar on the right monitor.
Windows considers anything to the left or up from primary screen to be in negative position. However, when image search is done, it takes a screenshot and returns position of found image within the screenshot, which cannot be negative. At least this is how I think it works as far I tested it all. Not directly related to the issue, but this is something to consider.

meet with the same issue in multi-screen scene

have any plan to support mutiscreen on windows and  fix this?

Maybe I've found the reason and fixed it.
PR: #697
Detail here: https://github.com/go-vgo/robotgo/pull/697#issuecomment-2404929921


No documentation?

I see the examples but no clear API for the web components. Am I missing where the API/documentation is?

Sorry about that, we are working in the next version and we expect to launch a better documentation and website.


A strange bug with rekey.

I am using PRAGMA to call the rekey function.
After decrypting the database with pragma rekey='';, the following pragma rekey='somenewkey'; almost always fails.
In order to encrypt the database again, I must reopen the database, or to execute pragma rekey=''; several times. After one of these, the following pragma rekey='somenewkey' successfully encrypts the  database.
On encrypted database pragma rekey='' always successfully decrypts the database.
On all these commands there is no error returned by sqlite3_step(). The only difference is that the successful rekey (with nonempty key) returns SQLITE_ROW and the unsuccessful returns SQLITE_DONE.
On the other hand, rekey with empty key (decrypt database) always return SQLITE_DONE, but still decrypts the database.
Also the bug is related on the decrypt operation (rekey with empty string value). When calling rekey for re-encrypting the database with new key, it always success.

Unfortunately I am unable to reproduce the issue with the latest version of sqleet.
The described issue looks suspiciously similar to "Cannot set key again if having removed key" #26 fixed two weeks ago. Can you confirm that you are running the latest master of sqleet? The #26 fix should also be included in the updated v0.29.0 release package if downloaded no longer than a fortnight ago (sorry about the ambiguous v0.29.0 version number, the process of publishing sqleet bugfix releases needs some thought).
If this turns out to be another bug, my prime suspects are failing sqlite3RekeyVacuum() call on sqleet.c:575 due to size_hook() and improperly initialized Codec structure. If possible, please provide a sample database file for triggering the bug. It helps a lot in investigating and fixing the bug.

Minor complaint: sqlite3_rekey(DB, 0, 0) fails with SQLITE_ERROR. IMO, when nKey==0 the zKey should be ignored.

I fully agree. The oversight is the result of the official SQLite3 shell never calling rekey with zKey == NULL (even if rekeying with an empty string). This has now been fixed in master. Thanks again for improving sqleet.

The #26 fix should also be included in the updated v0.29.0 release package if downloaded no longer than a fortnight ago (sorry about the ambiguous v0.29.0 version number, the process of publishing sqleet bugfix releases needs some thought).

Yes, that was exactly the case! I have downloaded v0.29.0, but unfortunately the non-fixed version. Later didn't download again, because it was the same version 0.29.0;
After downloading the latest changes from the master and compiling all bugs disappeared. Thanks.


EEG Quality Control?

hey @poldracklab/owners ! I know mriqc is for MRI, but since this it's also state of the art for QA I wanted to open up discussion (and get your thoughts on) what are best practices for EEG QA. I've talked to a lot of labs that still use Matlab (and possibly because Matlab does have a one up with respect to signal processing, this won't change for a while?) but I think a bids-app that is for the processing of EEG QA would be fairly useful for the neuroimaging community. Matlab and the lovely licensing it requires needs to not be a thing that we have to deal with on a shared resource anymore! I know that MNE --> https://github.com/mne-tools/mne-python is a nipy tool for EEG processing, would discussion around bids-ification of that be a place to start? Is there another tool (I just saw this on Frontiers --> https://www.frontiersin.org/articles/10.3389/fninf.2018.00030/full) that might be better? I'll ping some of the users that I'm chatting with on here to join the discussion. :phone:

Hey @vsoch. https://neurostars.org might be a better forum for such a broad discussion. I don't know the answers to your questions, but happy to ask around.

Thanks! I totally had forgotten about neurostars, here is the post --> https://neurostars.org/t/quality-analysis-for-eeg-container/1785
I got the error message "only two links per new user" or something like that. Terrible.


Reimplement Mutex with C++'s <mutex> (plus more)

Main:

It's now implemented thanks to <mutex>. No more platform-specific implementations.
Doesn't need allocation/deallocation anymore. It can live in the stack and be part of other classes.
Because of that, it's methods are now const and the inner mutex is mutable so it can be easily used in const contexts.
A no-op implementation is provided if NO_THREADS is defined. No more need to add #ifdef NO_THREADS just for this.
MutexLock now takes a reference. At this point the cases of null Mutexes are rare. If you ever need that, just don't use MutexLock.
Thread-safe utilities are therefore simpler now.

Misc.:

_Mutex is no longer a Reference, but an Object.
ScopedMutexLock is dropped and replaced by MutexLock, because they were pretty much the same.
Every case of lock, do-something, unlock is replaced by MutexLock (complex cases where it's not straightfoward are kept as as explicit lock and unlock).
ShaderRD contained an std::mutex, which has been replaced by Mutex.

Just curious, did you notice any performance improvements because of this?

I haven't measured, but I'd be surprised if performance wasn't better after this.

Thanks!


add feature #26514

This PR is adding a modifier class to jumbotron .jumbotron-full that makes it height 100vh.

This PR is adding a modifier class to jumbotron .jumbotron-full that makes it height 100vh.

hi @andresgalante  thanks for the replay, it make sense , true i would like to contribute  with you guys ,
what is the hottest issues need to be fixed, so I can contribute more with you under which label ?

Hi @moogacs great!
There are many ways you can contribute. If you want to write CSS, look issues under CSS. If you want to help with JS there are JS issues.
If you like to write, you can read the docs and help improve them.
Also, you can help the community by helping people on the slack channel, replying to issues, or reviewing PRs.
If you are using Bootstrap for one of your projects you can fix things that you see broken or suggest features that you'd like to see.
Thanks!

Closing this out since the recommended fix here would be viewport sizing utilities instead of component-specific modifiers.


Timestamp Project Instructions need to be adjusted

Describe your problem and how to reproduce it:
Go to: https://www.freecodecamp.org/learn/apis-and-microservices/apis-and-microservices-projects/timestamp-microservice
Click on: "... similar to this: https://curse-arrow.glitch.me/."
It will take you to: https://curse-arrow.glitch.me/
User story #5 says: "...having the structure {"error" : "Invalid Date" }"
Compare to the following:
Go to: https://www.freecodecamp.org/learn/apis-and-microservices/apis-and-microservices-projects/timestamp-microservice
Click on: "Start this project on Glitch using this link or..."
it will create a new glitch project
Go to: the public link of that new glitch project
User story #5 says: "...having the structure {"unix": null, "utc" : "Invalid Date" }. It is what you get from the date manipulation functions used above."
User story #5 are different, the one that passes as the solution is the first one, so I think the user story in the glitch project to clone must be corrected to avoid confusion.
Add a Link to the page with the problem:
https://www.freecodecamp.org/learn/apis-and-microservices/apis-and-microservices-projects/timestamp-microservice
Tell us about your browser and operating system:

Browser Name:  Chrome
Browser Version: 80
Operating System: Mac OS

If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):

I have pushed a fix for this to the target repo.
https://github.com/freeCodeCamp/boilerplate-project-timestamp/pull/32


Add macro for computing matrix math on RCP instead of CPU

See title.

Honestly, I don't think this is worth it.


ilab-wrapper: Run podman with sudo

Background
The ilab command is wrapped by an ilab script which launches ilab inside a podman container.
Issue
Since the ilab container image is pulled during the bootc image build process using the root user, the image is not accessible to non-root users.
Solution
We run the container as sudo in order to be able to access the root container storage. But for security reasons we map root UID 0 inside the container to the current user's UID (and all the other subuids to the user's /etc/subuid range) so that we're effectively running the container as the current user.
Additional changes
Changed "--env" "HOME" to "--env" "HOME=$HOME" to pass the HOME environment variable from the current shell and not from the sudo environment.
Future work
In the future, we will run podman as the current user, once we figure a reasonable way for the current user to access the root's user container storage

Needs rebase.

Force pushed for rebase & resolving review comments

LGTM


Going for 1.0.0 release

To my reckoning there are no more serious flaws in the software, so we should definitely go for a 1.0.0 release.
In the wake of the release, we should also deprecate mocha-typescript, redirecting users to the new @testdeck/mocha package.
Preventing Issues

[x] #245 (temporarily fixed, needs more work)
[x] #254 (should fix the temporary fix for #245, needs further investigation)
[x] #235 (source maps)
[ ] #255
[ ] #256 (test coverage and quality)
[ ] (include DI test cases for all supported test frameworks)
[ ] (include @param tests for all supported test frameworks)
[ ] (include both non-async, async and callback based test cases for all supported test frameworks, where supported)
[ ] #302 (new central documentation)
[ ] (all di/test framework packages' documentation link to the central documentation)
[ ] #310 (maybe improve upon DI if possible)
[ ] (add more DI framework support, e.g. inversify)
[ ] (rework all testdeck feeds to match our then set up, linking to the correct documentation and packages etc.)

@PanayotCankov how can we deprecate the mocha-typescript package from npm and point it towards @testdeck/mocha instead?

I have just created one issue that I would consider serious flaw...
https://github.com/testdeck/testdeck/issues/246

@zveljkovic Yes, that is a very good one. Thank you very much for that.

Serious flaws

#245 (temporarily fixed, needs more work)
#254 (should fix the temporary fix for #245, needs further investigation)

I have locked this so that we can keep this focused.
We will decide which issue is preventing the 1.0.0 release.

I think we have good enough coverage and I think we ship maps now. Maybe this is ready to 🚀

🚀

closing as we need to reconsider


on('registration') not fired after on('unregister')

Expected Behaviour
User has activated/registered for push notifications
User decides to deactivate/unregister for push notifications
User decides to reactivate/register for push notifications again
I expect a new on('registration') to be fired after an  push.unregister was fired.
Actual Behaviour
The push.unregister works every time, but the on('registration') after an push.unregister is not fired, script is stuck.
Reproduce Scenario (including but not limited to)
Platform and Version (eg. Android 5.0 or iOS 9.2.1)
android 6.0.1 and  ios 11.2.5
(Android) What device vendor (e.g. Samsung, HTC, Sony...)
iphone 7
lg nexus 5
Cordova CLI version and cordova platform version
cordova --version                                    8.0.0

Installed platforms:
android 7.0.0
ios 4.5.4
Plugin version
cordova plugin version | grep phonegap-plugin-push   phonegap-plugin-push 2.1.2 "PushPlugin"

Sample Code that illustrates the problem
'use-strict'
class Push{
     constructor(config){
         this.push = PushNotification.init(config);
        }
register()
    {
        return new Promise((resolve, reject) => {

            console.log("[push ] register");//this log i see, after that... nothing
            if (this.push) {//this.push =
                this.push.on('registration', (data) => {
                    console.info("[Push] registered! ",data);
                    return resolve(data.registrationId);
                });

                //todo problem lies here... registration is not fired at all times on (at least) android
            } else {
                console.error('push register: no PushNotification instance found');
                return reject('no PushNotification instance found');
            }
        });
    }
}

 /**
     * unregister device for push notification
     * @returns {Promise}
     */
    unregister()
    {
        return new Promise((resolve, reject) => {
            this.resetBadgeNumber();
            this.clearAllNotifications();

            this.push.unregister(
                () => {
                    console.debug('Unregistered successfully');
                    this.token = null;
                    // this.push.off('registration');
                    // this.push.off('notification');
                    return resolve();
                },
                () => {
                    console.error('Unregister failed');
                    return reject('[Push] unregister failed');
                }
            );

        });
    }

@fredgalvao could you tell me how you would handle this situation where the user should be able to toggle push notifications?

For the initial registration, I call .init and on('registration'), and then call .on('notification') too. As soon as the registration event triggers, I send a request to my backend to register this device/installation/registrationId as a valid push notification target (with platform details to differ between iOS/APNS and Android/GCM targets.
When the user disables notifications, I call unregister on the plugin API and then I send a request to my backend to signal that this user's registrationId is not to be considered a valid push notification target anymore.
If the user then decides to re-enable notifications, I re-execute the whole process from the start:
//reinitializes the API and create a new object, leaving the old one free to die through garbage collect
push = P.init(...)
push.on('registration', () => {...})
push.on('notification', () => {...})

@macdonst I'm starting to question if this is the expected behaviour instead of a bug. Can you help us?

@fredgalvao  Ah thanks for your response. My flow is quite the same except i only init PushNotifications once (first time only) then check if userdata.push == true, to decide if it needs to be "activated". So I might reinit the whole thing then... Although you would expect that it should be possible to init once and register/unregister multiple times... right?

@Lenndev if you call unregister you will have to call init again. The init function is the one that requests a new token from the remote push service.

So yeah, it's the expected behaviour. I didn't get the question at first glance, but now it's clear.
@Lenndev Feel free to reopen the issue if you can't solve it by reinitializing the plugin API.

@Lenndev and @macdonst Please see if 58e87593e749d5c6da2a45906a8c7c9309d6b09a fixes the confusion.


Run ML module tests in contrib after migration.

Related to:

https://github.com/opencv/opencv_contrib/pull/3636
https://github.com/opencv/ci-gha-workflow/pull/151

Failed tests in U20 and U22 are the same one:
[----------] 1 test from Media
[ RUN      ] Media.audio/0, where GetParam() = ("test_audio.mp4", 1, 0.15, 64, [240](https://github.com/opencv/ci-gha-workflow/actions/runs/8077299192/job/22067316052?pr=156#step:59:241), 320, 90, 132299, 30, 30, GSTREAMER)
[<EMAIL_ADDRESS>global cap_gstreamer.cpp:1750 open OpenCV | GStreamer warning: frame count is estimated by duration and fps
[<EMAIL_ADDRESS>global cap_gstreamer.cpp:1939 getProperty OpenCV | GStreamer: CAP_PROP_AUDIO_SHIFT_NSEC property is not supported
video0 timestamp: 0.0522449  audio0 timestamp: 0.0522449 (audio shift nanoseconds: 0 , seconds: 0)
frame=0:  audioFrameSize=1470  videoTimestamp=52.2449 ms
frame=1:  audioFrameSize=1470  videoTimestamp=78.3673 ms
frame=2:  audioFrameSize=1470  videoTimestamp=104.49 ms
frame=3:  audioFrameSize=1469  videoTimestamp=156.735 ms
frame=4:  audioFrameSize=1470  videoTimestamp=182.857 ms
frame...
frame=85:  audioFrameSize=1470  videoTimestamp=2873.47 ms
frame=86:  audioFrameSize=1470  videoTimestamp=2899.59 ms
frame=87:  audioFrameSize=1470  videoTimestamp=2951.84 ms
frame=88:  audioFrameSize=1470  videoTimestamp=2977.96 ms
frame=89:  audioFrameSize=0  videoTimestamp=2966.67 ms
Total audio samples=130829
/home/ci/opencv/modules/videoio/test/test_audio.cpp:46: Failure
Expected equality of these values:
  numberOfSamples
    Which is: 132299
  audioData[nCh].size()
    Which is: 130829
nCh=0
[  FAILED  ] Media.audio/0, where GetParam() = ("test_audio.mp4", 1, 0.15, 64, 240, 320, 90, 132299, 30, 30, GSTREAMER) (72 ms)
[----------] 1 test from Media (72 ms total)

It should be irrelevant.


moving cellranger pipeline to pull ram/cpu from runtime env

I still have the Cromwell workflow running, just taking a long time for the test data to land jobs on the cluster. The command generated by Cromwell is the same as it was before. Will wait for the job to finish and succeed before merging.

The ramMin resource requirement is in mebibytes. So to convert that to gigabytes you can convert it to bytes it by multiplying by 1024^2. Then convert the bytes to gigabytes by dividing by 1000^3. Or you can just divide by 953.6. I upped it to 1000 to get the extra overhead.
The original 64000 mebibytes is 67.1gb which gives 3gb overhead.

TIL!  +1


Create a new pull request by comparing changes across two branches

Pull Request Test Coverage Report for Build 112127814

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 94.554%

Totals

Change from base Build 109609360:
0.0%

Covered Lines:
1974

Relevant Lines:
2049

💛  - Coveralls


Failed to list versions for com.squareup.okhttp3:okhttp, it's happening on android

I'm getting this error when trying to run the application on andoid.
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve com.squareup.okhttp3:okhttp:[3.+, 4.8.+).
     Required by:
         project :app > project :flutter_uxcam > com.uxcam:uxcam:3.5.0
      > Failed to list versions for com.squareup.okhttp3:okhttp.
         > Unable to load Maven meta-data from https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/maven-metadata.xml.
            > Could not HEAD 'https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/maven-metadata.xml'. Received status code 502 from server: Bad Gateway

I'm also having the same problem specifically when I try to build the release version. The debug version builds without problems. Flutter suggests updating the Kotlin Gradle plugin from 1.6.10 to 1.7.20 but this doesn't solve the problem.

Hi, this was due to Jcenter being down on that particular day. This should be ok now. Thanks for reporting this.


Memory issue

Hello,
I have an issue on my memory using pycall :
I have an object @df of class <class 'pandas.core.series.Series'>
And then call :
@df.rolling(720).apply(proc { |x| t = Numpy.polyfit((0...x.size).to_a, x, 1); t[0] })
Everytime I call this, it will increase my process memory of about 40Mb. My @df is about 3300 elements
I suspect a memory leak issue but I do not know how to fix it !
thank you !

@sebfie I've released v1.5.0. This new version includes #129 so Python objects memory leak should be resolved. Could you please check with the new version again?

Thx a lot !


ElasticSearch incorrecly serialize percolated queries

Elastic.Clients.Elasticsearch version: 8.11 (latest)
Elasticsearch version: 8.11.3 (latest)
.NET runtime version: 6
Operating system version: Windows 11
Description of the problem including expected versus actual behavior:
Percolated queries in Elastic Search doesn't serialized to correct value
For example simple query like:
Query.Terms(new TermsQuery()
{
    Field = Item.GetExpression(x => x.Name1),
    Terms = new TermsQueryField(new[] { FieldValue.String("value") })
})

when converted to percolated query in index it will provide:
"query":{"terms":{"name1":{}}}

What is incorrect, because it should converted to:
"query":{"terms":{"name1":["value"]}}

Steps to reproduce:
Go to repository:
https://bitbucket.org/KondzioSSJ4/es_percolatedserialization/src/meh/
And then just run any of this projects
each of them returns error when try to index data
Expected behavior
Percolated queries would correctly indexed in elastic
Provide ConnectionSettings (if relevant):
localhost... any Docker would be helpfull
Provide DebugInformation (if relevant):
Invalid Elasticsearch response built from a unsuccessful (400) low level call on PUT: /percolated-index/_doc/3df093da-1f93-487f-b2bc-5616a33f2a56
 Exception: Request failed to execute. Call: Status code 400 from: PUT /percolated-index/_doc/3df093da-1f93-487f-b2bc-5616a33f2a56. ServerError: Type: document_parsing_exception Reason: "[1:79] failed to parse: Required [index, id, path]" CausedBy: "Type: illegal_argument_exception Reason: "Required [index, id, path]""

# Audit trail of this API call:
 - [1] BadResponse: Node: http://localhost:9200/ Took: 00:00:00.0266196
# OriginalException: Elastic.Transport.TransportException: Request failed to execute. Call: Status code 400 from: PUT /percolated-index/_doc/3df093da-1f93-487f-b2bc-5616a33f2a56. ServerError: Type: document_parsing_exception Reason: "[1:79] failed to parse: Required [index, id, path]" CausedBy: "Type: illegal_argument_exception Reason: "Required [index, id, path]""
# Request:
{"dingerId":"3df093da-1f93-487f-b2bc-5616a33f2a56","query":{"terms":{"name1":{}}}}
# Response:
{"error":{"root_cause":[{"type":"document_parsing_exception","reason":"[1:79] failed to parse: Required [index, id, path]"}],"type":"document_parsing_exception","reason":"[1:79] failed to parse: Required [index, id, path]","caused_by":{"type":"illegal_argument_exception","reason":"Required [index, id, path]"}},"status":400}

My walkarround was to add the custom serializer
with added converter that supports Union conversion correctly

Hi @KondzioSSJ4 ! I am having exactly the same problem but have trouble understanding how to add a custom serializer that supports union conversion correctly. Any chance you could share code, point to some documentation or just explain your solution in a bit more detail. Would be very grateful! Thanks in advance!

@alientourist
Yes, sure
Adding converter to context:
var pool = new SingleNodePool(new Uri(_esConfig.Uri));
var connection = new ElasticsearchClientSettings(pool, CreateSerializer)
 .Authentication(....)
 ...;

var client = new ElasticsearchClient(_settings);

where most important is this method:
private static Serializer CreateSerializer(Serializer originalSerializer, IElasticsearchClientSettings settings)
{
    return new DefaultSourceSerializer(settings, x =>
    {
        x.Converters.Add(new TermsQueryFieldConverter());
    });
}

And converter is like:
internal sealed class TermsQueryFieldConverter : JsonConverter<TermsQueryField>
{
    public override TermsQueryField? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
    {
        if (reader.TokenType == JsonTokenType.StartArray)
        {
            var fields = JsonSerializer.Deserialize<FieldValue[]>(ref reader, options);
            return new TermsQueryField(fields ?? Array.Empty<FieldValue>());
        }
        else
        {
            var lookup = JsonSerializer.Deserialize<TermsLookup>(ref reader, options);
            return new TermsQueryField(lookup ?? new TermsLookup());
        }
    }

    public override void Write(Utf8JsonWriter writer, TermsQueryField value, JsonSerializerOptions options)
    {
        if (value is null)
        {
            writer.WriteNullValue();
            return;
        }

        value.Match(
            c =>
            {
                JsonSerializer.Serialize(writer, c, options);
            },
            tl =>
            {
                JsonSerializer.Serialize(writer, tl, options);
            });
    }
}

The good idea would be adding such converter inside the repository to fix issue for other user of ElasticSearch
But the "problem" is with way how it's good to add to repository
(probably because that problem would be for all Union then they probably would like to add similar converter and attributes to class for every single class that implement Union and... I don't have time to find the way to make it :D)

Thanks @KondzioSSJ4 ! Now I understand a bit more! Have started adding more converters for other types that we need...

So I decided to spend some time digging into that in order to solve it. So found 2 serializers used in the client: DefaultRequestResponseSerializer for serializing complex internal types and DefaultSourceSerializer for serializing customer payload. First has many custom converters that allows to serialize and deserialize union types and handle TermsQuery. Ironically, there is even unit test for that: test and expected result
By default requests are serialized with DefaultRequestResponseSerializer, but CustomJsonWriterConverter<TDocument> converter detects IndexRequest, IndexRequestDescriptor or CreateRequest by searching ICustomJsonWriter interface and calls Document serialization with DefaultSourceSerializer instead of DefaultRequestResponseSerializer, resulting in dropping support of internal converters.
I guess nobody initially thought that percolate query feature will add storing internal types as part of the index/create request. Unfortunately, DefaultRequestResponseSerializer is marked as internal similar to converters used inside, making it impossible to re-use. IndexRequest, IndexRequestDescriptor or CreateRequest are sealed and you can't override ICustomJsonWriter interface implementation. Only option for now looks like adding custom converters into DefaultSourceSerializer as @KondzioSSJ4 mentioned.
Possible resolutions:
Quick: allow string/stream payload into IndexRequest, IndexRequestDescriptor or CreateRequest. There will be no need for struggle with DoRequestAsync, but allowing manual serialization.
Long term: create ability to switch back to DefaultRequestResponseSerializer in case field type is Query either through yet another custom converter or by extending CustomJsonWriterConverter related logic, and avoid switching to DefaultSourceSerializer in the first place.
This requires owners decision here, so I can't provide a PR here as most likely it will be throw away work...

Note: BoolQuery has MinimumShouldMatch as separate class that extends Union<int?, string> that means UnionConverter is missing in DefaultSourceSerializer

In case there are too many issues with serializer and percolate query item is simple and has query and id only you can keep separate instance of ElasticsearchClient with next hack for settings setup:
var settings = new ElasticsearchClientSettings(...your config...);

var desiredSerializer = typeof(TransportConfigurationBase<ElasticsearchClientSettings>)
    .GetProperty("UseThisRequestResponseSerializer", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
    .GetValue(settings);
typeof(ElasticsearchClientSettingsBase<ElasticsearchClientSettings>)
    .GetField("_sourceSerializer", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
    .SetValue(settings, desiredSerializer);

This will allow to use same serializer for payload as for query in search, but you have to double check if payload serialized correctly.

Hi there! After the big 8.13 release I finally have some time to look into the open issues 🙂
Another possible solution would be to expose a [RequestResponseConverter] attribute similar to the [SourceConverter] one to allow switching from source- to request/response-serialization. However, this won't work if the DefaultSourceSerializer is completely replaced by the user.

Today I ran into the exact same issue. Any plans to get this fixed @flobernd ?
I understand it's not high priority, but I figured I'll bump it since there were other recent discussions related to Union type conversions.


Error: Action failed with error: HttpError: Not Found (gitlab repo)

Any ideas why this is failing?
Run<EMAIL_ADDRESS>  with:
    dependency: rycee-nur-expressions
    pull-request-token: ***
    pull-request-author: github[bot]<EMAIL_ADDRESS>    delete-branch: true
    github-token: ***
    pull-request-branch-prefix: update-
    automerge: true
    pull-request-merge-method: rebase
    include-merge-commits: false
Run<EMAIL_ADDRESS>  with:
    input: rycee-nur-expressions
    lockfile: flake.lock
    short-rev-length: 8
Run nix flake lock --update-input rycee-nur-expressions
  nix flake lock --update-input rycee-nur-expressions
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
warning: updating lock file '/home/runner/work/nix-config/nix-config/flake.lock':
• Updated input 'rycee-nur-expressions':
    'gitlab:rycee/nur-expressions/2ef7a61cd972e56b31d007a47ae7147856e75888' (2023-09-08)
  → 'gitlab:rycee/nur-expressions/03b1d923dad88c6f76638d82dd8629a5b40d18b7' (2023-09-13)
warning: Git tree '/home/runner/work/nix-config/nix-config' is dirty
Run<EMAIL_ADDRESS>  with:
    input: rycee-nur-expressions
    lockfile: flake.lock
    short-rev-length: 8
Run<EMAIL_ADDRESS>  with:
    owner: rycee
    repo: nur-expressions
    basehead: 2ef7a61cd972e56b31d007a47ae7147856e75888...03b1d923dad88c6f76638d82dd8629a5b40d18b7
    token: ***
    include-merge-commits: false
    sha-length: 8
    verbose: false
Error: Action failed with error: HttpError: Not Found

https://github.com/bbigras/nix-config/actions/runs/6181134219/job/16778661721

Just saw this!
Looks like the log has expired and I can no longer see it. Is this still an issue?

I also got this error, here's the log


sap_ha_install_pacemaker: enable/disable autostart

This PR adds these features:

sap_ha_install_pacemaker: split cluster setup and configuration
sap_ha_install_pacemaker: add variable to enable/disable autostart

Similar to #238 - the new role for pacemaker setup is sap_ha_pacemaker_cluster.
This new role uses the ha_cluster Linux System Role for the actual pacemaker installation and configuration.
The functionality you suggested to add in this PR is present in the system role with a similar logic.
By default autostart is enabled - to disable it the native ha_cluster parameter can be defined in your inventory or input variables:
ha_cluster_start_on_boot: false
Reference: https://github.com/linux-system-roles/ha_cluster


Splitting dimension hierarchy

Is there a default parameter or function to split the dimension hierarchies (main and alternate hierarchies)?
Would like to export these hierarchies into individual excel or csv files.

The Dimension class implements the iterator protocol. That means you can simply loop through it to access all hierarchies.
import configparser

from TM1py import TM1Service

config = configparser.ConfigParser()
config.read(r'config.ini')

with TM1Service(**config['tm1srv01']) as tm1:
    dimension = tm1.dimensions.get('d1')

    for hierarchy in dimension:
        print("Name: {}".format(hierarchy.name))
        print("Number of elements: {}".format(len(hierarchy)))

If you explicitly want to access the default-hierarchy / same-named-hierarchy, you can do it like this:

import configparser

from TM1py import TM1Service

config = configparser.ConfigParser()
config.read(r'config.ini')

with TM1Service(**config['tm1srv01']) as tm1:
    dimension = tm1.dimensions.get('d1')

    default_hierarchy = dimension.default_hierarchy
    print("Name: {}".format(default_hierarchy.name))
    print("Number of elements: {}".format(len(default_hierarchy)))

Does that answer your question?

hierarchy.name returns the dimension name itself, it doesn't help.
I'm looking for something that could split the duplicate elements (alternate hierarchy) from dimension and create a new file out of it. If the duplicate element list also has duplicates in it, then go for third file.
I have achieved this using python lists and dictionaries. But is there any inbuilt TM1 py function for this?
If my question is not clear let me know.

hierarchy.name returns the name of hierarchy. It just happens to be the name of dimension when you access this property on the default hierarchy.
I am not sure if you understand the concept of alternate hierarchies correctly. Duplicate elements and alternate hierarchies are not the same thing. Please do some more reading on this topics and provide a proper description of the problem at hand at what exactly you need TM1py to do.

I would like to split duplicate elements from the hierarchy. In my case I only have one hierarchy (default hierarchy). I have some duplicate elements in it.
I looped through the dimension to split the duplicate elements from the hierarchy.
Thanks for the explanation on alternate hierarchies.


DO NOT MERGE--test of docs preview

Reference Issue

Testing docs build preview following PR #7217, based on issue #6849
What does this implement/fix? Explain your changes.
This PR is just to trigger a CI run to build docs preview
Any other comments?

📚 Documentation preview 📚: https://rdkit--7219.org.readthedocs.build/en/7219/

@greglandrum Could you check for an error message on the Read the Docs project page or the like?

@greglandrum Could you check for an error message on the Read the Docs project page or the like?

@bertiewooster I don't see anything. It also doesn't look like RtD try to do a build based on this:
https://readthedocs.org/projects/rdkit/builds/

I think this may be more complicated to make work than what we've done so far since you can't build the RDKit docs without having an actual build of the RDKit available. So I think some connection to RtD needs to be somehow integrated into one of the RDKit CI jobs

It also doesn't look like RtD try to do a build based on this: https://readthedocs.org/projects/rdkit/builds/

The last successful build is Passed version release_2019_03 (html)4 years, 9 months ago, which makes me wonder if this RtD project is the current documentation platform?

The last successful build is Passed version release_2019_03 (html)4 years, 9 months ago, which makes me wonder if this RtD project is the current documentation platform?

It's definitely not. I manually build the docs that are hosted on rdkit.org. Those are, to the best of my knowledge, the only online version of the docs that are kept up to date.

I misinterpreted your original comment, about using the RtD GitHub Action, as meaning that the RDKit docs are built using RtD. I believe we would need to get that set up first before we could use that GitHub Action to build the docs from a pull request. As you mentioned, that would presumably require making a build of the RDKit available using CI. It seems a worthy goal to automatically build the docs for each release from CI, to save you from building the docs manually.
If that's not a simple task, to avoid having each new PR post a broken link on the PR's web page, you might want to revert the merge of #7217. Unless you'd prefer that I submit another PR to comment out the contents of .github/workflows/documentation-links.yml so we have that code ready to go when RtD can build the docs from CI.

I agree that it would be great to have this work and to both have the docs generated automatically and to be able to check them docs with each PR, but since it's not currently working I am going to revert the PR.
I think a likely solution at the PR level would be to have one of the CI builds generate the docs and then somehow push those to RtD. I assume that this is possible, but haven't managed to make the time to investigate yet.

Similarly, are the RDKit C++ and Python builds for release created by CI? If not, that would also be a worthy goal, and probably a prerequisite for building the docs.

Similarly, are the RDKit C++ and Python builds for release created by CI? If not, that would also be a worthy goal, and probably a prerequisite for building the docs via CI.

There are no C++ builds (that wouldn't be generally useful). The Python builds are done by the conda-forge CI, so that's not here.


Locator changes sdk info before runtime info

The runtime info should be updated first. This will match what VS Mac is doing.

Not required. VS Mac updates the runtime info before the sdk info. They are independent.


Calling the trigger twice will not work.

Calling !lol7 for example, twice in a row within 10 seconds of each other will not work, the second call will not  produce any results. Suspecting cache blocker somewhere, will need to investigate and address.

fixed in 0.1.0


listsinceblock does not show "generate" on "change" address

Recently I staked a block with my "change" address. Unfortunately it does not show in list from "listsinceblock". Interestingly when I receive normal transaction on that address it does show in "listsinceblock".
Is that known / expected behaviour?

Does it show in the GUI?

Yeah, forgot to mention - I am using linux command line client (gridcoinresearchd).

Are you able to start a GUI client? If you are, then please check if the transactions appear in the gui.

Sorry, not really - it is headless server.

getbalance is affected by this transaction and it shows correct value.
The same is true for "list rsa"- TxCount, Last Block Paid and CPID Lifetime Research Paid are showing correct values.
Just listsinceblock hides it.

this rpc call uses same general function as listtransactions

Could you please point me the class having this "general function"? Maybe I could take a quick look myself and try to figure it out.

So... I assigned an account to this address (by gridcoinresearchd setaccount) and now it shows "generate" transaction in listsinceblock (reminder - it showed "receive" transactions for this address even before). It kinda resolves my issue.
However I still would like to know (if someone has time and desire to explain):

why the change address was used to stake a block? My suspicion - it was once used before for "receive" transaction.
since it was used to stake a block - why did listsinceblock hide it when it had no account / name assigned? Why only "generate" transactions?
is there a way to list all addresses (named / accounted and unnamed / unaccounted) associated with my wallet?
(all referring to Linux command line)

any P2PKH or P2PK unspent transaction output will be used for staking if it is not reserved by settings, contains non-dust amount and is mature (16h prod, 1h test). You simply sent some money, change returned to you using change address and then it staked.
idk
listaddressgroupings

First of all - thanks for your answer.
Ad 2. - I would love to see if it is expected result or some minor bug, but I am unable to find mentioned "general function" for listing transactions in any class (there are simply to many of them). Maybe if someone points me in the right direction (class name) I would be able to investigate from there.
Ad 3. - I know this command, but it does not fully satisfy my needs, as it lists only "non-empty" addresses. Windows client somehow gets even those without any transactions that are assigned to given wallet (I was using Windows client for a moment and it showed all the addresses generated by "getnewaddress", even those without account / name and transaction).

ok looking at this. I see that it uses the old ListTransactions which does things a lot different. Turns out that ListTransactions function alone does not show change period even for transactions. I had sent some coins to an address and let the change go to a change address yet it would not show in listsinceblock at all. The ListTransactions alone does show generated transactions however not for change either.
I've since tested using ListTransactions2 here and it now shows change addresses as well. so i'll test a Stake with a change address to see if this is included. if so a migration to ListTransactions2 here may be the solution


IE 10 and eage(11) grid issue

Bug, feature request, or proposal:
BUG

What is the expected behavior?
footer is bottom of the page
What is the current behavior?
in middle of the page
What are the steps to reproduce?
Providing a StackBlitz reproduction is the best way to share your issue.
StackBlitz starter: https://goo.gl/wwnhMV
What is the use-case or motivation for changing an existing behavior?
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
on your site
Is there anything else we should know?

Will be fixed by https://github.com/angular/material.angular.io/pull/451.


Do not attempt to revoke token if it already expired

When the steps after creating the app token take more than one hour, revoking the token in the post step of the job fails with 401 Bad credentials
logs
2023-11-03T08:17:49.8021984Z ##[group]Run actions/create-github-app-token@v1
2023-11-03T08:17:49.8022321Z with:
2023-11-03T08:17:49.8022568Z   app-id: ***
2023-11-03T08:17:49.8029074Z   private-key: ***
**2023-11-03T08:17:49**.8029317Z   owner:

**Other jobs running for around 3 hrs**
Error in post job cleanup

**2023-11-03T11:28:30**.0046013Z Post job cleanup.
2023-11-03T11:28:30.0195545Z Post job cleanup.
2023-11-03T11:28:30.3211228Z RequestError [HttpError]: Bad credentials
2023-11-03T11:28:30.3233502Z ##[error]Bad credentials
2023-11-03T11:28:30.3234665Z     at C:\actions-runner\_work\_actions\actions\create-github-app-token\v1\dist\post.cjs:2890:25
2023-11-03T11:28:30.3235686Z     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2023-11-03T11:28:30.3237018Z     at async post (C:\actions-runner\_work\_actions\actions\create-github-app-token\v1\dist\post.cjs:2996:3) {
2023-11-03T11:28:30.3237833Z   status: 401,
2023-11-03T11:28:30.3238145Z   response: {
2023-11-03T11:28:30.3238651Z     url: 'https://api.github.com/installation/token',
2023-11-03T11:28:30.3239157Z     status: 401,
2023-11-03T11:28:30.3239481Z     headers: {
2023-11-03T11:28:30.3239914Z       'access-control-allow-origin': '*',
2023-11-03T11:28:30.3242327Z       'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset',
2023-11-03T11:28:30.3244679Z       'content-length': '80',
2023-11-03T11:28:30.3245298Z       'content-security-policy': "default-src 'none'",
2023-11-03T11:28:30.3245984Z       'content-type': 'application/json; charset=utf-8',
2023-11-03T11:28:30.3246616Z       date: 'Fri, 03 Nov 2023 11:28:30 GMT',
2023-11-03T11:28:30.3247427Z       'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
2023-11-03T11:28:30.3248174Z       server: 'GitHub.com',
2023-11-03T11:28:30.3248880Z       'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
2023-11-03T11:28:30.3249999Z       vary: 'Accept-Encoding, Accept, X-Requested-With',
2023-11-03T11:28:30.3250499Z       'x-content-type-options': 'nosniff',
2023-11-03T11:28:30.3250879Z       'x-frame-options': 'deny',
2023-11-03T11:28:30.3251281Z       'x-github-media-type': 'github.v3; format=json',
2023-11-03T11:28:30.3251806Z       'x-github-request-id': 'XXXXXXXXXXXXXXXXXXXXXXX
2023-11-03T11:28:30.3252248Z       'x-ratelimit-limit': '60',
2023-11-03T11:28:30.3252595Z       'x-ratelimit-remaining': '60',
2023-11-03T11:28:30.3253035Z       'x-ratelimit-reset': '1699014510',
2023-11-03T11:28:30.3253398Z       'x-ratelimit-resource': 'core',
2023-11-03T11:28:30.3253751Z       'x-ratelimit-used': '0',
2023-11-03T11:28:30.3254131Z       'x-xss-protection': '0'
2023-11-03T11:28:30.3254397Z     },
2023-11-03T11:28:30.3254601Z     data: {
2023-11-03T11:28:30.3259781Z       message: 'Bad credentials',
2023-11-03T11:28:30.3260135Z       documentation_url: 'https://docs.github.com/rest'
2023-11-03T11:28:30.3260442Z     }
2023-11-03T11:28:30.3260614Z   },
2023-11-03T11:28:30.3260784Z   request: {
2023-11-03T11:28:30.3261004Z     method: 'DELETE',
2023-11-03T11:28:30.3261311Z     url: 'https://api.github.com/installation/token',
2023-11-03T11:28:30.3261614Z     headers: {
2023-11-03T11:28:30.3261884Z       accept: 'application/vnd.github.v3+json',
2023-11-03T11:28:30.3262256Z       'user-agent': 'actions/create-github-app-token',
2023-11-03T11:28:30.3262703Z       authorization: 'token [REDACTED]'
2023-11-03T11:28:30.3262956Z     }
2023-11-03T11:28:30.3263119Z   }
2023-11-03T11:28:30.3263277Z }

Other jobs running for around 3 hrs

An installation access token is only valid for 1 hour, there is no way to extend that. So it is possible that cleaning up the token failed because it expired.
I think what we can do is to pass the time of the creation as state to the post job, that way we can check the time that passed since the creation.
Would you be interested in working on a pull request to implement this change?

We have the some issue using this action on some jobs that run long.

Would it be viable to extend the functionality and allow the user to allow a longer expiration time?

allow the user to allow a longer expiration time

expiration time for installation access token is 1 hour. It's not extendable.

I am also running into this issue for long builds. The biggest problem is that it is failing builds when the revocation fails because the token is expired. I don't mind if it still tries to revoke the token and just fails silently, but failing in this case is really disruptive for our builds. Here is an example failure log: failure-info.txt

:wave: I have a fix for this issue in #95. I'm still working on figuring out the testing library and snapshots, I'll work on that tomorrow.


swagger-compat-spec-parser 1.0.34 loses array items $refs in body parameters - REGRESSION from 1.0.33

I just updated to the new swagger-parser 2.0.0-rc3 and found what appears to be a rather severe regression.  The regression actually appears to be in swagger-compat-spec-parser 1.0.34 (and/or one of the updated 1.5.18 io.swagger core libraries).  This wasn't happening in the previous 1.0.33/1.5.17 release.
Observe this Swagger 1.2 body parameter.  It is taken from the User API from old v1 Petstore example:
user.json.txt
{
  "name": "body",
  "description": "List of user object",
  "required": true,
  "type": "array",
  "items": {
    "$ref": "User"
  },
  "paramType": "body",
  "allowMultiple": false
}

swagger-compat-spec-parser 1.0.33 converts this to the following which is correct:
{
  "in": "body",
  "name": "body",
  "description": "List of user object",
  "required": true,
  "schema": {
    "type": "array",
    "items": {
      "$ref": "#/definitions/User"
    }
  }
}

The new swagger-compat-spec-parser 1.0.34 loses the $ref to #/definitions/User .  Notice how the $ref in "items" has disappeared!
{
  "in": "body",
  "name": "body",
  "description": "List of user object",
  "required": true,
  "schema": {
    "type": "array",
    "items": {

    }
  }
}

I noticed this from my application which uses swagger-parser to read any old Swagger definition to the v3 model.  In that case I originally noticed ArraySchema.getItems().get$ref() returning a null pointer.  However, for the purpose of isolating this issue, I ran the following code with swagger-compat-spec-parser 1.0.33 and then with 1.0.34 to observe the $ref getting lost:
        SwaggerCompatConverter scc = new SwaggerCompatConverter();
        Swagger swagger2 = scc.read("petstore/user.json");
        System.out.println(io.swagger.util.Json.mapper().writeValueAsString(swagger2));

As a workaround, it looks like I can still use the new swagger-parser 2.0.0-rc3 which fixes a lot of bugs for me but I have to hold back the versions of the 1.x stuff as follows.
Instead of 1.0.34, I have to hold these back to 1.0.33: io.swagger:swagger-parser and io.swagger.swagger-compat-spec-parser
Instead of 1.5.18, I have to hold these back to 1.5.17: io.swagger:swagger-core and io.swagger:swagger-models

Hi @benken-parasoft thanks! Sorry for the late response.
This issue was fixed by #656 PR, please let us know if it keeps failing.

Sorry for the late response

Sorry for the late reply.  😁 I verified in the 2.0.0 release and everything looks good from my end.  Thank you so much.

🎉


Add link to playground from proposal page

Add link to playground to test strategies from a proposal

Use Base64 instead of encodeURIComponent
Use TextareaJson instead of TextareaAutosize

Also, can we add https://github.com/snapshot-labs/snapshot/issues/1430

Looks cool!

Add link to playground to test strategies from a proposal
Would be useful to show this in the settings page modal for strategies too

Use Base64 instead of encodeURIComponent
Why is this being changed?

Use TextareaJson instead of TextareaAutosize
Maybe we should use SDefaultObject in playground too?


bbox is missing when query points are identical

This query fails https://graphhopper.com/maps2/?point=51.338454%2C12.378639&point=51.338454%2C12.378639&profile=car
because when the start/target points are identical the response path is missing the bbox field. See also here: https://github.com/graphhopper/graphhopper-maps/pull/87#issuecomment-865210402

This will be (also) fixed on the server side: https://github.com/graphhopper/graphhopper/pull/2348

There is now no error anymore. So closing. The zoom is still to high but this is another issue #53.


Words with 'w' in the middle add extra spaces

I'm running into an issue where converting a file to PDF is adding spaces next to all of my lowercase w's in the middle of words. It seems to generally be only within the main text. It just looks pretty bad when I want to share this with others at work. I'm running this on a Windows 10 machine.
Also, I'm using Markdown-to-PDF in Atom. There is already a bug  reported there for this, but it looks like the problem is in the conversion.
test.pdf
What it should look like:
here is my file with some w's in places
What? where? how? how now brown cow?
wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp
wq wr ws wt wu wv wx wy wz w!!!w!

Here's the text inside it (added monospacing to preserve all characters)
# here is my file with some w's in places

What? where? how? how now brown cow?

wa wb wc wd we wf wg wh wi wj wk wl wm wn wo wp
wq wr ws wt wu wv wx wy wz w!!!w!

Hey @geoffwild11, thanks for reporting this, you're right that this is most probably in mdpdf. mdpdf uses a browser to render the text so some of this will depend on the font, and some of it on the browser. It seems this is an issue with the lowercase w that's being used (thanks for the pdf).
The good news is, I'm actually starting to move mdpdf from phantom over to Chrome Puppeteer as it now finally supports all the pdf settings we need (literally just in the past few weeks). This should actually fix a lot of rendering issues and make the pdf's output as if done by Chrome manually.
#39 is the issue tracking this migration, if anyone wants to get their hands dirty then that would be fantastic as my time is quite limited at the moment.


bug: incorrectly calculating the size of script that is loaded from memory

🐛 Bug Report
the script that is loaded from memory lost the last character because its size is not correct and misses a one-character from its length.
Possible Solution

https://github.com/metacall/core/blob/76f02c051c9bfd84926331f8ada8b9506a12f04d/source/ports/rs_port/src/loaders.rs#L82-L87
 metacall_load_from_memory(
     c_tag.as_ptr(),
     c_script.as_ptr(),
-    script.len(),
+    script.len() + 1,
     ptr::null_mut(),
)

Steps to Reproduce
source code
use metacall::{loaders, switch};
fn main() {
    let _metacall = switch::initialize().unwrap();
    loaders::from_memory("node", "console.log('Hello world')").unwrap();
}

behavior
Exception in node_loader_trampoline_load_from_memory while loading: console.log('Hello world' 0x5b3b086100b0-0x5b3b08610080-26-2913836576:1
console.log('Hello world'
            ^^^^^^^^^^^^^

SyntaxError: missing ) after argument list
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1274:20)
    at Module._compile (node:internal/modules/cjs/loader:1320:27)
    at node_loader_trampoline_load_from_memory (/gnu/store/ka685gr3ah26nmjfny1kwixmv2nsc2ms-metacall-0.7.8/lib/bootstrap.js:182:5)

@devraymondsh take a look

@Hulxv
Nice catch. The core accepts size and the Rust loader incorrectly passes length.


Edits to use a CA

Doc previously, and in error, listed users folders
in the org MSP section where none is needed thanks
to Node OUs
Signed-off-by: joe-alewine<EMAIL_ADDRESS>Type of change

Documentation update

Description
Fixing small errors in this doc

I want @saad-karim to review this before we merge it, as I'm still not 100% sure I've got this right.

@saad-karim PTAL

@Mergifyio backport release-1.4


Minor fixes

Clearing some easy to fix bugs from PE-D

closes #136
closes #128
closes #130
closes #124

loks good
approb


Feat/makefile

makefile can be useful and more build rules can be added

I think I will proceed to close this PR and send a new one if it is still necessary to use the makefile, I put it in discussion, if it is necessary vs not


Show PokeStop/Gym name

It would help if you could add the name of the PokeStop/Gym to the tooltip. This helps providing an idea of where it is exactly.

Same here, I'm researching TSP problem, that will be extremely helpful


Metric to report time spent fetching and analyzing segments

Description
Add a new metric that is emitted by the compaction task that shows how much time it spent fetching and analyzing segments. When a datasource is very fragmented, this could be a large amount of time. This metric will be helpful to operators as they can monitor this to see if they would benefit from explicitly specifying the schema in the auto compaction / manual compaction config if their use case allows it.
Here is a sample of what the metric would look like
{"taskIngestionMode":"REPLACE_LEGACY","feed":"metrics","taskType":"compact","metric":"compact/segmentAnalyzer/fetchAndProcessMillis","service":"druid/middleManager","groupId":"coordinator-issued_compact_wikipedia_cgmonfmg_2023-08-04T00:35:38.106Z","host":"localhost:8100","version":"28.0.0-SNAPSHOT","value":78,"dataSource":"wikipedia","taskId":"coordinator-issued_compact_wikipedia_cgmonfmg_2023-08-04T00:35:38.106Z","timestamp":"2023-08-04T00:35:40.605Z"}

Release note
NEW: compact/segmentAnalyzer/fetchAndProcessMillis is now reported by compaction tasks to indicate how much time was spent fetching and processing segments to infer the schema
This PR has:

[x] been self-reviewed.
[x] added documentation for new or modified features or behaviors.
[x] a release note entry in the PR description.
[x] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[x] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[x] been tested in a test Druid cluster.

Thanks @ektravel and @zachjsh for the reviews


feat: self-hosting

https://github.com/Homebrew/homebrew-core/pull/96851/files

https://github.com/Homebrew/homebrew-core/pull/96851


[WIP] use skolem LocalNode impl instead of BNode+obj

[WIP] - This is just for discussion
Replacing LocaNode implementation using BNode+attached object with NamedNode skolem. Results in no assumptions on the internal structure of Quads (e.g., Graphy reconstructs Quads as opposed to returning them 'as-received' with potentially attached data structures).
DIdn't update the entire codebase, just enough to get all tests in thing.test.ts passing...

Superseded by #1036.


Add a nightly release

It's listed here, but it doesn't actually have a release: https://github.com/knative/pkg/blob/master/RELEASE-LEADS.md#day-of-the-release
We should add release stuff so that it helps bootstrap repos.
cc @n3wscott

At the moment it is all locked up in test infra config. so it is more complicated than just fork off the template. but ok ack


Ractive 0.8.1 breaking change with adaptors

Anytime a Backbone collection is updated, Ractive (using ractive-adaptors-backbone) is now replacing its reference with a plain array.  This affects both 0.8.0 and 0.8.1.
This code runs without error against 0.7.3, but the second console.assert fails in 0.8.x:
var c = new Backbone.Collection();
var v = new Ractive({
	adapt: ['Backbone'],
	data: function() {
		return {
				c: c
		};
	}
});

console.assert(v.get("c") === c); // View has a stored reference to the collection
c.reset([
	{item: 1},
	{item: 2}
]);
console.assert(v.get("c") === c); // This errors out.  v.get("c") is now returning a plain array of Backbone models

0.7.3: https://jsfiddle.net/pg2sw3zb/
0.8.1: https://jsfiddle.net/mq96w409/1/
I'm unclear whether this should be considered a bug with Ractive or the adaptor, so apologies if this is with the wrong project.

@rstacruz could help. The adaptor needs a few fixes to stay compatible with recent versions of Ractive.

It looks like this is caused by the Ractive side of the adaptor storing the real value on the adaptor as the value property. The adaptor is also using the value property to store a reference to the model :expressionless:. I think it's probably best/easiest to update the adaptor for now.

Well, I fixed part of it from Ractive. There is a sort-of breaking change in the way the ractive handles the set from the adaptor. It looks like it really should be calling update instead of set. I think it may be a result of an inconsistency in the adaptor API prior to 0.8, but I'm not sure.
When the adaptor gets an update from the backbone side, it should just tell ractive that it updated, but instead it calls set with the array that the collection holds. Ractive gets the array and sees that it no longer needs the wrapper, which no longer matches since an array is not a Collection, and tears it down. So, if you change the ractive.set(keypath, collection.models); to ractive.update(keypath); it looks like it starts working as expected.

I'm still going through and testing it, but the above suggestion appears to fix the issues for 0.8.2 and is backwards compatible with 0.7.3.

I'm going to pass this off to #2512


Just throwing a segfault for me

I can reproduce this.

I stared blankly at my terminal and it didn't segfault. It must be your fault.
Edit: oh wait it now happened. I think it might be related to the combination with my Ubuntu 9.04 system.


panhandler doesn't work when you call from another function

Hi Ian,
Long time, I hope things are going well at SEAS.
I had a chance to try out your mpl interactions. I couldn't get this part working after 2 hours and maybe you know what the bug might be.
When I try to call panhandler from another py file by giving the correct fig and ax, it wouldn't work. On the opposite, if I directly call it in the same py file for plotting, it will work. This has limitation because in the future it's nice to have one function to take care of all interactions and plotting related customization. Right now I cannot include panhandler.
here is the dropbox link of codes I made. Should make your life easy to quick see what i'm saying:
https://www.dropbox.com/t/ikyWUZabCLVYc9Lu
video proof:
https://capture.dropbox.com/Mt1zc6zVfWx2KQxy
The link expires in 7 days. If you need it again, send me an email.
thanks,
Tony
Bug report
Bug summary

Code for reproduction

Expected outcome

Version Info

Operating system:
Matplotlib version:
Matplotlib backend (print(matplotlib.get_backend())):
Python version:
Jupyter version (if applicable):
Other libraries:

Hi Tony so happy to see you using this library!
This is an issue of variable scoping in python, In your first example panhandler is declared in the global scope so the object never gets garbage collected and the interaction remains for the entire run time of the script. But once you put it inside of a function like this

I can see how the documentation for this can be confusing (https://mpl-interactions.readthedocs.io/en/stable/examples/zoom-factory.html#scrolling-and-panning) because it simply says:

You need to make sure to assign the panhanler to a variable otherwise it will be garbage collected and will not work.

Do you have any suggestions for improving or adding to that that would have helped you?

If you're able to share what you're using this for I'd be super curious to know about it! Also happy to glance over any open source code that uses this library to see if I have any suggestions for improving it.

Hi Ian,
This is very helpful. It works. I was aware of the scoping you mentioned.
If you look at what I wrote then you may realized that disconnect_zoom = zoom_factory(ax, base_scale=1.4) is also there but zoom factory works just fine without returns. The only distinction in the moment I can think of is zoom_factory is a function and panhandler is a class. If you know python collects garbage differently regarding both, please let me know and that will be great to learn. Because zoom factory worked, I never had a thought to return panhandler object. Also I'm more used to matlab so I know both lines should work in matlab without returns.
To further proof there is a distinction, besides zoom_factory and panhandler, I also have a function from other sources called "_rectangle_selector_factory(fig, ax)". It also works well like zoom factory without returns. Anyway, there are always mysteries too deep and too time consuming to understand in all computer languages. My problem is solved so thank you!

The only distinction in the moment I can think of is zoom_factory is a function and panhandler is a class.
If you know python collects garbage differently regarding both, please let me know and that will be great to learn. Because zoom factory worked, I never had a thought to return panhandler object.

This is sort of the distinction. The return value of zoom_factory actually only knows how to disconnect the zooming function:
https://github.com/ianhi/mpl-interactions/blob/aa3b1bcc85332eda4d098e7ad16bea16615f9424/mpl_interactions/generic.py#L294-L298
The real work in zoom factory is done by a function that gets attached to those axes as a callback
https://github.com/ianhi/mpl-interactions/blob/aa3b1bcc85332eda4d098e7ad16bea16615f9424/mpl_interactions/generic.py#L248
I think the deeper difference is that for zooming the mechanics are done using  just use a single callback function -
https://github.com/ianhi/mpl-interactions/blob/aa3b1bcc85332eda4d098e7ad16bea16615f9424/mpl_interactions/generic.py#L292
and matplotlib will keep a reference to it which keeps it alive.
Whereas for the panning you actually call the constructor of the panhandler object so if you don't explicitly hang on to it then python will drop it thinking that you no longer want it.

Anyway glad we could get it sorted!


Reproducer for quarkus/issues/15025: Quarkus keeps dead database connect

Reproducer for https://github.com/quarkusio/quarkus/issues/15025: Quarkus keeps dead database connections in its connection pool.
The idea is to keep restarting the database and checking the idle connection pool. Before each restart, we need to call the health check endpoint to trigger the issue.
This is working fine in 999-SNAPSHOT, but not in 1.13.0.Final (as expected as the fix is not part of this release):
Works:
mvn clean install

Not work:
mvn clean install -Dquarkus.platform.version=1.13.0.Final -Dquarkus-plugin.version=1.13.0.Final

Kyrylo is sick

Adding "DO NOT MERGE" as it's failing in CI... I'm investigating this.

Fixed by adding DB_CLOSE into the jdbc url. It seems that when we stop/start the database connection, this property is necessary.


Description of AV-208 is hard to understand

Without some context or an example, the description of AV-208 is hard to understand.
In particular, it is unclear what it means to "omit the scope" (what scope? omit from where?)
I suspect this might be only relevant for some ecosystems?

Old description of AV-208, Omitting Scope or Namespace: This technique consists of taking the name of a package with scope (or namespace) and publishing it without the scope.
Proposed change: Some package repositories support namespaces as optional element of a package identifier. Each user and organization on npm, for instance, has its own scope. Namespaces are typically used by individuals, organizations or projects to group and manage multiple artifacts, and indicate ownership to potential consumers. Attackers can publish a package with identical name but without namespace in the hope that victims wrongly believe it comes from the trusted organization or project.

Closing the issue as it has been fixed by @henrikplate


Links in atForm template are reversed/incorrect

The sign in and sign up templates have a link to the other page. Example: on the 'sign up' template, there is a link that says 'If you already have an account sign in'. This link should take me to the sign in view, but it instead it links me to the 'sign up' view, which is where I already am. The reverse is true for the sign in page.

I just tried the boilerplates for flow-router and iron-router and this works just fine.
Looking at your screenshot of the elements, the link that should point to singIn actually points to #, which is why you stay on the same (sing-up) route when you click it.
Since the signInLink is retrieved from your route configuration I guess that you either forgot to configure just that or that you are not using either the flow-routing or iron-routing package?

Hey, thanks for the reply. I am using flow router and did not configure the 'signInLink'. Was not aware I had to configure this, but it makes perfect sense. Thank you for looking into this.


[WFCORE-5574] Upgrade JBoss Modules from 1.11.0.Final to 1.12.0.Final

https://issues.redhat.com/browse/WFCORE-5574

Dev tag: https://github.com/jboss-modules/jboss-modules/releases/tag/1.12.0.Final
Diff to previous integrated release: https://github.com/jboss-modules/jboss-modules/compare/1.11.0.Final...1.12.0.Final

@ropalka thanks!


Unable to run procmon on windows-containers in hyperv isolation mode

I have an app that works completely fine in the --isolation process, but does not work in --isolation hyperv. I am not sure what could be the reason. I have checked dependencies, and DLLs on both are identical. My last resort for debugging was to use procmon, however it does not work inside containers. (and since it is hyperv isolation, I can not just run procmon on the host).
This issue is also documented here: https://github.com/StefanScherer/dockerfiles-windows/tree/main/procmon, which intern links to a few more forums about the issue
docker hosts: windows11 pro, and windows server 2022
docker images: mcr.microsoft.com/windows:20H2, mcr.microsoft.com/windows/server:ltsc2022

To the subject title question concerning procmon in Windows containers running with Hyper-V isolation, that feedback would be good to direct to the Sysinternals community.
To the bigger issue, which is that your app does not work when the isolation mode changes, can you share more details about what is happening? Does the container fail to start entirely?

Hey, I figured out the issue. Hyper-V isolation mode has a default cap on CPU, and RAM, that I didn't account for. After expanding those with --cpus, and --memory, the application worked


Typo in markdown

Helps perpare for Azure Stack deployment.
Should be prepare

Typo fixed. Thanks for submitting the issue.
https://github.com/Azure/AzureStack-Tools/commit/1c1acbf350db8403c599800db9423b40a8f3cfe9


Search with -products commandline option works only by full ID, contrary to description

The description in the help says:
-products arg  One or more products to find. Defaults to Community, Professional, and Enterprise.
               Specify "*" by itself to search all product instances installed.
               See https://aka.ms/vs/workloads for a list of products.

This suggests you can use -products Enterprise to find enterprise products, which is not how it works. I noticed it will only find a product by its full ID, i.e. the following command will find Enterprise products:
vswhere -products Microsoft.VisualStudio.Product.Enterprise

I suggest to either update the helptext, for instance by specifying it requires the full ID and/or give an example string, or change the way it behaves by searching for substrings, or end-of-strings. The latter being enough specific to work with a string like Enterprise.

Given the link at the bottom of the text has the full IDs, you should use that. The shortened text are akin to the editions (which was what was intended), and increasing the binary by almost 200 bytes is not worth it. This tool is geared more toward detection scripts and not meant to be called often where allowing for a shortened string might be useful.

@heaths, my issue is mainly with the description and if the number of bytes are a dealbreaker, perhaps we can settle on clarifying the text as follows?
-products arg  Finds instances matching the give product IDs, defaults to Community,
               Professional and Enterprise. "*" searches for all installed product IDs.
               See https://aka.ms/vs/workloads for a list of products.

I think this is clearer, and does not add bytes to the binary.

You forgot the Oxford comma. I would never accept such a PR without one. ;)
I don't actually see how that's any better. You still only mention the editions. If your main goal is to just add "ID" mainly for clarification I could add that, but I wouldn't ship a new version just for that. It would get picked up whenever we release another version.

You forgot the Oxford comma. I would never accept such a PR without one. ;)

Oh oh, I actually edited it to remove it. In Dutch it's frowned upon. Learned something new today, thanks!

You still only mention the editions. If your main goal is to just add "ID" mainly for clarification

Yes, exactly (otherwise it gets unwieldy, I understand that). It's mainly programmers or IT staff that use tools like these. They are triggered by exactness in phrases, or they will use trial and error to find out how it works. So yes, "just adding ID" could help a lot, I think.
Disclaimer: I participated for years in creating the XSLT 3.0 spec. We often had lengthy debates about such seemingly simple things as word-smithing for concise, readable definitions. It's not that a big deal here, obviously, but I think it is still an improvement. Definitely not worthy of a separate release, of course, I didn't intend to suggest that ;).


Implement Unban Requests somehow

Implement Unban Requests somehow, like in a new tab, how mentions/whispers are handled.

Can listen to the unofficial channel-unban-requests.<user-id>.<channel-id> pubsub topic to recieve the unban requests in real-time (though I haven't tested this with third-party oauth). However, properly approving/denying would need to use GQL at the moment as there's no official api (though: for the approval, we could just send /unban, but the unbanned user wouldn't see the same "Note from Channel Moderators:" box that would be present via a gql approval).

though I haven't tested this with third-party oauth
Does not work, needs first-party OAuth token or you'll get an authorization error.

it's now legal to do this
https://dev.twitch.tv/docs/api/reference/#get-unban-requests
https://dev.twitch.tv/docs/api/reference/#resolve-unban-requests

Needs polling though :vomiting_face:

Needs polling though 🤮

Or eventsub websocket


Project too large for TS Server to handle

VSCode Version: 1.47.3
OS Version: macOS 10.14.6

Steps to Reproduce:

Open a large JS project on VSCode
Wait a few seconds

Does this issue occur when all extensions are disabled?: Yes
Getting warning message:
To enable project-wide JavaScript/TypeScript language features, exclude large folders with source files that you do not work on.
jsconfig.json
{
  "compilerOptions": {
    "experimentalDecorators": true
  },
  "exclude": [
    "**/node_modules/*"
  ]
}

I noticed that tsserver.log was watching a lot of files, because the project is very large. I was able to reduce the size by excluding more folders on jsconfig.json above, like the "dist" folder for example. So the file looks more like this:
  "exclude": [
    "**/dist/*"
    "**/node_modules/*"
  ]

So I'm not having getting this warning/issue anymore, but I can reproduce it again by removing the folder from the config/exclude, which makes me think there's a limit we may reach again, at currrent configuration, if the project keeps getting larger and larger.
So this is just a report to hopefully allow the VSCode team to improve this in the future.

Moving upstream to TypeScript
@fab1o Excluding dist sounds correct. Are there any other folder in your project which contain JavaScript or TypeScript code but are not really part of the project?
Also have you tried following our guide for working with large projects?

Closing as not actionable without more information
If you see this again with VS Code 1.53+ and TypeScript 4.15+, please try following the large project instructions. If there still seems like a bug, please let us know

Is there a way for us to configure the extension to remove the guardrails for large projects?
In any case, ideally, the error should tell us what the file limit is so we know how much we have to trim (if it's even possible to trim).


nb-fix-pt2

Hi! I just submitted a PR, but I realized I PR-ed the wrong fix. It's small again, and I'm sure someone is bound to notice and fix this, but I figured if I noticed I should correct the mistake!

Oops yeah I should have checked that too. Thanks!


query/physicalplan: Check if returned rows match expected rows

Previously we only checked that the expected number of rows are returned. However, it seems that the actually returned rows should be checked as well and are currently inconsistent. We're basically not handling NULL correctly if I'm not mistaken.

Taking a look now

Added a fix. Weirdly, NULLs are not represented in indexes or dictionary pages in parquet. Have to verify this is expected, but bypassing optimized path in these cases for now.


Error Sending Emails: ApplicationError and PicklingError

I am experiencing an issue with the resend service, where several email sends have failed around 10:00 AM (GMT -03:00). The following errors were encountered in the console:
Exception
<MaybeEncodingError: Error sending result: ''(1, <ExceptionInfo: ApplicationError(\'column "sent_at" of relation "emails" does not exist\')>, None)''. Reason: ''PicklingError("Can\'t pickle <class \'resend.exceptions.ApplicationError\'>: it\'s not the same object as resend.exceptions.ApplicationError")''.>

Traceback (most recent call last):
  File "/home/contabee/contabee/lib/lib/python3.7/site-packages/billiard/pool.py", line 366, in workloop
    put((READY, (job, i, result, inqW_fd)))
  File "/home/contabee/contabee/lib/lib/python3.7/site-packages/billiard/queues.py", line 366, in put
    self.send_payload(ForkingPickler.dumps(obj))
  File "/home/contabee/contabee/lib/lib/python3.7/site-packages/billiard/reduction.py", line 56, in dumps
    cls(buf, protocol).dump(obj)
billiard.pool.MaybeEncodingError: Error sending result: ''(1, <ExceptionInfo: ApplicationError(\'column "sent_at" of relation "emails" does not exist\')>, None)''. Reason: ''PicklingError("Can\'t pickle <class \'resend.exceptions.ApplicationError\'>: it\'s not the same object as resend.exceptions.ApplicationError")''.

Details:
Timeframe: The errors occurred around 10:00 AM (GMT -03:00).
Error Pattern: There doesn't seem to be an observable pattern in the occurrences of these errors.
Environment: Python 3.7
Request for Support:
I would like to know if this issue is due to a server-side problem, a potential bug in the resend platform, or if the traceback indicates any issues in my code. Any guidance or support you could provide would be greatly appreciated.

hey @brenonsc, yeah that looks like the resend API had a small hiccup and the responses were not what the SDK expected to be, I will ask the team to investigate that timeframe further, in the meantime would you know which version of the SDK you were in when those errors happened ?
Last week I released: v2.3.0 which should gracefully handle non json responses from the API.

The first one: 2024-07-30 12:59:09.261 UTC
The last one: 2024-07-30 13:11:39.418 UTC

Hey @brenonsc, a bad deployment lead to this problem and disrupted some APIs. As @drish pointed, the new version of the python sdk has a better error handling when there are issues with the API


Allow to create a Consumer for the _all stream/global index

This allows the Consumer to listen to the _all stream, which maps to the global index of the underlying storage. Internally, the storage.openIndex(indexName) method now also allows specifying _all as index name, which will return the global index. This in turn means that the name _all is no longer available as a regular index name.

Coverage increased (+0.007%) to 97.725% when pulling 8ece5a2df2b07029b8cba90190dd543da48bc74d on consumer-all into 8ea608f08be5b10270472c6c1a0446fb4ffc84c0 on main.


examples – removed old link to non-existing i18n page

This pull request removes a broken link about a plugin that was already archived and the page was deleted. (Issue #10367)
What kind of change does this PR introduce?
bugfix
Did you add tests for your changes?
no, because no logic was changed
Does this PR introduce a breaking change?
no
What needs to be documented once your changes are merged?
nothing

/cc @valentin9 friendly ping, can you accept CLA?

Thanks for your contribution. I am closing PR because it is too stale..


.net framework project can't load rdotnet targeting netstandard2.0

I recompiled RDotNet.dll from source on netstandard2.0, then I copy the dll into my .net framework project (4.5.2 and 4.7.2) output folder to be called upon to run R script. But it failed to load during program launch, the error message is as follow:
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
I don't get this problem when my project was on .net framework 3.5.
I needed to recompile my own RDotNet.dll due to the need for the searching current user registry update I posted. Any suggestions?

I think it makes sense that the .NET 4.5.2 code wouldn't work, since it looks like .NET Standard 2.0 requires .NET 4.6.1 or higher.  But, that means your 4.7.2 version should work.
Is there any more information on what is trying to be loaded via reflection?  I took a peek through the R.NET code and can see a few spots where System.Reflection is being used.  This SO post makes me think it may not be possible to mix the two different approaches to reflection?
In a pinch, this very unofficial fork still uses the .NET Framework, but isn't kept entirely in sync with the main repo.

I was able to make the netstandard2.0 DLL work with my .net framework project. What I did was the following: 1) make my project to be .net 4.7.2; 2) trace the dependency of the rdotnet netstandard2.0 DLL, it needs Dynamicinterop and Microsoft.Win32.Registry DLLs, once these two were added into my .net framework project's dependencies, it works now. So, I did NOT have to re-compile RDotNet.dll to .net framework.

I suggest this question be labeled as 'question', such that it can be easily found by other people


Using beforeDrop to find where drag and drop was "let go?"

Hi, I am having this issue with the drag and drop where if I drag a specific element to a specific area, I want to be able to detect which HTML element (based on class) I dragged that element to. If I dragged the element to an HTML element area that has that specific class in it, I want to do something. In my example, I just print something to the console. Here was my attempt:
HTML File:

JS File:
        $scope.dragConfig = {
            dragOption : {
                revert: 'invalid',
                appendTo: 'body',
                cursor: 'url(../images/closedhand.cur) 7 5, default',
                connectToSortable: '.treeview-menu', //treeview-menu is the class I where I want to "stop" the drag and drop
                helper: function(event, ui){
                    console.log("Helper");
                    var r = angular.element('
'.concat(angular.element(event.target).html()).concat('
'));
                    r.css('width', 'initial');
                    return r;
                }
            },
            onDragStart: function(e, ui){
                console.log("On drag start")
                if(e.target)
                    angular.element(e.target).addClass('dragging');
            },
            onDragStop: function(e, ui){
                console.log("On drag stop: ", angular.element(e.target));
                console.log("E: ", e);
                console.log("UI: ", ui);
                if(e.target)
                    angular.element(e.target).removeClass('dragging');
            }
        }

        $scope.beforeDrop = function () {
            console.log("Can I find the HTML element that the drag and drop element has been dragged to?");
        }

I thought beforeDrop could be used to find if I dragged the element to a class with treeview-menu in it, but beforeDrop is never called, no matter what I do or try. Would anyone have an idea on how to do this? Thanks!

My mistake, I can use jqyoui-droppable data-drop = "true" and things work fine. I can use onDrop to accomplish what I need.


Implement first S3 downloader (close #23)

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

Merging [#36][cc-pull] into [master][cc-base-branch] will decrease coverage by 4.39%

@@             master        #36   diff @@
==========================================
  Files            11         13     +2
  Lines           390        416    +26
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            274        274
- Misses           85        111    +26
  Partials         31         31

Powered by Codecov. Last updated by [3d704f9...5599eec][cc-compare]
[cc-base-branch]: https://codecov.io/gh/flavioribeiro/snickers/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/flavioribeiro/snickers/compare/3d704f9343d01d45b25ce4f15fcab91faf1f98ea...5599eec91476ebe646d59fe00576a4856167f5a8?src=pr
[cc-pull]: https://codecov.io/gh/flavioribeiro/snickers/pull/36?src=pr


assertReducerShape is bundled into production builds

Do you want to request a feature or report a bug?
Bug.
What is the current behavior?
assertReducerShape is called in production as well. This was discussed here:
https://github.com/reduxjs/redux/issues/816#issuecomment-143784515
It says it shouldn't have a perf impact, but we see it in our profiles.

What is the expected behavior?
Does not call it in production, like the other asserts in that same file. This also means the code can be minified out instead of shipping that long error message to users.
Which versions of Redux, and which browser and OS are affected by this issue? Did this work in previous versions of Redux?
All versions.

As Dan pointed out in the linked thread, it doesn't add significantly to the boot time (it is only run during the initial combineReducers call, not during dispatch) and will catch user errors cause by dev/prod mismatch. There are a number of runtime assertions in dispatch as well. An assertion is necessarily dev-only. We want to keep this in the prod build.

It does add significantly to the boot time (contrary to what Dan said), see the attached screenshot that shows it takes 9ms in our app on average hardware.

I don't agree that 9ms is significant.
Again, that's only during the initial combineReducers call, which should only be once during the boot. You shouldn't ever be incurring that setup time, where many other things like parsing and the initial window paint will take much much longer to complete.


[hip] hipModuleGetGlobal should be exposed.

This fix the build issue in TC.

better PR is prepared @ https://github.com/ROCm-Developer-Tools/HIP/pull/972