List Ordering Mixup

Describe the bug
Instead of list order being Continue Watching, My List, then everything else, the page loads with My List at the top, which is quickly replaced with Continue Watching, then everything else is listed, then My List is placed at the bottom or second from the bottom.
Desktop (please complete the following information):

OS: Windows 7 x64
Browser: Chrome
Version: 67.0.3396.99 (Official Build) (64-bit)

Additional context
All other aspects are working as expected.
I have other extensions installed, but they are disabled for Netflix.

Stylish (no overrides loaded or enabled)
Tampermonkey (no scripts loaded or enabled)
uBlock Origin (disabled for all of Netflix)

Does this happen consistently? When you reload the page, does it sometimes sort correctly and other times not? It would be curious if it's consistent, and if it's intermittent, I think it'll be related to the race condition I'm already aware of where the extension code sometimes executes too quickly for Netflix and so Netflix's "wins out".

I just noticed that it only does it on a fresh load of the site. If I click any of the header links, then return to the home page, it will correctly order the lists Continue, My List, then everything else.

Ok, thanks for the report. I'll take a look into reproducing and fixing this when I make the next round of updates.

This should be fixed by<PHONE_NUMBER>077ec6a641565c66a4565ab9e880ec. @PickleWeaselPhD, care to give it a few tries to confirm? You may need to restart Chrome to have it pick up the updated extension (or you can manually trigger an update by going to chrome://extensions -> Update.

@PickleWeaselPhD Would you mind also confirming that you have the v1.0.2 extension installed and enabled? The specific behavior you're reporting hasn't been reported by anyone else and it's super strange. Out of curiosity, what region are you in? I wonder if there's something Netflix serves up differently for where you live vs where I am (Denver, CO).

The installed version is indeed 1.0.2 and it is enabled. I'm in FL, so I don't believe it would be a region issue. I checked the dev console and I'm not getting errors, and the CSS tweaks are loaded for sure, but I still have a differing first load than what is expected.
The My List group is being forced to the bottom of the stack as new groups are loaded between it and the Continue Watching group. Once I have scrolled all the way to the bottom of the page and all categories are served to my browser, clicking any of the headers will sort the lists correctly, but only after the initial page load.

@PickleWeaselPhD Ok, I've just pushed a new version (1.0.3) that...should?...address this :)
Give it a shot and let me know - just make sure you update the extension and also make sure that you refresh your Netflix tab to ensure the latest code is loaded into the page.

Since this was reported as being squashed, I'm closing this issue. If it is experienced again, we can reopen and explore further fixes at that time.

This 100% fixed the issue. I am now seeing things in the correct order.
Thanks again for your work! It is super appreciated.


Decouple batch querying from graphql-ruby integration.

@eapache for review
Problem
I want to test that all the computed fields on objects are being preloaded properly.  This means that all loading happens during the preload, since loading an association on an individual object will result in an N+1.
This will require exposing the ability to call the preload code without it calling the wrapped resolver, as well as the ability to execute any batch queries that are returned the preload code.  The latter is a problem in graphql-batch because the code to execute those queries was coupled with the code to integrate with graphql-ruby.
Solution
I added a GraphQL::Batch.execute method that can execute a query container (single query or query group) along with any query container that is returned from a callback of that query.  I have also added a GraphQL::Batch::QueryContainer#execute method to make it even easier to execute queries.
Another aspect of this refactoring to remove coupling of GraphQL::Batch::ExecutionStrategy with the other code was to allow callbacks to be added on a GraphQL::Batch::QueryContainer after it was returned from the resolve proc.  Previously this chaining was done by passing a block to GraphQL::Batch::Query.new or GraphQL::Batch::QueryGroup.new.  Now #then can be used to lazily add a callback.
I also needed to handle query exceptions in GraphQL::Batch::ExecutionStrategy, so added #rescue and #ensure on GraphQL::Batch::QueryContainer to handle this in a way that seems somewhat natural for ruby.

wow, seems like a big win!

As per our discussion IRL this feels an awful lot like hand-rolled promises... is there a ruby promise library we could use to get all that functionality for free?

Yes, the API is a lot like promises, but we don't want a promise library that executes the block asynchronously (e.g. using event machine) or concurrently (e.g. in a separate thread).

It looks like https://rubygems.org/gems/promise.rb might work, since it doesn't have any dependancies, so would work with the deferred semantics I need.  Using a generic promise implementation might also allow this gem to be adapted to the asynchronous or concurrent use cases.


Update 'Running a Fabric Application' tutorial for Fabric Gateway

Also fixed a few build warnings in other documents.
Contributes to #2807

The discussion around "gateway peer" - I don't see the comment here any more - was only that "gateway" to modify peer was deemed redundant in this context (in our prior reviews), because all peers are now "gateway" peers. So not to avoid using "peer" but to avoid using "gateway peer". ... So in prior docs we use "peer" when that is important - such as in getting a connection from the client app. ... When it's the "Fabric Gateway service" specifically (running on the peer) that is doing things, then we call it that, as opposed to a "peer" doing things.

The discussion around "gateway peer" - I don't see the comment here any more - was only that "gateway" to modify peer was deemed redundant in this context (in our prior reviews), because all peers are now "gateway" peers. So not to avoid using "peer" but to avoid using "gateway peer". ... So in prior docs we use "peer" when that is important - such as in getting a connection from the client app. ... When it's the "Fabric Gateway service" specifically (running on the peer) that is doing things, then we call it that, as opposed to a "peer" doing things.

The client app only interacts with the Gateway service. Whether that Gateway service runs on a peer irrelevant to the client application. There was a point in time where the Gateway service was implemented in a separate component, not in a peer, and this could be the case again in the future. It really makes no difference from the client application perspective discussed in this tutorial.

Maybe 3 sections would have been clearer. To consider another time without a deadline --
A. Here's how to do the tutorial, only. (task)
B. Here is the Tx flow and other concepts that are revealed in the tutorial. (conceptual). If you want to read about that.
C. Here are the overall Fabric Gateway topics (links) and fabric topics (links) that apply to the tutorial (reference). If you want to go read that. ... (Note reference could also be presented as prereq, before the task.)

The discussion around "gateway peer" - I don't see the comment here any more - was only that "gateway" to modify peer was deemed redundant in this context (in our prior reviews), because all peers are now "gateway" peers. So not to avoid using "peer" but to avoid using "gateway peer". ... So in prior docs we use "peer" when that is important - such as in getting a connection from the client app. ... When it's the "Fabric Gateway service" specifically (running on the peer) that is doing things, then we call it that, as opposed to a "peer" doing things.

The client app only interacts with the Gateway service. Whether that Gateway service runs on a peer is irrelevant to the client application. There was a point in time where the Gateway service was implemented in a separate component, not in a peer, and this could be the case again in the future. It really makes no difference from the client application perspective discussed in this tutorial.

I beg to differ... the client needs to connect to a certain endpoint, and that endpoint is generally known as the peer endpoint throughout all the other doc topics. I'm just suggesting to mention that the gateway service runs in a peer so that readers know exactly which endpoint they are connecting to. That seems like a fundamental concept that client application developers need to know.  Yes, the Gateway could in theory run anywhere, and that's exactly why the reader may be in doubt. But we chose to run it in the peer and should communicate that. Just one mention early on would be sufficient to clear up any doubt.

I beg to differ... the client needs to connect to a certain endpoint, and that endpoint is generally known as the peer endpoint throughout all the other doc topics. I'm just suggesting to mention that the gateway service runs in a peer so that readers know exactly which endpoint they are connecting to. That seems like a fundamental concept that client application developers need to know. Yes, the Gateway could in theory run anywhere, and that's exactly why the reader may be in doubt. But we chose to run it in the peer and should communicate that. Just one mention early on would be sufficient to clear up any doubt.

The code snippets and some of the supporting text already explicitly state that it's the peer endpoint. I'll add a little more wording to reinforce that though.

@Mergifyio backport release-2.4


Bug/bitmap null

close #49
Description:
The library could not return a bitmap form CropImage when using Activity Result, because of the size of the bitmap that couldn't fit in the Activity Parcel.
Instead of treating like a bug, this is the correct behaviour. So was created a new function
/**
     * The cropped image bitmap result.<br>
     * Null if save cropped image was executed, no output requested or failure.
     *
     * @param context used to retrieve the bitmap in case you need from activity result
     */
    public Bitmap getBitmap(@NonNull Context context) { .. }

Check list for the Code Reviewer:

[x] CHANGELOG
[ ] README
[ ] Wiki
[ ] Version Number

I use MongoDb and store my Images as base64 encoded strings, with a mongoDB can only store files up to 16MB, Over that we use GridFS to split the files and create a "Pointer" document to reference the parts.  So the maximum image/multimedia can be <16MB
If that will help you scale the problem,
Other wise perhaps ask if image can be scaled to fit? - Or just Scale it anycase.
Thanx for this solution


startDeviceScan not working on Android 8.1! specifically on the oppo f7 device

Prerequisites
Please answer the following questions for yourself before submitting an issue. YOU MAY DELETE THE PREREQUISITES SECTION.

[x] I am running the latest version
[x] I checked the documentation and found no answer
[x] I checked to make sure that this issue has not already been filed

Expected Behavior
Please describe the behavior you are expecting
Current Behavior
What is the current behavior?
Steps to Reproduce
Please provide detailed steps for reproducing the issue.

step 1
step 2
...

Context
Please provide any relevant information about your setup. This is important in case the issue is not reproducible except for under certain conditions. Both JS and platform logs can be enabled via setLogLevel function call.

Library version: X.Y.Z
Platform: Android/iOS.
Platform logs (logcat/XCode):
JS logs:
Contents of the package.json file:
Formatted code sample or link to a repository:

function example(): string {
  return "Your code sample"
}

@PhuongNguyenETIT please fill the gaps or I will have no possibility to help you. Also check the wiki


Download link for WIndows .zip x64 downloads an .exe

Azure Data Studio Version: 1.49.1
OS Version: Win 10

Steps to Reproduce:

https://learn.microsoft.com/en-us/azure-data-studio/download-azure-data-studio?tabs=win-install%2Cwin-user-install%2Credhat-install%2Cwindows-uninstall%2Credhat-uninstall#download-azure-data-studio
Click on Windows > .zip > x64 (https://go.microsoft.com/fwlink/?linkid=2282377)
azuredatastudio-windows-setup-1.49.1.exe is downloaded, not the zip.

The equivalent link on https://github.com/Microsoft/azuredatastudio/releases is correct (https://go.microsoft.com/fwlink/?linkid=2282378) so I have been able to download what I want. I am raising this issue as a fyi.

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

Closing as fixed.  Thanks for reporting!


Start with Inlay Hints un-toggled

Hello,
I'm curious is it possible to start with InlayHints by default unToggled and Toggle them when needed?
In general my LSP gopls InlayHints setup is working.
But in all my editors I have InlayHints switched off by default and toggling them only when needed.
This is not the option I'm looking for:
        lsp_inlay_hints = {
          enable = false,
        },

I'm coming from another nvim Go plugin, but since this plugin is maintained and has more features I would like to stay with it.

This should been fixed in the latest version. Update the ticket if you see other issues.

omg. I completely forgot to reply.
I don't need for Go (or any other plugin) to control my LSP config. LSP config and "related" features are controlled within LSP module in my neovim setup.
so for this Go plugin I have
        lsp_inlay_hints = {
          -- controlled in lspconfig configuration, <leader>i to toggle hints
          enable = false,
        },

It is fine to use the Neovim native inlay setup/functions.
The plugin and relevant functions were designed when Neovim did not support the inlay feature.


MacOS Sonoma: SIGBUS errors

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
I've been using memray this week to profile one of our apps and it has been tremendously helpful.  Earlier today, I upgraded my Mac to Sonoma and I'm no longer able to profile this project.  It crashes with a SIGBUS error:
Process finished with exit code 138 (interrupted by signal 10: SIGBUS)

Nothing has changed between it working and crashing, other than the MacOS upgrade.  II tried just plain run and also live, both crash.  I have also tried profiling a test Python script but that isn't crashing.  So clearly something doesn't like something our app is doing but I'm not sure what the best way would be to try and debug this.  Any suggestions welcome.
Expected Behavior
I'm able to successfully profile on MacOS Sonoma.
Steps To Reproduce
I tried creating a small reproducible example but I've not yet managed it.
Memray Version
1.9.1
Python Version
3.9
Operating System
macOS
Anything else?
No response

I tried in macOS Sonoma and I can run the test suite without problems. Do you have a reproducer I can execute?

Maybe can you also provide a stack trace with lldb?

That seems to be only one frame, can you run "bt" to show all frames in the stack?

Ugh, that looks like a stackoverflow :(
How are you getting Python 3.9?

With pyenv

I can try to give you a version of memray to check if it fixes this.
Can you confirm you can compile memray in your machine? (Build instructions are in the README)

I can try to give you a version of memray to check if it fixes this.
Can you confirm you can compile memray in your machine? (Build instructions are in the README)

I've never built it but I'll try it out this evening.
Thanks for the help and fast responses!

In any case I think we still need a reproducer to be able to understand how this is happening.

Can you check that memray from this branch crashes or works?
https://github.com/pablogsal/memray/tree/dlyd4
To build:
git clone https://github.com/pablogsal/memray.git
cd memray
git checkout dlyd4
brew install lz4
export CFLAGS="-I$(brew --prefix lz4)/include" LDFLAGS="-L$(brew --prefix lz4)/lib"
# Ensure you uninstall any memray in your venv first!
python -m pip install .

@tsiq-karold are you by any chance using the pyobjc library in your app?

I'm still trying to narrow things down to a reproducible test that I can share.
I tried that branch and it still crashes with an identical looking stack.  I also tried with a slightly modified version of your branch so I could be 100% it was using that version; my modification was simply to print the image_name and right before the crash it's definitely not showing anything resembling the names in that if statement.
We do not use pyobjc, no.

I'm still trying to narrow things down to a reproducible test that I can share.
I tried that branch and it still crashes with an identical looking stack.  I also tried with a slightly modified version of your branch so I could be 100% it was using that version; my modification was simply to print the image_name and right before the crash it's definitely not showing anything resembling the names in that if statement.
We do not use pyobjc, no.

Could you paste here all the image_name values that happen before it crashes?

Meanwhile a way to narrow that is the following:
For every image_name, add a similar line as the one y added and check that doesn't crash. Then uncomment line by line until it crashes again. This can be done as binary search. Then tell us the library that makes it crash

Can you try also the last commit in:
https://github.com/pablogsal/memray/tree/dlyd4
(https://github.com/pablogsal/memray/commit/dd30b6571283129d27409a821c7912adb8b5a470)

Could you paste here all the image_name values that happen before it crashes?

This is the list as it gets printed out.  There's a lot of duplication in there but I thought I'd leave it as is in case the order matters.
image_names.log

python -m pip install .

No crashes with this commit!!

Can you try also the last commit in:
https://github.com/pablogsal/memray/tree/dlyd4
(pablogsal@dd30b65)

No crashes with this commit!!

Ok that's fantastic to know. We can try to trim that a bit. Can you try to change the conditional to:
strstr(image_name, "/usr/lib/") || strstr(image_name, "/System/")
And check if it crashes?

Do you mean the conditional that you modified in your first commit or the one from the second commit?

I did this:
                if (strstr(image_name, "/usr/lib/") || strstr(image_name, "/System/")) {
                    patch_stubs(section, slide, dyninfo_table, restore_original);
                }

and it started crashing again.

Can you try the following to see if it crashes (each separately):
strstr(image_name, "System/Library/PrivateFrameworks")
strstr(image_name, "System/Library/Frameworks")
strstr(image_name, "Services")

I've been doing something along the lines to narrow it down, will report once I find the culprit

OK, with this line in:
                if (strstr(image_name, "/usr/lib/") || strstr(image_name, "/System/Library/Frameworks/")
		    ...
		    || strstr(image_name, "/System/Library/PrivateFrameworks/MallocStackLogging.framework")
		    ...
		    ) {
                    patch_stubs(section, slide, dyninfo_table, restore_original);
                }

It crashes.  Commenting out the /System/Library/PrivateFrameworks/MallocStackLogging.framework runs without crashing.

I should add that from everything in /System/Library, only PrivateFrameworks/MallocStackLogging.framework causes trouble.  I'll try the other things you suggested.

No crashes with this:
                if (!strstr(image_name, "/System/Library/PrivateFrameworks/MallocStackLogging.framework")) {
                    patch_stubs(section, slide, dyninfo_table, restore_original);
                }

Hummm I am confused, shouldn't my first commit in the branch cover that:
https://github.com/pablogsal/memray/commit/a7e1ad6b8a640ea8abf11bd6dd15d0e23b5b9d8e

Apologies, I suspect this may have been user error... I just updated my local clone of your branch to effectively be your first commit and it's not crashing.  It's also not crashing when making it more tightly scoped, i.e.:
        if (strstr(image_name, "/System/Library/PrivateFrameworks/MallocStackLogging.framework") || strstr(image_name, "libdyld.dylib") || strstr(image_name, "/usr/lib/system/")) {
            std::cout << "Skipping patching image: " << image_name << std::endl;
            LOG(DEBUG) << "Skipping patching image: " << image_name;
            continue;
        }

Fantastic! This is enough for us to do a fix. We will release a new version with the fix shortly 😉
In the meantime you can hopefully use the custom memray build you have with the fix to profile your applications in the meantime :)
Btw, if you have some time it would be fantastic if you can leave a comment with your experience using memray in here:
https://github.com/bloomberg/memray/discussions/226
It really helps!

For the record, the problem is that apple has a debug malloc library that enables hooks that take snapshots of the stack in demand in that library:
https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/MallocDebug.html
These custom hooks make the system libraries interfere with memray because both are trying to patch malloc in incompatible ways. As apple has an advantage over memray, they can patch some system pointers that we cannot and forces us to not be able to stop recursion when the memray thread local variables are initialised.
The solution is basically not mess with that library from memray to avoid interfering.
The crash only happens if you are using something that ends needing to link to the system framework libraries that can use that capability, that's why you are only seeing the crash in your application and not on other python scripts.

Awesome, thanks. Yes, I can work with this for now.
Thank you for the timely help.


Include Sava Data Location Script

For installation on any OS, save data must be stored in user data folders, not in the same folder as the application files.
Add the Script example and demand users of this tool use it as prerequisite.
(copy this from wild araz project)

Added in 91d7684db7d4a3f5bf55234a9e0ce33a7aadfea4


Add link to issue tracking ACR support

Add a link to the issue tracking adding support for ACR.
This way it'll be easier for users to follow if we forget to update this doc when we add support.
And makes it clear (in comments on the linked issue) that this is waiting for something from ACR, not from us.

Why:
Closes [issue link]

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[ ] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[ ] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

👋 @jeffwidman - Thanks for opening a PR! I'll get this triaged for review ⚡

Marking as draft for now in favor of @pavera's excellent work in https://github.com/github/dependabot-updates/issues/1903

@jeffwidman 👋🏻 - can we close this, as I am about to merge https://github.com/github/docs/pull/20651?

Closing this, feel free to reopen if I misunderstood 😄


fuse: Properly set uid/gid for directories

What does this PR change? What problem does it solve?
In #2584 the uid/gid of a directory was changed to use the uid/gid of the root node. This
would be okay for the top-level directory of a snapshot, however, this
change also applied to normal directories within a snapshot. This
change reverts the problematic part and adds a test that directory
attributes are represented correctly.
I'm not entirely sure that the top-level node of a snapshot has a reasonable uid/gid set, but it should work as this simply reverts to the old behavior.
Was the change discussed in an issue or in the forum before?
See https://github.com/restic/restic/issues/2563#issuecomment-731863302 .
Fixes #2563.
Checklist

[x] I have read the Contribution Guidelines
[x] I have enabled maintainer edits for this PR
[x] I have added tests for all changes in this PR
[ ] I have added documentation for the changes (in the manual)
[ ] There's a new file in changelog/unreleased/ that describes the changes for our users (template here)
[x] I have run gofmt on the code in all commits
[x] All commit messages are formatted in the same style as the other commits in the repo
[ ] I'm done, this Pull Request is ready for review

I tested this and it seems to work fine: when I mount a repo that contains directories owned by root with mode 700, I can still access those (because FUSE leaves permission checking to restic).


[Docs] Change (return this) to (return self)

This is a simple documentation fix in the file "docs/TextFormatting.rst"
resolves ##69525

@egorzhdan All done.

@swift-ci please smoke test

@swift-ci please smoke test Linux


multi-GPU/processing for inference

My task requires to generate about 5500 patches (1333 x 800) from a large image and infer them in a short period of time (< 5 min). I suppose inference_detector using single process with a single GPU and it takes 572 s for 5500 patches. I have 4 GPUs, so I was wondering if there is a way to use this function efficiently. Thanks in advance.

Have you found a solution?


Multi-tenancy Network isolation

Word of caution:
In a multi-tenant environment, certain use case might requires traffic to be allowed between tenant owned namespaces, be very mindful to avoid any use of empty label selector {} for namespaceSelector field in network policy definition  and strictly stick with specific labels which is set to namespaces.

Hi @harshchauhan1988
Can you clarifying what you're suggesting / reporting? Which web page is wrong (or could be improved)? Why are you recommending the change, and what should that be - either broadly or narrowly, it's up to you.
/triage needs-information
/language en

@sftim  Thanks for asking this clarification. There is nothing wrong currently in web page. It can be improved a bit. In this below mentioned paragraph you have mentioned the highlighted recommendation:
Pod-to-pod communication can be controlled using [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/), which restrict communication between pods using namespace labels or IP address ranges. In a multi-tenant environment where strict network isolation between tenants is required, **starting with a default policy that denies communication between pods is recommended** with another rule that allows all pods to query the DNS server for name resolution.
Similarly you can add additional recommendation as mentioned below:
Avoid using  empty label selector '{}' for namespaceSelector field in network policy definition in case traffic need to be allowed between namespaces.

/remove-triage needs-information
/wg multitenancy

I'll let the multitenancy working group triage this one.

@harshchauhan1988 didn't say which web page to improve. I've guessed that they meant https://kubernetes.io/docs/concepts/security/multi-tenancy/

closing this issue  to avoid any duplicate work as i have raised below mentioned PR:
https://github.com/kubernetes/website/pull/34624


Fix the hardcoded 6 weeks

The calendar currently renders 6 rows of days, regardless of the month (not to mention that no month ever exceeds 35 days, so 5 would be more reasonable). Make the amount of weeks rendered dependent on the month

Fixed in the commit above


Change fault domain count to be 1

The default fault domain count is 5.
Large VMSS (300 HC instances in south central us) have failed to deploy when fault domain count is set to 5, but deploys correctly when set to 1.

@garvct does settings the FD to 5 in the config file can solve this ? if so there is no need to override the default value to 1.

yes, setting the fault domain count to 1 in the the config file fixes the problem. Why not set the default  to 1 to prevent other Users from having deployment errors. What is the downside of setting the default domain count to be 1?


Programatically provide new connection string and Migrate on demand

Following on from closed issue #384
Provide a Http API endpoint that retrieves the connection string from Keyvault and then runs grateMigrator.Migrate();
All my clients use Azure SQLServer DBs, could the connection string be updated in the IGrateMigrator service? or can the service be built on demand.  The client provides the connection string and my intention is to run Grate against their DB.
The code sample in https://www.nuget.org/packages/grate.sqlserver#readme-body-tab
Shows a hard coded connection string in to the IGrateMigrator service but I would like to get the connection string  just before calling Migrate()
 serviceCollection.AddGrate(builder =>
    {
        builder
            .WithSqlFilesDirectory("/db")
            .WithConnectionString("sqlserver connection string here")
    })
    .UseSqlServer(); // Important!, you need to specify the database type to use.
    var serviceProvider = serviceCollection.BuildServiceProvider();
    var grateMigrator = serviceProvider.GetRequiredService<IGrateMigrator>();

Just to clarify, you want to do something like this?
var grateMigrator = serviceProvider.GetRequiredService<IGrateMigrator>();
grateMigrator.Builder.WithConnectionString("new-connection-string"); // override the connection string
await grateMigrator.Migrate();

spot on!. thansk @hoangthanh28


Server setup and queries have been created

Pages set up

Router
Controller
Model

Routes and queries

get all products
get one product
get all styles
get all related item product ids


Calculate PublicOnly for org membership only once

Refactoring of #32211
this move the PublicOnly() filter calcuation next to the DB querys and let it be decided by the Doer

Sponsored by Kithara Software GmbH

As a habit, we almost check permission in service layer but not in models layer. What's the problem with the previous code?

I can create a new func in the service witch checks permissions ... but we would have to alter the existing code a lot and i want to only touch it here for a explizite context ... : the refactoring that makes the #32211 diff smal

What's the problem with the previous code?

the determination if  a user can see public or private org membership is determined in different places ... I want to have that check in a single place ...

@lunny to https://github.com/go-gitea/gitea/pull/32234#discussion_r1797948165 i tryed: https://github.com/go-gitea/gitea/pull/32234/commits/3af5ae7ade0b78313e8dbee1130be0b266f6ac8c
see https://github.com/go-gitea/gitea/actions/runs/11331009974/job/31510076461?pr=32234
it does not work, it errors with: Unsupported condition type

(I tried to have a single source of truth for the query ... but if preferred i will just use duplicated code by have a builder version and classic xorm version)

@lunny made 7bb645eaa959b43a878afdbb3057df47a29cfac4 here and https://github.com/go-gitea/gitea/pull/32211/commits/8780d12df415290ff27b0da820988e7834aca5b7 ...

@lunny anything else?

thanks :heart: !


Using store.setState instead of the provided set function

Hi, trying out your library and like the look of it so far! One issue I'm having though is that typically when using Zustand I'm not a huge fan of defining my setter functions in advance, and instead like using store.setState, e.g.
const store = create(() => ({
  bears: 0,
}))

const BearComponent = () => (
  <div>
    <button onClick={() => store.setState({ bears: 10 })}>Set bears to 10</button>
  </div>
)

But when using zundo, this doesn't seem to work, and instead you need to use set, e.g.
const store = create()(temporal(set => ({
  bears: 0,
  setBears: (bears) => set({bears}),
})))

I've also made a codesandbox here.
Is this supposed to work? Is this a bug in the 2.0 beta? Thanks!

Hi @acnebs!
Thanks for the bug report with reproduction.
This wasn't a use case I accounted for when writing this, so it is a feature that will need to be added.
I'll be able to take a look at this this weekend, but if you want to take a look at it sooner, we need to do the same pattern with the modified setter and modify the setState function. I'm not sure of hand how easy that is to update, but I'll try my best.
Thanks

A work around for the time being is to define setters inside the store rather than inline.

I've figured out a solution and will make a PR soon.

This has been fixed in v2.0.0-beta.10
Thank you for reporting!
Here is the updated code sandbox

Thanks @charkour, that looks great and is exactly what I was looking for!


Enable Refresh Channels to be done during standby as well as active

I'm getting spurious 404 errors from the load_source_list logic in pySonyBraviaPSK.
There seems to have been some change in either HA or Sony firmware which is causing more error conditions (possibly race conditions) from the TV. You will see the proposal I have put in for pySonyBraviaPSK as well.
The challenge here is that channel refresh is a one time operation, currently when TV is active and when HA has been restarted. Quite often this will be the first time the TV has been switched on after an HA restart.
The idea of this change is to reduce the risk of a race condition (where the channel info is requested when the TV is busy switching on), since the channel list info is also available when the TV is is standby (or at least on my 2021 model it is).

Thanks!


Once a vertex is moved in editing mode, keep the vertex still editable (already selected to move again)

Whenever any vertex is selected and moved, it is moved and has to be clicked again to move it again. Instead it should be available to move immediately without the extra click.
Reproducible: yes

Long press a vertex on spot
Move it
Observe that we have to select the vertex again, to move it again.

Expected behavior : Keep the vertex selected such that it can be moved again immediately and an extra click can be avoided.

closed by commit 982836f68111e9aec537112798d150649c649bae


Preserve WebGL contexts by replacing thumbnails with snapshots when done

There are two parts to this planned change:
(A) In Thumbnails, run the animation until it gets to its (current) stopping point, then replace the Specimen with just a snapshot of the state it has gotten to, as a png displayed on the canvas. Make sure this frees up the WebGL context of the Specimen, if it had one.
(B) When a Thumbnail is first displayed, if it is a WebGL visualizer, and there are more than N (probably 8) active WebGL contexts, show an hourglass (or loading animation) until a WebGL context frees up, at which point start the usual animation and proceed as in part (A).

Resolved in ui2 by #517, closing.


Error "error: unknown command 'vault'" when executing via npx

We saw the deprecation notice on the decrypt command:
DEPRECATION NOTICE: [dotenvx decrypt] has moved. change your command to [dotenvx vault decrypt]

When changing our build system's commands to
npx @dotenvx/dotenvx vault decrypt

we instead get an error error: unknown command 'vault'. This error is reproducible locally; i.e. executing npx @dotenvx/dotenvx vault decrypt directly will error, but executing the globally installed version dotenvx vault decrypt works as expected.
We'll downgrade our build config and ask that you support npx before removing the deprecated command.

apologies for this. will get patched up today.

@j-frost can you check your @dotenvx/dotenvx version? it looks like this is fixed in 0.43.0 and beyond:
npx @dotenvx/dotenvx vault --help
npx @dotenvx/dotenvx vault decrypt

Thanks @motdotla, just updated to 0.43.0 where the issue does not occur. This is fixed!


Document init accessor

Fixes #20583

Thanks for the review and corrections, @Youssef1313 !

:D
I found that the new page to introduce the keyword init has added into the docs, however, the keyword list page doesn't display this keyword.
Could you please add this keyword into the list page? Thank you!

@SunnieShine This is tracked by https://github.com/dotnet/docs/issues/21603.

@Youssef1313 Oh! I only found that init page has been added, but no displaying in that list page.
I don't know there's an issue to describe that.
Thank you for your mention!


RolePermissions

The new RolePermissions view could be made more user friendly.
Nothing personal, @PedroVentura235, you did a great job with the initial version! Just want to iterate on it a bit more ;-)
The Permissions should be split into their respective categories. Similar like how it's done in BlazorHero.
There it's done using tabs. It can be anything: tabs, groups in a table, a treeview or any other of visual representation of groups, but like it is now it's not really easy to find what you need.
The groups in FSHPermissions.cs actually have DisplayName and Description attributes which values could be used in the UI (after running them through the localizer maybe?). I guess they are put there for that reason?
About the descriptions: like it's implemented now, the descriptions of the individual permissions will always be empty.
I thought those descriptions were in FSHPermissions.cs as well. But apparently, as it looks, they live in the database in the RoleClaims table now?
That doesn't make much sense to me to be honest. As one particular permission can be added to different roles, this means those descriptions would have to be duplicated everywhere, and permissions that aren't added to any roles can't have a description? And where would the descriptions come from in the first place?
I think there's something wrong in the design here?
I think we should also put Description attributes on all the individual Permissions in FSHPermissions.cs, And take them from there in stead for the UI. And then simply remove the Description property from ApplicationRoleClaim and the dto's that are derived from it... no need to send those over the wire either...

hi. if i might add, while this is still the works,
1 - why not allow nested permissions ? i.e.: we could have a Catalog permission and permissions for each of the catalog entities/features. this would prevent accessing or displaying the catalog if a user is not allowed to without the need to go further and check for each entity/feature within the catalog.
2 - in multitenant systems, features can be set also by Tenant which is not present here. one should be able to allow access to a CRM feature for a tenant and desactive it for another ...

1 - It is already working like that AFAICT. If you can't "View" the brands, then you will not have the menu item, so you definitely won't be able to create, update or delete them... What could be made better is that for instance when you uncheck the view permission for brand, that automatically the rest of the brand permissions are unchecked as well...
2 - We don't have the concept of "features" yet in this template, but that's something interesting to add indeed. I wouldn't mix it with permissions though. This is a different concept altogether.

@fretje thank you for your comments. what you said in point 1 is true but that let me give you a example : take the catalog. what if i had Permissions for Catalog and a set of permissions under catalog for brands, products, categories .... i would access them only if i had rights to the parent, in this case catalog. making this available can help setup roles permissions in a much logical way and codewise, a productcontroller would be secured by an Authorise attribute on Catalog first then the method by the product permissions for viewe, creste and delete .....
point 2, yes it is very different from the permissions. but if I had a feature Called Crm in which i manage a catalog and customers and billing , then i would need to have rights to that feature before managing those entities unfer CRM, hence the nested permissions ...
i hope this helps.
thx.

Well, yes, ultimately, the permissions are just strings... they have to start with "Permission" if you want to use them with the "MustHavePermission" attribute... but otherwise you are totally free to name them anything you want.

we seem to have 'lost' the nav menu for hangfire jobs - maybe a permissions thing...i'm looking now


blockfrost-client <IP_ADDRESS> doesn't build with GHC 9.6.3

Building blockfrost-client <IP_ADDRESS> seems to be failing when building with GHC 9.6.3 with the following error:
Building library for blockfrost-client-<IP_ADDRESS>..
[ 1 of 16] Compiling Blockfrost.Client.Types ( src/Blockfrost/Client/Types.hs, dist/build/Blockfrost/Client/Types.o, dist/build/Blockfrost/Client/Types.dyn_o )
[ 2 of 16] Compiling Blockfrost.Client.NutLink ( src/Blockfrost/Client/NutLink.hs, dist/build/Blockfrost/Client/NutLink.o, dist/build/Blockfrost/Client/NutLink.dyn_o )
[ 3 of 16] Compiling Blockfrost.Client.IPFS ( src/Blockfrost/Client/IPFS.hs, dist/build/Blockfrost/Client/IPFS.o, dist/build/Blockfrost/Client/IPFS.dyn_o )

src/Blockfrost/Client/IPFS.hs:31:14: error: [GHC-88464]
    Variable not in scope: liftIO :: IO Bool -> m Bool
    Suggested fix: Perhaps use 'liftA2' (imported from Prelude)
   |
31 |   hasFile <- liftIO $ System.Directory.doesFileExist fp
   |              ^^^^^^

src/Blockfrost/Client/IPFS.hs:34:7: error: [GHC-88464]
    Variable not in scope: liftIO :: IO () -> m a0
    Suggested fix: Perhaps use 'liftA2' (imported from Prelude)
   |
34 |       liftIO $ putStrLn $ "Uploading: " ++ fp
   |       ^^^^^^

The problem stems from the fact that Control.Monad.Except doesn't reexport Control.Monad.Trans anymore which in turn reexported Control.Monad.IO.Class.
Please repair or adjust dependencies, as https://hackage.haskell.org/package/blockfrost-client reports base (>=4.7 && <5)

Thanks, fixed and released as blockfrost-client-<IP_ADDRESS>.


Duplicated service name validation for alias service

https://github.com/rancher/rancher/issues/2447

LGTM


python312Packages.nbconflux: fix broken build by replacing deprecated code

Description of changes
TL;dr Fixes a minor component  of jupyter that is blocking builds on aarch64-Darwin.
python312Packages.nbconflux fails to build due to its use of SafeConfigParser which was renamed to ConfigParser in Python 3.2. This comes from a versioned copy of python312Packages.versioneer. This results in builds failing on aarch64-Darwin as the package sources predate aarch64 by several years. Older systems got along just fine on the cached binary copy.
This patch does three things:

Replaces the vendorized copy of versioneer with a dependency. (Thank you @emilazy)
Moves the Python requirement from >= 2.7 to >= 3.2.
Fixes the src.owner to account for the repo owners changing their org name several years back. It's pulling from the same source base as always.

cc: @NixOS/darwin-maintainers

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[x] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 340615 run on aarch64-darwin 1

4 packages built:

python311Packages.nbconflux
python311Packages.nbconflux.dist
python312Packages.nbconflux
python312Packages.nbconflux.dist

The file you’re patching is a vendored copy of Versioneer. I think we should simply de‐vendor it;

Done and tested.

Result of nixpkgs-review pr 340615 run on aarch64-darwin 1

4 packages built:

python311Packages.nbconflux
python311Packages.nbconflux.dist
python312Packages.nbconflux
python312Packages.nbconflux.dist


Remotes added via SSH do not work.

Remotes using ssh (git@github.com:USER/REPO) are not found, and if only they exist, an error message of 'no remotes match the existing setting' exist.

Extension version: Nightly, 2020.4.25381 (also present on non-nightly)
VSCode Version: 1.45.0-insider (2020-04-15 version)
OS: Fedora 31

Steps to Reproduce:

Add a repository where all remotes are added via HTTPS
See the 'no remotes match the existing setting' error message show up.

@askvortsov1 I'm having trouble reproducing this, I've tried setting remotes to ssh form and they're correctly found
~/dev/vscode-pull-request-github$ git remote -v
origin  git@github.com:microsoft/vscode-pull-request-github (fetch)
origin  git@github.com:microsoft/vscode-pull-request-github (push)

Are you able to share the full remote url you're using?

Thanks for the quick reply! I currently have the following remotes:
origin  git@github.com:flarum/core.git (fetch)
origin  git@github.com:flarum/core.git (push)
rem     git@github.com:askvortsov1/core.git (fetch)
rem     git@github.com:askvortsov1/core.git (push)
In recent versions of nightly, the situation has changed a bit: instead of just saying that there's no matching remotes found, there's an error message in the bottom right corner saying 'The remote 'rem' is not a valid Github repository'. A similar message occasionally pops up for origin. My current list of remotes in settings is:

origin
rem
upstream
central

What version of the nightly extension are you using? Does the pull request tree load despite the error message? Can you open the output panel and choose "GitHub Pull Request" and copy the logs from that here?

I'm on 2020.4.34022. The pull request tree does not load. After further testing, it looks like that error message only shows up if I add another remote over https (in which case the pull request tree DOES load), otherwise, it behaves like described in https://github.com/microsoft/vscode-pull-request-github/issues/1656#issue-603412513. Apologies for not clarifying that in my previous comment.
After examination of the output logs (forgot that existed, I was trying to look in the dev tools section), it looks like it might be an issue with my OpenSSL installation, so perhaps the solution here is documenting requirements for that / having an error message for that particular error? I put the logs below.
Without a working https remote:
No error message in the bottom right corner shows up. However, the pull request tree is empty, and shows a 'no remotes match the current setting' message.
Remote List:
origin  git@github.com:flarum/core.git (fetch)
origin  git@github.com:flarum/core.git (push)
rem     git@github.com:askvortsov1/core.git (fetch)
rem     git@github.com:askvortsov1/core.git (push)

Output Log:
[Info] Review> Queuing additional validate state
[Info] Review> Validating state...
[Info] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'upstream' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'rem' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'central' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'https_central' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No GitHub remotes found
[Info] Review> no matching pull request metadata found for current branch master

With a working https remote:
An error message in the bottom right corner ocasionally shows up.
Both the PR tree and the issues tree are populated correctly.
Remote List:
https_central   https://github.com/flarum/core.git (fetch)
https_central   https://github.com/flarum/core.git (push)
origin  git@github.com:flarum/core.git (fetch)
origin  git@github.com:flarum/core.git (push)
rem     git@github.com:askvortsov1/core.git (fetch)
rem     git@github.com:askvortsov1/core.git (push)

Output Log:
[Info] GitHubServer> No response from host https://ssh.github.com/flarum/core: write EPROTO<PHONE_NUMBER>6168:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

[Info] GitHubServer> No response from host https://ssh.github.com/askvortsov1/core: write EPROTO<PHONE_NUMBER>6168:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

[Info] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'upstream' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'rem' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'central' found. Please update your 'githubPullRequests.remotes' setting.
[Info] Found GitHub remote
[Info] Review> no matching pull request metadata found for current branch as/view_namespace_extender

Were you able to solve the SSL issue? I am receiving similar logs from an enterprise github server, running 0.16.0
[Info] serverAuthPromises failed: request to http://{serveraddress} failed, reason: write EPROTO<PHONE_NUMBER>04280:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

Unfortunately no, I'm no longer sure it's an issue with my installation, I think it might be with the extension itself

@RMacfarlane any updates on this? Thanks!

I am also having the same issue: HTTPS remote and this extension says no remotes match the current settings

I'm on VSCode 1.47.3, node 12.8.1, GitHub Issues 0.18.0. I am getting this same message whenever I try to use SSH remotes:
[Info] serverAuthPromises failed: request to http://{serveraddress} failed, reason: write EPROTO<PHONE_NUMBER>04280:error:100000f7:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER:../../third_party/boringssl/src/ssl/tls_record.cc:242:

This was true on Linux (Pop_OS) as well as WSL. Haven't tried other OSes yet.
HTTPS seems to work okay, but I much prefer to use SSH.

I'm having the same issue.
Version: 1.48.0
Commit: db40434f562994116e5b21c24015a2e40b2504e6
Date: 2020-08-13T08:03:27.059Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.2.0

And here's the error.
[Info] GitHubServer> No response from host https://ssh.github.com/remirror/remirror: Client network socket disconnected before secure TLS connection was established
[Info] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No remote with name 'upstream' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No GitHub remotes found

Same issue here on Mac:
Version: 1.48.2
Commit: a0479759d6e9ea56afa657e454193f72aef85bd0
Date: 2020-08-25T10:09:08.021Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 18.7.0

git remote -v:
origin	git@github.com:nextmv-io/info (fetch)
origin	git@github.com:nextmv-io/info (push)

Info] Looking for git repository
[Info] Git repository found, initializing review manager and pr tree view.
[Info] Review> Validate state in progress
[Info] Review> Validating state...
[Info] GitHubServer> No response from host https://ssh.github.com/nextmv-io/info: Client network socket disconnected before secure TLS connection was established
[Info] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.
[Info] No GitHub remotes found
[Info] Review> no matching pull request metadata found for current branch develop

pretty much the same here as well. Pretty frustrating as I am just getting started with Github and VSCode and it is dead on arrival. Just can't use the repository at all so, having to reconsider where to go. Command line tools?
[Info] Git repository found, initializing review manager and pr tree view.
[Info] Review> Validate state in progress
[Info] Review> Validating state...
[Info] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.

Pretty clearly though there is a valid remote:
> grant@grant-VirtualBox:~$ git remote -v
> origin	https://github.com/GrantBlack/portal.git (fetch)
> origin	https://github.com/GrantBlack/portal.git (push)

Any progress on this? I have the same issue and it looks like pretty core functionality for this extension to have

Having a similar issue to @GrantBlack here.
[Debug 133281s 932ms] GitHubServer> No response from host https://<IP_ADDRESS>/<org>/<repo>: connect ETIMEDOUT <IP_ADDRESS>:443
[Debug 133281s 932ms] GitHubServer> Host https://<IP_ADDRESS>/<org>/<repo> is associated with GitHub: false
[Debug 133281s 933ms] No remote with name 'origin' found. Please update your 'githubPullRequests.remotes' setting.
[Debug 133281s 933ms] No remote with name 'upstream' found. Please update your 'githubPullRequests.remotes' setting.
[Debug 133281s 933ms] FolderRepositoryManager> Displaying configured remotes: origin, upstream
[Debug 133281s 938ms] No GitHub remotes found
[Debug 133281s 953ms] Review> no matching pull request metadata found for current branch main

That IP address is on a machine-local network only used for running VMs... which I sometimes SSH in to...
My workaround was:
$ mv ~/.ssh/config ~/.ssh/config.bk

I haven't yet looked into exactly /why/ vscode is getting confused by my (somewhat lengthy) ssh user config, but it's now Working(TM)[^1]
Maybe I'll post here again if I figure out what git + vscode + ssh are up to. Hope this helps someone!
[^1] after getting the non-OSS version installed and enabling the right API, but that's documented elsewhere

Probably, I met same issue on creating issue via Create Issue from Selection menu.
There is no remote. Can't create an issue.

My origin is setup like this: git remote -v
$ git remote -v
origin<EMAIL_ADDRESS>(fetch)
origin<EMAIL_ADDRESS>(push)

Workaround: I've changed remote to https:// and This extension works.
$ git remote -v
origin	https://github.com/asciidwango/js-primer.git (fetch)
origin	https://github.com/asciidwango/js-primer.git (push)

env:

VSCode Version: 1.51.1
Extension Version: 0.21.2

@azu Is there anything special in your ssh config? If you change the remotes back to how they were originally, can you check what's in the Output Panel when you select "GitHub Pull Request" in the dropdown there?

Sorry for the delay.
Does vscode github pull request try to connect ssh.github.com?
[Info] Looking for git repository
[Info] Git repository found, initializing review manager and pr tree view.
[Info] Review> Validate state in progress
[Info] Review> Validating state...
[Info] GitHubServer> No response from host https://ssh.github.com/<owner>/<repo>: Client network socket disconnected before secure TLS connection was established
[Info] No remote with name 'origin' found.
[Info] No remote with name 'upstream' found.
[Info] No GitHub remotes found
[Info] Review> no matching pull request metadata found for current branch test
[Info] Review> no matching pull request metadata found on GitHub for current branch test

My .ssh/config
$ cat ~/.ssh/config

Host github.com
    User git
    Hostname ssh.github.com
    Port 443
    IdentityFile ~/.ssh/github/id_rsa.github.com
    TCPKeepAlive yes
    IdentitiesOnly yes
Host gist.github.com
    User git
    Hostname ssh.github.com
    Port 443
    IdentityFile ~/.ssh/github/id_rsa.github.com
    TCPKeepAlive yes
    IdentitiesOnly yes

The same happens in my env too.
I did clone my project using HTTPS and SSH. The extension works fine with the project cloned with HTTPS, but it failed to load anything with the project cloned with SSH (no remote matches the current setting).
env:
vs-code: 1.53.2
Extension version: 0.23.1

Adding a me too here, I have an upstream as a http remote, and an origin as an ssh remote. attempting to create a PR complains that it cant find a github repo for origin
vscode 1.54.3
extension ver 0.24.0

not work either.
My config:
(omicron) root@150d7868b97c:/apps/omicron# git remote -v
origin  git@github.com:zillionare/omicron.git (fetch)
origin  git@github.com:zillionare/omicron.git (push)

more log:
[Info] Looking for git repository
[Info] Git repository found, initializing review manager and pr tree view.
[Info] Review> Validate state in progress
[Info] Review> Validating state...
[Info] GitHubServer> No response from host https://ssh.github.com/zillionare/omicron: request to https://ssh.github.com/api/v3/rate_limit failed, reason: write EPROTO<PHONE_NUMBER>63552:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332:
[Info] No remote with name 'origin' found.
[Info] No GitHub remotes found
[Info] Review> no matching pull request metadata found for current branch release
[Info] Review> no matching pull request metadata found on GitHub for current branch release

after setting https as remote url, the extension works. But ssh is prefered. Please have this fixed, thanks!

This can be work around using one url for fetch, one for push. The following config in .git/config works:
[remote "origin"]
        url = https://github.com/zillionare/cookiecutter-pypackage.git
        pushurl = git@github.com:zillionare/cookiecutter-pypackage.git
        fetch = +refs/heads/*:refs/remotes/origin/*

This allows extension pull request with https, while we can still sumbit changes by ssh.

Hello All!
I'm also facing this issue.
OS: Windows 10 Pro
Vscode version 1.55.2
Extension version: 0.25.1
PR worked when remotes were set to https. They do not work on SSH.
Attaching log.
vscode_ext_log.txt

@RMacfarlane
Here is what I have found so far since I started to face this issue 2 days ago when I updated my .ssh/config to use this:
Host github.com
    Hostname ssh.github.com
    Port 443
    User git
    IdentityFile /Users/__USERNAME__/.ssh/id_rsa-office
    IdentitiesOnly yes

The reason of this change is that GitHub is giving me lately, too much timeouts on port 22 with default config. This change is based on this doc from GH
More details:
[Debug<PHONE_NUMBER>.124s] Looking for git repository
[Debug<PHONE_NUMBER>.125s] Git repository found, initializing review manager and pr tree view.
[Debug<PHONE_NUMBER>.129s] Review> Validate state in progress
[Debug<PHONE_NUMBER>.129s] Review> Validating state...
[Debug<PHONE_NUMBER>.89s] GitHubServer> No response from host https://ssh.github.com/__REDACTED_ORG__/__PRIVATE_REPO__: request to https://ssh.github.com/api/v3/rate_limit failed, reason: Client network socket disconnected before secure TLS connection was established
[Debug<PHONE_NUMBER>.89s] GitHubServer> Host https://ssh.github.com/__REDACTED_ORG__/__PRIVATE_REPO__ is associated with GitHub: false
[Debug<PHONE_NUMBER>.891s] No remote with name 'origin' found.
[Debug<PHONE_NUMBER>.891s] No remote with name 'upstream' found.
[Debug<PHONE_NUMBER>.891s] FolderRepositoryManager> Displaying configured remotes: origin, upstream
[Debug<PHONE_NUMBER>.596s] No GitHub remotes found
[Debug<PHONE_NUMBER>.611s] Review> no matching pull request metadata found for current branch master
[Debug<PHONE_NUMBER>.611s] Review> no matching pull request metadata found on GitHub for current branch master

git remote -v
origin  git@github.com:__REDACTED_ORG__/__PRIVATE_REPO__.git (fetch)
origin  git@github.com:__REDACTED_ORG__/__PRIVATE_REPO__.git (push)

I had it working on OSX 11.5 but for some reason it stopped, tried reinstalling but to no avail, getting the same message
 GitHubServer> No response from host https://ssh.github.com/company/repository: request to https://ssh.github.com/api/v3/rate_limit failed, reason: Client network socket disconnected before secure TLS connection was established

Got the https over ssh from this https://docs.github.com/en/github/authenticating-to-github/troubleshooting-ssh/using-ssh-over-the-https-port working, but still, same error, cannot use https due work restrictions enforcing ssh
Any clue?
Thank you!

Should be fixed by f837b766033fd48ef28b16abcfc3f85303992f90.


Clear leak of (copy of) OPENSSL_MALLOC_FAILURES env var string

I was playing with using the OPENSSL_MALLOC_FAILURES environment variable and noticed that the value of that string is leaked if it's set. This PR just provides a way to clear that and adds a call to do so to s_client.c which is what I was using for that test. That leak was a bit annoying as it meant all tests had a leak, whereas with this fix, any leaks resulting from memory allocation failures are more interesting, so valgrind output is more useful.
It's likely there's some better way trigger freeing that variable, so this is probably not quite the right thing to merge but if there's a good generic way to free stuff on exit then this might turn into a useful thing.
If (as is more likely) there's a better way to handle this, it's fine to just close this and fix that other way.

The push above makes the changes suggested today and adds a bit of documentation.
In the process of doing that it occurred to me that we could maybe do better if we just use a fixed sized buffer for md_failstring, rather than doing an OPENSSL_strdup() at all. That'd also mean no new API etc. So would it be acceptable to e.g. change to static char md_failstring[MD_FAILSTRING_MAX] with MD_FAILSTRING_MAX set to 128 or so and a check on the length of the output from getenv()?

@t8m would you have any thoughts on this suggestion? I am nervous about adding to the static overhead of the library for a rarely-used feature, and I don't know what sort of length of malloc failure string people tend to set (i.e. 128 is almost certainly long enough all the time, but is quite a lot of memory - in some contexts - for an unused feature, but might not be enough for some tricky debugging situations - i.e. gradually extending the failure string to nearly track down an issue but then running out of space would be a very frustrating experience)

would you prefer I close this PR and open another or force-push that change to this PR?

No need to open a new PR, just update this one

did a force push with the static version (will fix any CI issues in a sec)

OK, the CI seems happy now, so this static-flavoured PR is ready to review...

fixup above is for @tom-cosgrove-arm minor comments, sorry if that forces you to re-approve (and/or if I mucked up and have to push again to make CI happy:-)
I also have a question though: I have a script that iterates causing one more malloc to fail each time (that's in a gist). When I run that valgrind repeatedly reports some errors that are a nuisance, (I'm using the script to check my ECH client-side code), likely not serious but probably worth fixing. I have some fixes for those that I think get me a clean run of the script (running now again), but I'm not very sure that these are the right fixes. You can see the relevant changes here. I guess the right thing here is to let you re-approve this, then open a separate PR for those fixes after this one is merged?
But if you prefer to add those changes to this PR, that's fine by me too.

then open a separate PR for those fixes after this one is merged?

Yes, best open separate PRs to fix different issues

This pull request is ready to merge

Merged to the master branch. Thank you for your contribution.


ResponseValidationError when setting lock mode

Setting a new lock mode on a device works as expected. The API however crashes trying to send the response:
Request:
PATCH http://localhost:8080/devices/<id>/control?lock_mode=none

Traceback:
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/httptools_impl.py", line 399, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/usr/local/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.12/site-packages/starlette/routing.py", line 72, in app
    response = await func(request)
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 296, in app
    content = await serialize_response(
              ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/fastapi/routing.py", line 155, in serialize_response
    raise ResponseValidationError(
fastapi.exceptions.ResponseValidationError: 1 validation errors:
  {'type': 'model_attributes_type', 'loc': ('response', 'curfew'), 'msg': 'Input should be a valid dictionary or object to extract fields from', 'input': [{'enabled': True, 'lock_time': '22:00', 'unlock_time': '06:00'}]}

Hey @julianwachholz, unfortunatly I could not reproduce the issue on my own SureFlap Device. But based on your provided traceback (Thanks for that!) I have an idea, what went wrong. It would be great, if you can try out the potential fix, I am releasing soon.
Kind regards Fabian

Please check if Release 4.2.7 fixed the issue. If not, please let me know.

Yep that fixed it. Thank you @fabieu! ❤ Now I can lock our cats outside and no longer worry about nightly mice being brought back home for the robot vacuum to splatter all over our floors! 😆


Swap ordering of users in userlist page

Show newest users at the top by default, or allow option to sort newest-first (as they are the most likely to need attention)
Also a good place to test pagination

resolved in ab169adcaabb4ac6e35858febd4ead1e893314ae


Get TABQUERY_CLI_PATH from envier

[x] Add check for TABQUERY_CLI_PATH environment variable
[ ] Bump version

Stretch:

[ ] accept arg for name of envvar to grab

Hi, @lukewrites! Thanks for opening this PR!

In the file tdvt/tdvt/tabquery.py:

Line 33:9: F405 'logging' may be undefined, or defined from star imports: .resources
Line 24:9: F405 'logging' may be undefined, or defined from star imports: .resources
Line 23:20: F405 'get_ini_path_local_first' may be undefined, or defined from star imports: .resources
Line 22:1: W293 blank line contains whitespace
Line 17:13: F523 '...'.format(...) has unused arguments at position(s): 0
Line 16:9: F405 'logging' may be undefined, or defined from star imports: .resources

For reference: Error Code Reference, PEP8, Python code style


RBAC improvements: don't give operator namespace admin and use unique service account

(╯°□°）╯︵ ┻━┻

RBAC rules are already restricted to non-admin. And #189 covers adding a unique service account.
Closing in favor of that.


allow isolated build for FROM scratch base image in Dockerfile

STONEBLD-1070

Maintainers will complete the following section

[x] Commit messages are descriptive enough
[x] Code coverage from testing does not decrease and new code is covered
[n/a] Python type annotations added to new code
[n/a] JSON/YAML configuration changes are updated in the relevant schema
[n/a] Changes to metadata also update the documentation for the metadata
[ ] Pull request has a link to an osbs-docs PR for user documentation updates
[n/a] New feature can be disabled from a configuration file

Do we want/need to document this for users?

docs pr https://github.com/containerbuildsystem/osbs-docs/pull/232
we didn't have described that isolated build will fail for FROM scratch


Error in sendrecv demo

I run the demo in windows with Gstreamer 1.14.0 release.
In the example sendrecv, when I open the index.html in chrome, it always shows
failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
and can't connect to the server.
But I try the session-client.py and they work well.
Any idea about the error?

Can't help you with your problem now, but if you just want to test the WebRTCbin you have https://webrtc.nirbheek.in, which worked pretty well.
Do you have a server who just share index.html and the js folder ?

OK, I may use https://webrtc.nirbheek.in now, but I want to configure my own webrtc application, so I still need to build the local signalling.

Do you have a server who just share index.html and the js folder ?

what does it mean?

If you're serving the html/js yourself, you need to either 1. have a proper SSL certificate installed for your server or 2. add an exception for the signalling server inside your browser by visiting the signal server location (default is https://:8443) and adding the exception.
Note that you don't need to use this specific signalling to build a webrtc application using GStreamer's webrtcbin.  This is just an example of how it could be done.

@ystreet Thank you


Bump to Kubernetes 1.30

Bump all the dependencies, custom-metrics-apiserver and Kubenetes to 1.30.
Since there is no kind image available for 1.30 yet, I built one myself and use it in the tests. I will change that later once an official image is available.

cc @jaybooth4

Regarding version skew, could users deploy prometheus-adapter 1.30 in cluster k8s 1.28?

/retest-required

/retest-required

/retest-required

There is an odd issue with the linter, I'll investigate. I'll look at the e2e tests later

Any updates here? I'd like to get these upgrades submitted to address vulnerabilities in this project.

If you are talking about the otel CVE, the project is not affected. That said, I'll be looking at this PR again soon.

/assign @CatherineF-dev
/triage accepted

/lgtm


Barrows Minimap Colour-Blind Friendly

When in the tunnels at Barrows, the doors that are open-able are currently green squares (I think). However, I am colour-blind and it is really hard to distinguish from all of the yellow dots on the mini-map.
If there is any way to change the colour of the squares that are representing the doors, to something a little easier to see, it would make barrows a little more convenient for the colour-blind.
Thanks!

Duplicate of #2941


import throttle from 'lodash/throttle' is actually better at reducing bundle size than 'lodash.throttle'

See https://github.com/lodash/lodash/issues/3838
If two lodash per-method packages, e.g. lodash.throttle and lodash.debounce, depend on an underlying lodash function (public or internal API), that function will be inlined in each of the modular build packages, bloating webpack bundle size.  The modular build packages can't share any code.
On the other hand, if your package imports from lodash/throttle, and another package imports from lodash/debounce, they can share any underlying code they depend on and the webpack bundle will be smaller.
So the per-method packages really have no advantages, and John-David Dalton pointed out that they're going to be removed in v5.
Having lodash as a dependency is perfectly fine as long as you always import from submodules, never its root module.

Here's a demonstration of this:
lodash-submodules.js
import map from 'lodash/map'
import pickBy from 'lodash/pickBy'

map()
pickBy()

webpack lodash-submodules.js
  Asset      Size  Chunks             Chunk Names
main.js  21.9 KiB       0  [emitted]  main
Entrypoint main = main.js
[38] (webpack)/buildin/module.js 497 bytes {0} [built]
[46] ./lodash-submodules.js 80 bytes {0} [built]
[60] (webpack)/buildin/global.js 472 bytes {0} [built]
    + 133 hidden modules

lodash-per-method-packages.js
import map from 'lodash.map'
import pickBy from 'lodash.pickBy'

map()
pickBy()

webpack lodash-per-method-packages.js
  Asset      Size  Chunks             Chunk Names
main.js  24.6 KiB       0  [emitted]  main
Entrypoint main = main.js
[0] (webpack)/buildin/global.js 472 bytes {0} [built]
[1] (webpack)/buildin/module.js 497 bytes {0} [built]
[4] ./lodash-per-method-packages.js 80 bytes {0} [built]
    + 2 hidden modules

thanks for the info


Python bindings?

Is your feature request related to a problem?
There currently aren't any good libraries for decancering text in python.
Describe the solution you'd like
I'd like python bindings using a lib such as PyO3.
Describe alternatives you've considered
I tried reinventing the wheel but failed and would love to integrate this perfectly working library into my python projects as well.

Thank you kind soul.

Interesting! I'll add this third-party binding to the README!


:sparkles: Migration Cleanup/New Apps

Brief summary of what this Epic is
We need to retire old infrastructure now that the migration tasks have been completed as well as put into place a new process for deploying new applications.
Other information
Output of meeting to discuss the new app process:
https://docs.google.com/document/d/1wXsNahK_1tShZVGneDNaHvFlhhu8HtKO-GPjRbD-ZF0/edit
List of issues in this epic

[x] #1757
[x] #1772
[x] #1712
[x] #2043
[x] #1794
[x] #2330
[x] #1700
[x] #3300
[x] #3699

Closed as completed


[Feature Request] Remove clickability of own profile button.

I have a compulsive habit of checking my profile and, by extension, my tweets and likes. Is it possible to disappear one's profile button from the sidebar, as well as disable clicking on own's profile image /username to access their profile? A small elision, but it would do a lot for people like me. Of course, typing in my username would lead me to my account, but it would require some time. Thank you.

This is maybe a bit too specific a feature for Control Panel for Twitter, but it's something that's easily done with a userstyles extension like Stylus
If you replace the link target in this CSS rule with your own Twitter username, then any and all links to your profile wil do nothing when clicked:
a[href="/jbscript"] {
  pointer-events: none;
}

Hi, if anyone has this issue, I recommend the "Click to Remove Element" plugin for Chrome.


See the video about DB

Link to the video: https://www.youtube.com/watch?app=desktop&v=1HamqOuv2Cw


View results return deleted documents in main

Deleted documents end up returning view results. If include_docs=true is used the emitted documents is returned as null.  This may be related to https://github.com/apache/couchdb/issues/3381
View results return:
{"id":"doc660","key":9,"value":[9,"649-1393896c61576b7b80d086f4f3858e78",2935760,122458],"doc":null}
and yet:
curl 'foo:bar@localhost:15984/db1/doc660'
{"error":"not_found","reason":"deleted"}

Reproducer script (thanks to @rnewson)
#!/usr/bin/env python

import random
import requests
import threading

url='http://<IP_ADDRESS>:15984/db1/'

def thread_fun():
    s = requests.Session()
    s.auth = ('foo', 'bar')
    while True:
        doc_id = random.randrange(1, 100)
        doc =  {"foo": random.randrange(1,1000000)}
        r = s.get('{}/doc{}'.format(url, doc_id))
        if r.status_code == 200:
            doc['_rev'] = r.json()['_rev']
            if random.random() > 0.5:
                doc['_deleted'] = True
        s.put('{}/doc{}'.format(url, doc_id), json = doc)

if __name__ == "__main__":
    s = requests.Session()
    s.auth = ('foo', 'bar')
    s.delete(url)
    s.put(url)
    s.put('{}/_design/foo'.format(url), data = '{"views":{"bar":{"map":"function (doc) { emit(doc.foo, doc.foo); }"}}}')

    for x in range(10):
        t = threading.Thread(target=thread_fun)
        t.start()

what is the environment ?

@android-programmer The environment is a recent version of the main branch (running on FDB).

Debugging this a bit more:
I initially suspected it maybe related to the https://github.com/apache/couchdb/commit/27e8e332cf974bff69b86a8d3c5e2f5a6de4125f commit to minimize conflicts and use snapshot reads for db seq. So I reverted that commit but was still able to reproduce the issue. I had to modify the script slightly to not delete and re-create the view as the commit fixed the view indexer constantly conflicting and never finishing.
Then I noticed that curl -s $DB/db1/_design/foo/_info returns the latest db sequence so the view is considered "updated" to the latest db_seq, which rules out the view somehow not processes all of the changes feed and stopping early.
% curl $DB/db1/_design/foo/_view/bar'?include_docs=true&limit=10'
{"total_rows":98,"offset":null,"rows":[
...
{"id":"doc66","key":46591,"value":"1-90516cb1e0f4bc21e154f63be6fddb2a","doc":null},
...
]}

% curl -s $DB/db1/_design/foo/_info| jq '.view_index.update_seq'
"000000069d8cf42c00000000"

% curl -s $DB/db1 | jq .update_seq
"000000069d8cf42c00000000"

% curl -s  $DB/db1/_changes | grep doc66
{"seq":"000000069d7fe8be00000000","id":"doc66","changes":[{"rev":"16-1c15c73b3bbea9c5427cb8497e8c18b9"}],"deleted":true},

A trick that might help debug the issue is to use the local_seq view option then emit update_sequence for each doc in the view.
#!/usr/bin/env python

import json
import random
import requests
import threading

URL = 'http://<IP_ADDRESS>:15984/db1'
USER = 'adm'
PASS = 'pass'
#doc.foo
VIEW = {
    "views" : {
        "bar":{
            "map":"function (doc) {emit(doc._id, [doc._rev, doc._local_seq]); }"
        }
    },
    "options": {"local_seq": True}
}
def thread_fun():
    s = requests.Session()
    s.auth = (USER, PASS)
    while True:
        doc_id = random.randrange(1, 10)
        doc = {}
        r = s.get('{}/doc{}'.format(URL, doc_id))
        if r.status_code == 200:
            doc['_rev'] = r.json()['_rev']
            if random.random() > 0.5:
                doc['_deleted'] = True
        s.put('{}/doc{}'.format(URL, doc_id), json = doc)

if __name__ == "__main__":
    s = requests.Session()
    s.auth = (USER, PASS)
    s.delete(URL)
    s.put(URL)
    s.put('{}/_design/foo'.format(URL), data = json.dumps(VIEW))
    random.seed(42)
    for x in range(1):
        t = threading.Thread(target=thread_fun)
        t.start()

curl $DB/db1/_design/foo/_view/bar'?include_docs=true&limit=10'
{"total_rows":9,"offset":null,"rows":[
{"id":"doc1","key":"doc1","value":["239-a68671522c8878b3e142c2e0c4e0c088","00000007c21912e900000000"],"doc":{"_id":"doc1","_rev":"252-6d90b849a9794f0c10c118255992ea91"}},
{"id":"doc2","key":"doc2","value":["260-59a6c60bddf9044d90c571569cb2c5af","00000007c222b81800000000"],"doc":null},
{"id":"doc3","key":"doc3","value":["259-bee2fc5c0c38d01495d883c25b20fffb","00000007c20d6a3b00000000"],"doc":null},
{"id":"doc4","key":"doc4","value":["267-da90f2173898fb5a5482a9a1dc36e56e","00000007c21e82cf00000000"],"doc":{"_id":"doc4","_rev":"280-c55640f682430b2b497a91499bcfd675"}},
{"id":"doc5","key":"doc5","value":["243-69229d2e0837f8ecf47595ce8b9efddb","00000007c227d2aa00000000"],"doc":null},
{"id":"doc6","key":"doc6","value":["249-a35e458fe1eacba23641d6213230576c","00000007c2041e7700000000"],"doc":null},
{"id":"doc7","key":"doc7","value":["268-bbc6d12f87a0031f8d2de6edcd4fb3d7","00000007c22354ca00000000"],"doc":{"_id":"doc7","_rev":"275-506c6db6153a407c4eefe34fa03f69dc"}},
{"id":"doc8","key":"doc8","value":["281-70a9df96a142c04ea0e45fc3ceea93a6","00000007c225fcb600000000"],"doc":{"_id":"doc8","_rev":"290-89c40a21527dc196d31118dfbce63dbe"}},
{"id":"doc9","key":"doc9","value":["281-54c6e5c3e806d21fcb39f3787440e845","00000007c266503b00000000"],"doc":{"_id":"doc9","_rev":"281-54c6e5c3e806d21fcb39f3787440e845"}}

Something maybe odd with IDTree or ViewMap BTree updates. This a log of all the write_docs docs, then the IDMap and ViewMap items:
[error] 2021-02-25T23:32:24.797212Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => false,id => <<"doc5">>,sequence => <<"00000008684c7fbb00000000">>}
[error] 2021-02-25T23:32:24.797263Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => true,id => <<"doc8">>,sequence => <<"00000008684d588a00000000">>}
[error] 2021-02-25T23:32:24.797296Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => false,id => <<"doc7">>,sequence => <<"00000008684e915100000000">>}
[error] 2021-02-25T23:32:24.797343Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => true,id => <<"doc2">>,sequence => <<"000000086850064b00000000">>}
[error] 2021-02-25T23:32:24.797375Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => false,id => <<"doc9">>,sequence => <<"00000008685131a900000000">>}
[error] 2021-02-25T23:32:24.797403Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => true,id => <<"doc6">>,sequence => <<"000000086851c7b200000000">>}
[error] 2021-02-25T23:32:24.797433Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => false,id => <<"doc3">>,sequence => <<"0000000868525b8b00000000">>}
[error] 2021-02-25T23:32:24.797463Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => true,id => <<"doc1">>,sequence => <<"000000086854237300000000">>}
[error] 2021-02-25T23:32:24.797494Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => false,id => <<"doc4">>,sequence => <<"000000086855493400000000">>}
[error] 2021-02-25T23:32:24.798140Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc1">>,#Ref<0.2949210352.4145020935.107350>}
[error] 2021-02-25T23:32:24.798187Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc2">>,#Ref<0.2949210352.4145020935.107350>}
[error] 2021-02-25T23:32:24.798214Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc3">>,[{0,[<<"doc3">>]}]}
[error] 2021-02-25T23:32:24.798250Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc4">>,[{0,[<<"doc4">>]}]}
[error] 2021-02-25T23:32:24.798274Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc5">>,[{0,[<<"doc5">>]}]}
[error] 2021-02-25T23:32:24.798297Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc6">>,#Ref<0.2949210352.4145020935.107350>}
[error] 2021-02-25T23:32:24.798322Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc7">>,[{0,[<<"doc7">>]}]}
[error] 2021-02-25T23:32:24.798352Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc8">>,#Ref<0.2949210352.4145020935.107350>}
[error] 2021-02-25T23:32:24.798382Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@202 IDTree {<<"doc9">>,[{0,[<<"doc9">>]}]}
[error] 2021-02-25T23:32:24.798924Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@213 ViewMap {{<<"doc3">>,<<"doc3">>},[<<"22-097e4e5fed3b10b9e00cc0ee2c35dd43">>,<<"0000000868525b8b00000000">>]}
[error] 2021-02-25T23:32:24.798963Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@213 ViewMap {{<<"doc4">>,<<"doc4">>},[<<"24-56e5817ad4df6a2391016f3f8fa51079">>,<<"000000086855493400000000">>]}
[error] 2021-02-25T23:32:24.799005Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@213 ViewMap {{<<"doc5">>,<<"doc5">>},[<<"19-a2949bfc9889ebd35035a56e6ffc4ad1">>,<<"00000008684c7fbb00000000">>]}
[error] 2021-02-25T23:32:24.799037Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@213 ViewMap {{<<"doc7">>,<<"doc7">>},[<<"20-2b4f169ba4d20df8bb1563819b8e6b2d">>,<<"00000008684e915100000000">>]}
[error] 2021-02-25T23:32:24.799073Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_trees:update_views@213 ViewMap {{<<"doc9">>,<<"doc9">>},[<<"30-63abba104dee58f12376d0ffd340b8ec">>,<<"00000008685131a900000000">>]}
[error] 2021-02-25T23:32:24.799385Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:is_update_finished@273 is_update finished true AtDbSeq:true LastSeq:<<"000000086855493400000000">> DbSeq:<<"000000086855493400000000">> AtViewVs:false ViewVs:not_found

We notice that doc6 should be deleted and is updated with a deletedRef in couch_views_tree:update_views/3, however it still shows up in the view results:
% curl $DB/db1/_design/foo/_view/bar'?include_docs=true&limit=10'
{"total_rows":6,"offset":null,"rows":[
{"id":"doc3","key":"doc3","value":["22-097e4e5fed3b10b9e00cc0ee2c35dd43","0000000868525b8b00000000"],"doc":{"_id":"doc3","_rev":"22-097e4e5fed3b10b9e00cc0ee2c35dd43"}},
{"id":"doc4","key":"doc4","value":["24-56e5817ad4df6a2391016f3f8fa51079","000000086855493400000000"],"doc":{"_id":"doc4","_rev":"24-56e5817ad4df6a2391016f3f8fa51079"}},
{"id":"doc5","key":"doc5","value":["19-a2949bfc9889ebd35035a56e6ffc4ad1","00000008684c7fbb00000000"],"doc":{"_id":"doc5","_rev":"19-a2949bfc9889ebd35035a56e6ffc4ad1"}},
{"id":"doc6","key":"doc6","value":["11-bb8b0b3302cad9e88443e0f6a66b8834","000000086809697700000000"],"doc":null},
{"id":"doc7","key":"doc7","value":["20-2b4f169ba4d20df8bb1563819b8e6b2d","00000008684e915100000000"],"doc":{"_id":"doc7","_rev":"20-2b4f169ba4d20df8bb1563819b8e6b2d"}},
{"id":"doc9","key":"doc9","value":["30-63abba104dee58f12376d0ffd340b8ec","00000008685131a900000000"],"doc":{"_id":"doc9","_rev":"30-63abba104dee58f12376d0ffd340b8ec"}}
]}

And the view sequence is stale in the view result:
[error] 2021-02-25T23:32:24.797403Z<EMAIL_ADDRESS><0.513.0> --------  +++++++ couch_views_indexer:write_docs@442 writting doc:#{deleted => true,id => <<"doc6">>,sequence => <<"000000086851c7b200000000">>}

vs
{"id":"doc6","key":"doc6","value":["11-bb8b0b3302cad9e88443e0f6a66b8834","000000086809697700000000"],"doc":null},

This workload seems to cause quite a large number of commit conflicts for the indexer. Should the indexer be executing snapshot reads for the document data so that concurrent modifications of documents don't cause the commit in the view index to abort? More a performance issue than a correctness one, but it seems to me that a fast client updating a single document in a loop, combined with a suitably complex piece of JS code in a map function, could cause the indexer to get into an endless loop. I don't think that's what we want.
I wasn't able to track it down completely but I also wonder if the bug is somewhere in those restarts. I did notice situations where e.g. the indexer would be indexing a batch of 5 documents, 1 of those documents would get updated concurrently, the indexer would restart and only index the other 4 documents, and the 5th one would be the one that was messed up in the view.

Perhaps the same issue, perhaps not, but I find that I can get a view to be permanently wrong just by updating the same document in a rapid loop. For example, if I just update doc1 in a loop, I find that the view index generally ends up permanently empty.
#!/usr/bin/env python3

import json
import random
import requests
import threading

URL = 'http://<IP_ADDRESS>:15984/db1'
USER = 'adm'
PASS = 'pass'
#doc.foo
VIEW = {
    "views" : {
        "bar":{
            "map":"function (doc) { emit(doc._id, [doc._rev, doc._local_seq]); }"
        }
    },
    "options": {"local_seq": True}
}
def thread_fun():
    s = requests.Session()
    s.auth = (USER, PASS)
    while True:
        doc_id = 1
        doc = {}
        r = s.get('{}/doc{}'.format(URL, doc_id))
        if r.status_code == 200:
            doc['_rev'] = r.json()['_rev']
        s.put('{}/doc{}'.format(URL, doc_id), json = doc)

if __name__ == "__main__":
    s = requests.Session()
    s.auth = (USER, PASS)
    s.delete(URL)
    s.put(URL)
    s.put('{}/_design/foo'.format(URL), data = json.dumps(VIEW))
    random.seed(42)
    for x in range(1):
        t = threading.Thread(target=thread_fun)
        t.start()

(previous comment deleted because inaccurate -- just forgot to hit save on the updated view definition and it was throwing a JS error on the indexing :))

This should be fixed by #3385.

Not entirely. There's still an issue that the document is loaded in a separate transaction. If the doc is deleted between the completion of the view indexing and the request to attach the doc we will still hit this issue.

@kocolosk there is a separate issue that focuses mainly on that aspect https://github.com/apache/couchdb/issues/3381
After @davisp's fix I can't reproduce this issue if the view is allowed to "settle" and process all the changes up to database's last update_seq.

Agreed, if this issue is scoped to permanent inconsistencies then we are all set here.


How to work with DBs on Android

Search for ways to incorporate the db into the app.

If you want to connect to Mysql database from Android you just need to follow these steps:
Download the driver mysql-connector-java-3.0.17-ga-bin.jar
Paste it to the folder libs in your android project.
Click ConfigureBuildPath->add jar to include the jar to the project.
Now you have the driver, but you also need to give permissions in the androidManifest.xml for INTERNET.
Use the next code for connecting:
try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch(Exception e){
    System.err.println("Cannot create connection");
}
try{
    connection = DriverManager.getConnection("jdbc:mysql://192.168.xx.xx:3306/dbname","root","password");
    Statement statement = connection.createStatement();

    String query = "SELECT column1, column2 FROM table1 WHERE column3 = ";
    query = query +"'" +variable+"'";
    ResultSet result = statement.executeQuery(query);
}catch(Exception e){
    System.err.println("Error");
}

Advice: If the instance of the drivers doesn't give any errors but you get an exception with the connection you should try to remove the Target SDK version from your manifest, as for some versions this gives problems.


Incomplete Beta Function Inverse

Summary
This PR adds the inverse of the incomplete beta function, will be needed for some of the quantile/icdf functions to come.
Tests
Individual rev/fwd/mix tests have been added, as the gradients use the F32 hypergeometric series and the autodiff finite-differencing tests are not stable.
Side Effects
The F32 templating has been relaxed to allow each of the inputs to be different types
Release notes
Add the incomplete beta function inverse
Checklist

[x] Math issue #2513

[x] Copyright holder: Andrew Johnson
The copyright holder is typically you or your assignee, such as a university or company. By submitting this pull request, the copyright holder is agreeing to the license the submitted work under the following licenses:
- Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
- Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

[x] the basic tests are passing

unit tests pass (to run, use: ./runTests.py test/unit)
header checks pass, (make test-headers)
dependencies checks pass, (make test-math-dependencies)
docs build, (make doxygen)
code passes the built in C++ standards checks (make cpplint)

[x] the code is written in idiomatic C++ and changes are documented in the doxygen

[x] the new changes are tested

@andrjohns do you mind if I put in the latex formulas for the partials in the rev file documentation?

Ah good point forgot about those! Yeah feel free to add them, otherwise I can do it tonight/tomorrow

Ah good point forgot about those! Yeah feel free to add them, otherwise I can do it tonight/tomorrow

@serban-nicusor-toptal it looks like the downstream tests for this are failing due to some odd git errors, would you mind having a look when you get a minute?

Hey, checking!

Thanks for sorting this so quickly!

I don't feel comfortable reviewing the cpp but the derivatives and tests look good to me. Maybe @SteveBronder can take a look?

will it be possible to get this in to the 2.29 release? We can then do student_t copulas

@serban-nicusor-toptal looks like the jenkins for this one is having trouble with clang-format, if you wouldn't mind having a look when you've got a minute:
git checkout -b feature/ibeta_inv
Switched to a new branch 'feature/ibeta_inv'
+ clang-format --version
<EMAIL_ADDRESS>line 4: clang-format: command not found
+ xargs -n20 -P8 clang-format -i
+ find stan test -name '*.hpp' -o -name '*.cpp'
xargs: clang-format: No such file or directory
++ git diff
+ [[ '' != '' ]]

Can you try merging in the latest develop, there were quite a few changes in the Jenkinsfile and test machine since then. Hopefully that will help.

Can you try merging in the latest develop, there were quite a few changes in the Jenkinsfile and test machine since then. Hopefully that will help.

Ah thought I had but it hadn't triggered a new CI run for some reason

@rok-cesnovar or @SteveBronder would either of you have a minute to review this one? @spinkney has signed off on the math, so it's just the c++ to be checked

I can do it today. We wont be able to merge after we do the patch release (https://github.com/stan-dev/cmdstan/issues/1086) which should be in a day or two.

@rok-cesnovar This should be all ready for another look

Thanks!


Toolbar icon label vertical positioning

The toolbar label text next to icons needs to be 1px higher for good alignment with the icon.

Fixed


Expose a CMake flag to build RDKit with -rpath

This is the only changes we make to the RDKit in order to be able to build it internally for our infrastructure. Hopefully they are generally useful enough features that they could be included in the mainline RDKit.

Adding a RDK_BUILD_RPATH_SUPPORT CMake option to build the RDKit shared libraries with -rpath pointing to the location that the C++ shared will be installed into.
Allow catch to be manually downloaded into the proper location (similar to the rest of the Extrernal dependencies). We have the requirement that our software deployments need to be self-contained (i.e. make no external internet connections), this gives us a guarantee that we have all the proper sources in place to re-create any binary package.

Including these in the mainline would make it easier for us to keep up to date with RDKit's master branch and they seem to be generally useful build features.

@bp-kelley : as long as you have no objections, I will go ahead and merge this.

I'm fine with it.  Seems quite reasonable.

Thanks @coleb!


Update scalatest to 3.1.0

Updates org.scalatest:scalatest from 3.0.8 to 3.1.0.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scalatest", artifactId = "scalatest" } ]

Applied Migrations

https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.0.x/rules/src/main/scala/org/scalatest/autofix/v3_0_x/RenameDeprecatedPackage.scala
https://raw.githubusercontent.com/scalatest/autofix/e4de53fa40fac423bd64d165ff36bde38ce52388/3.1.x/rules/src/main/scala/org/scalatest/autofix/v3_1_x/RewriteDeprecatedNames.scala

labels: semver-minor, scalafix-migrations

I think this can be closed, there is a problem with the release that might be connected with this https://github.com/scalatest/scalatestplus-scalacheck/issues/17


fix accessors

Stack:

#28
#27 ⬅

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.


chore: Use psycopg[binary]

Closes https://github.com/meltano/meltano/issues/6772

I'll slot ~30min this evening to try to fix the issues with the flask-* deps

@edgarrmondragon Do you think this would be easier to do as part of Meltano v3, now that the UI & API have been removed?

@edgarrmondragon Do you think this would be easier to do as part of Meltano v3, now that the UI & API have been removed?
I've preemptively added #6772 to the Meltano V3 milestone, but feel free to remove it from there if you feel like it wouldn't be significantly easier to address than it was when this PR was made.

@WillDaSilva Definitely much easier without the extra security extensions required for the UI :+1: