Can nodes provision faster than 2-4 minutes? Also, can Karpenter provision additional nodes based on node resource metrics?

Is an existing page relevant?
N/A
What karpenter features are relevant?
We have had great success with Karpenter and really enjoy this project for our platforms. I want to ask a question about node provisioning times. Also, can nodes be provisioned based on node resource metrics (CPU and Memory)?
For some services, we have created this hasn't been an issue. We create a helm chart for our services and deploy them onto the EKS cluster as a deployment. We are also using HPA (horizontal pod autoscaling) so once a deployment Pod reaches a threshold (resource metric) we create more replicas of that Pod. This then triggers a scaling event in Karpenter to provision new nodes so these Pods can get scheduled to them. It also works fluently as well because we can start the provisioning process at say 70% of the resources on the Pod so there's still a little cushion on the Pod while Pods and Nodes are scaling. This works great and as expected.
The issue we are encountering is we are migrating our Jenkins agents to K8s and using Karpenter to scale our agents. We don't have deployments for the agents so we don't have HPA. Each Jenkins job itself creates a Pod (via Pod definition) and those Pods are scheduled onto Karpenter provisioned nodes. This isn't too bad during the day under high traffic. But, first thing in the mornings or late at night during releases we have no nodes running. So when a Jenkins job is started it creates a build (Pod) for that Jenkins job and then a Karpenter scaling event happens. During this event, it takes 2-4 to provision a node, and some of the Jenkins jobs utilized for releases only take 30 seconds to run. There's been pushback from stakeholders as the provisioning is taking longer than the actual release task (run of Jenkins job). It's not a lot of time but when you watch the console output it can feel like a lot of time waiting 2-4 minutes.
The other thing is new nodes don't get provisioned until Pods are un-schedulable with our Jenkins setup. As mentioned above if we could utilize something like HPA we could start scaling the Pods in advance to prepare node provision in advance. This would be a fluid flow and seamless. But, the way it currently works we have to hit our limitation wall first then schedule second. Is there any way of having Karpenter provision new nodes in unique instances like this based on node resource metrics (CPU /Memory)? If the Node is as x % go ahead and scale.
Any help or feedback would be greatly appreciated!
How should the docs be improved?
N/A
Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Are you using a custom AMI with user-data? We usually see nodes provisioned in at least 55 secs today and often 45-50 seconds.
We are working on improving the time it takes nodes to provision which we will be releasing soon. More info about the AMI, user-data, and node initialization (what instance types, CNI, region, etc) may help us provide recommendations to expedite the provisioning.

a hack some folks use is having a low priority deployment to keep warm nodes, and then gets evicted when those jenkins pods come in, if there is not enough capacity.

@bwagner5 We haven't seen provisioning times that quickly, we are on Karpenter version 0.16.2. In regards to the custom AMI, we don't currently use any custom ones. We are trying to keep our setup as simple as possible while being reliable, secure, and low maintenance. We are consuming the EKS-optimized AMIs from AWS for AL2 amiFamily.
The instance types vary depending on the Jenkins jobs. Some require a lot of resources while others don't require much at all. I will say the more common instances are c6a.4xlarge and t3.medium. We are provisioning these in the us-east-1 region and for CNI we use the EKS add-on VPC-CNI version v1.11.3-eksbuild.1.

a hack some folks use is having a low priority deployment to keep warm nodes, and then gets evicted when those jenkins pods come in, if there is not enough capacity.

@FernandoMiguel can you share how did you actually achieved it? If you did that of course.

i dont have one at hand, if you search this repo, you will find descriptions from other folks doing exactly that


Set "Run as Admin"

Hi, Sorry to disturb you but I couldn't find it in doc or anything.
Does your API allow to set the Property "Run as Admin" for the shortcut?
Is this a cmd arg?

If not, does your API allow to change the target path?
I've tried ShellLink.setTarget() but check in Windows afterwards, it seems to not have an effect

Does your API allow to set the Property "Run as Admin" for the shortcut?

No, it doesn't. At least for now. As far as I remember there is no such flag in lnk file structure. Probably they use some trick for that option.

I've tried ShellLink.setTarget() but check in Windows afterwards, it seems to not have an effect

It should work. Did you save the link file afterwards?

As far as I remember there is no such flag in lnk file structure. Probably they use some trick for that option.

It's a registry entry.  It's only related to this project because the Windows Desktop illustrates it on the properties of the launcher.  A standard shell reg can add it without this library.

On Windows 10, setting a desktop shortcut (for running an exe) to Run As Administrator alters the 22nd byte from 0x40 to 0x60.  Not sure if this holds for Windows Vista through Windows 8.1, or whether .lnk files  with this byte set to 0x60 would be OK on Windows XP.

@Mike4Online I have slightly different results.  Note, I'm using indices below for clarity.
Using C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk

On Windows 10, I can confirm that byte[21] changes from 0x03 to 0x23 when the Run As Administrator flag is checked.
On Windows XP, I can confirm that byte[21] changes from 0x02 to 0x22 when the Run with different credentials flag is checked.

Disclaimer: I'm using XVI32 to examine this with a standard hex editor.  If there's a byte offset that I should be using that may explain why our values differ.
Testing the Windows 10 byte changes on Windows XP SP3 show no immediate problems.

If I force 0x03 value to match Windows 10, the shortcut still works as expected.
If I force 0x23 value to match Windows 10, the shortcut prompts who to run the shortcut as (not identical in behavior, but expected, since Windows XP didn't have UAC, so this concept hadn't yet been invented.

(I'll update this post with Windows 7 results shortly)

There is an API in Windows for setting the flags of a shortcut

Since this API works on a byte-level, that's the best approach.  There's ways to invoke the Windows APIs using a project called JNA, but that may be overkill given the simplicity of this using our combined research.

So @Mike4Online's proposal (or in my case, slightly varied propsoal) is tested and working on Windows XP, 7 and 10.  Without knowing the library very well, I would suggest making the API use bitwise OR value of 0x20on byte[21].
@DmitriiShamrikov what are the next steps for someone such as @mike4online or myself to make a PR with this feature?  Reading the source, I assume there are some special considerations to be made and that the .lnk files are serialized using some specific guards or assumptions.  Can you point us in the right direction?


set request’s owner.current_group

owner is loaded from options[:owner_email]
This PR loads owner_group from options[:owner_group]
https://bugzilla.redhat.com/show_bug.cgi?id=1187777
/cc @gmcculloug

@gmcculloug any particular tests you want to see around groups? (we can talk offline)

@gmcculloug Does this properly handle the tests here?
@Fryguy Are you happy with having 'description' as the group identifier?

answer: description is unique.

@gmcculloug good to go?


KAFKA-15853 Move ControlledShutdownConfigs from KafkaConfig

One of many parts of moving KafkaConfig out of core module.
This PR moves ControlledShutdownConfigs.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Hello @mimaison @chia7712
Can you, please, take a look at this PR?

Included in #16040


Update README.md

Updates the README file.

[x] Updates Contribute section to reflect the new make rebuild command
[x] Updates minimum node.js version and provides rationale

Thanks!


unstable_batchedUpdates  bad import

Error with snowpack
this line should be
import { unstable_batchedUpdates } from 'react-dom';
instead of
import { unstable_batchedUpdates } from './react-platform';

after change, snowpack bundler can run.

fixed with vitejs


[Bug] Short Bug Description

Bug Category

[ ] Credential Login
[ ] Token Login
[ ] Local Audio Issue
[ ] Remote Audio Issue
[ ] Audio Device Switching
[ ] Mute / Unmute
[ ] Hold / Unhold
[ ] Performance issues
[x ] Other

SDK Version
implementation 'com.github.team-telnyx:telnyx-webrtc-android:v1.2.15-alpha'
Describe the bug
When i received call Push notification and call successfully accepted and then receiver pressed call end button then caller not received any call ended or bye listener
Expected behaviour
Call should be end caller end also if receiver end the call
To Reproduce
Steps to reproduce the behaviour:

Receiver app should be in terminate state or killed
Accept call from notification and try to end call

Android Device (please complete the following information):

Emulator: (false)
Android Device: [e.g. OnePlus &T]
Android Version: [e.g. 11 ]

Hi @hpsolver.
This is a known issue that is related to the backend that is also affecting iOS. It shouldn't happen every time but we are aware it is happening.
Someone is actively looking into it at the moment. I will update you when I can.

in my app this issue always occurred Could you please help me to resolve this ASAP

@hpsolver as mentioned, we are aware of the issue and actively working to fix it. I will update you when I can

This has been resolved in the backend @hpsolver
I am closing this for now.


board: arm: disco_l475_iot1: Enable ADC support

Enable ADC support in disco_l475_iot1 board.
Signed-off-by: NavinSankar Velliangiri<EMAIL_ADDRESS>

LGTM, one tiny comment:
Please update also the Default Zephyr Peripheral Mapping: doc section

LGTM, one tiny comment:
Please update also the Default Zephyr Peripheral Mapping: doc section

@erwango done.

CI failing due to #28594.
Will have to be rebased once fixed.

@Navin-Sankar ,
There is already an ongoing PR to add ADC support for STM32 boards #27013
(awaiting merge since about 2 month due to buildkite issues).
It includes disco_l475_iot1 board, but not only.
Would you consider starting from PR #27013, comment it and propose changes if needed ?

DNM as a more complete PR already exist #27013

Can you rebase/update now that #27013 is merged.

@galak @ABOSTM rebased to #27013.


Update README and minor website updates.

cc @vjeux

@facebook-github-bot shipit

@facebook-github-bot shipit


Consider including features from OptiDoom

https://github.com/Optimus6128/optidoom3do is one of the main projects working with the 3DO code. It's slightly more optimized than the original 3do Doom has some new features like PSX skies. You think you'd be able to port features to your codebase?
Conversely, I'm curious if some of your changes like the bug fixes could be backported to optidoom.

Most of the changes in OptiDoom as I understand it are about trying to increase the framerate and get the game running at a faster clip on the original hardware, and as such are not really applicable to this project.
There are certainly a lot of fixes that could be incorporated from this port into OptiDoom however, I've listed some of these in the following file: https://github.com/BodbDearg/phoenix_doom/blob/master/docs/Differences To 3DO DOOM.md
As far as PSX skies go, I think I would rather keep 3DO Doom as it's own thing and not inter-mix the console versions. If someone wants to do this however they are more than welcome to fork the code and try it out! If you're interested in PSX DOOM, I also have a much more comprehensive project in the works right now: https://github.com/BodbDearg/StationDoom


how to enable the fetch robot with a navigation system

Hi @mcarfagno, thx for your amazing code about the fetch robot.
I wonder if, in your environment, the fetch robot can move from one spot to another with a navigation system.

Hello, the simulation has only a fixed-base arm, see:
 self.pandaUid = p.loadURDF(
            os.path.join(urdfRootPath, "franka_panda/panda.urdf"),
            basePosition=[0, 0, 0.65],
            useFixedBase=True,
        )

generally speaking ,if you have a non-fixed base robot, you can achieve navigation very easily in pybullet:

odometry

import pybullet as p
def odometry(robotId):
    """returns [position_x, position_y, forward_velocity, heading_angle] """
    robPos, robOrn = p.getBasePositionAndOrientation(robotId)
    linVel, angVel = p.getBaseVelocity(robotId)

    return np.array(
        [
            robPos[0],
            robPos[1],
            np.sqrt(linVel[0] ** 2 + linVel[1] ** 2),
            p.getEulerFromQuaternion(robOrn)[2],
        ]
    )

base movement:

def apply_velocity(robotId, vel_forward, vel_rot)
    p.resetBaseVelocity(robotId, [vel_forward, 0, 0], [0, 0, vel_rot])

this is a very simple example, usually you would have a wheel joint motors to which require torque


Several speed up for tests

Disable key injection for vagrant
Enable simple user/pass ssh
Enable host dns resolver for vm
Disable synced folder for vagrant
Disable check for additions in vbox
Use vagrant snapshot for restoring the state of the vm after each
test
Enable shorter timeout for scp-ing the logs after a test failure

Signed-off-by: Itxaka<EMAIL_ADDRESS>

finally passes...and its now on need of an update FML :sob:


Migrate plugins with server plugin helper

This change updates in_syslog and in_forward.
Updating in_syslog is to use server plugin helper to enable multi-worker processing.
I also added/updated some parameters to inject hostname/address of data source, for consistent parameter names with in_forward.
I also found that in_forward don't have a parameter to inject source host address (not hostname).
So I added it too.

@repeatedly Could you review this change?

@repeatedly ping

I pushed commits for review comments. I'll merge this change after CI green.


[KO Classic Phonemizers] Apply Korean sandhi rules to Classic phonemizers

With this PR, the Korean UTAU phonemizers will apply Korean sandhi rules to Hangeul lyrics. Some of the classic phonemizers already have the sandhi rules applied properly with KoreanPhonemizerUtil, so these are not affected.
Affected phonemizers:

KO VCV;
KO CVCCV;
KO CVC (I think some of the old code could be deleted, but I haven't yet properly looked into that, because I'm afraid of breaking things. I might one day);
KO to JA.

Apologies for the failing checks, I got this error:
Determining projects to restore...
/home/runner/work/OpenUtau/OpenUtau/OpenUtau/OpenUtau.csproj : error NU1903: Warning As Error: Package 'System.Text.Json' 7.0.2 has a known high severity vulnerability, https://github.com/advisories/GHSA-hh2w-p6rv-4g7w
  Restored /home/runner/work/OpenUtau/OpenUtau/OpenUtau.Core/OpenUtau.Core.csproj (in 9.94 sec).
  Restored /home/runner/work/OpenUtau/OpenUtau/OpenUtau.Plugin.Builtin/OpenUtau.Plugin.Builtin.csproj (in 9.94 sec).
  Failed to restore /home/runner/work/OpenUtau/OpenUtau/OpenUtau/OpenUtau.csproj (in 9.97 sec).
Error: Process completed with exit code 1.
``
Is there anything I can do about that, or that can be done about it? I'm kinda lost here... I keep rerunning checks but it doesn't seem to be working.

Please sync the latest code from stakira/OpenUtau to your fork, and the tests will pass


Home / Login page

Majority of the initial layout work is complete at this point; we can migrate most of the header and footer content into the other pages.  I'll start creating a shell for those so that we at least have something to start with.

Fixed the homepage login menu to look good on both normal and responsive layouts.  Just need to port this to all other pages now.


Use import = require syntax to resolve "Circular definition" error with esModuleInterop

When using typescript 2.7 with --esModuleInterop, typescript gives this error when using ts-mockito:
node_modules/ts-mockito/lib/ts-mockito.d.ts(39,8): error TS2303: Circular definition of import alias 'mockito'.

Switching to the typescript-specific import = require-style import fixes this issue and is compatible with the non-esModuleInterop setting as well. It's the same solution that was used to address another interop-related issue in https://github.com/Microsoft/TypeScript/issues/21535
Is there a reason ts-mockito.ts needs to self-import? That seems like it might have other unintended consequences.

Hi @jekh, thank you for this PR. What do you think about the solution proposed by @jjordan-dff in #69? I think that one would be much cleaner for what guys wanted to achieve here. A default export was introduced to satisfy ember-browserify library.

#69 would be great, and personally I think it's cleaner than the self-import. I'll close this PR in favor of that one. Thanks for taking a look!


Corrected molecule init

Corrected bug introduced in #268.  Removed duplicate "are we running
the init command" logic from both the core and command base class.
The init sub command is unique to other commands.  It doesn't require
a molecule.yml.  Moved this logic into a method, in the parent class,
so the children can change the behavior.
Also disabled static inventory introduced in #40.  We never used this,
and the core needs refactored before we attempt to reintroduce it.
Fixes: #275

Another great cleanup. I'm glad to see static go for now, there was a lot of logic around it that was confusing. Other than the one question I had above, 👍 from me.

Looking good. 👍

Yay i was just running into some confusion about this static part here.


ap-5158: part 2 migrate postgres, redis, secretkeybase secrets

What
Link to story
Migrate postgres,  active record encryption, redis, and secretkeybase secrets.
Update bitnami auth handle in uat values file to allow new secrets to be picked up correctly by PVC.
Checklist
Before you ask people to review this PR:

Tests and rubocop should be passing: bundle exec rake
Github should not be reporting conflicts; you should have recently run git rebase main.
The standards in the Git Workflow document on Confluence should be followed
There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
The PR description should say what you changed and why, with a link to the JIRA story.
You should have looked at the diff against main and ensured that nothing unexpected is included in your changes.
You should have checked that the commit messages say why the change was made.

Closing this pr to migrate secrets in separate prs.


CSS button added

Title and Issue number
#5019  Add CSS button animation to the repository
Close #5019

Checklist:

[x] I have mentioned the issue number in my Pull Request.

@MohitGupta121 @TusharKesarwani  please review this PR under GSSoC'23


send_event: Fix recipients while sending events.

https://github.com/zulip/zulip/pull/29380#issuecomment-2010731437

[x] do_delete_messages
[x] zerver/actions/submessage.py
[x] notify_reaction_update

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

I still need to write tests for these edge cases hence marked as draft.

Addressed the review comments.

I made some polish changes that I don't believe change behavior and marked this to merge once CI passes. Thanks for the effort on this @prakhar1144!

backend lint was failing. Fixed that.

Merged, thanks @prakhar1144!


Refactor ParamsPricer interface to return pricer-based parameters

Description
This PR refactors our current ParamsPricer interface (and other related methods/functions) to return pricer-based parameters.
Reviewer Notes
TBD
Setup
TBD
Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change
The technical design doc explains more about the approach used.

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against fa804f0099941dcd6b06ea1212688082953eba40


Toggle Icon, autoMode inconsistent

in autoDark mode: the toggle icon changes to the appropriate icon upon the first click. Subsequent clicks do not change it whatsoever.
in autolight mode, the icon does not change at all
Tested at 6:45am and autoMode is still in dark
so at 7:00am, mode switches to light.
Expected behaviour is for light mode to activate at 6am

the #12 PR broke the icon toggling


Fix Jenkins plugin not working at all

Signed-off-by: Tim Jacomb<EMAIL_ADDRESS>Hey, I just made a Pull Request!
Fixes https://github.com/backstage/backstage/issues/13692
not sure what caused this, some bundling change maybe, I can't see anything related from a quick look.
I've tested this locally and it fixes the issue
I think this is only an issue in the weekly releases (.next) so unsure if you would normally changeset it but I've included one.

:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
~[ ] Added or updated documentation~
[ ] Tests for new functionality and regression tests for bug fixes
~[ ] Screenshots attached (for UI changes)~
[x] All your commits have a Signed-off-by line in the message. (more info)

Thanks for this :pray:

It seems like this upgrade creates a tsc error:
➜  backstage git:(upgrade-jenkins-plugin) ✗ gd

packages/app/package.json

────┐21: │
────┘│ 21 │    "@backstage/plugin-catalog-import": "^0.8.11",                                                                                │ 21 │    "@backstage/plugin-catalog-import": "^0.8.11",
│ 22 │    "@backstage/plugin-catalog-react": "^1.1.3",                                                                                │ 22 │    "@backstage/plugin-catalog-react": "^1.1.3",
│ 23 │    "@backstage/plugin-github-actions": "^0.5.8",                                                                                │ 23 │    "@backstage/plugin-github-actions": "^0.5.8",
│ 24 │    "@backstage/plugin-jenkins": "^0.7.8",                                                                                │ 24 │    "@backstage/plugin-jenkins": "^0.7.7",
│ 25 │    "@backstage/plugin-org": "^0.5.8",                                                                                │ 25 │    "@backstage/plugin-org": "^0.5.8",
│ 26 │    "@backstage/plugin-permission-react": "^0.4.4",                                                                                │ 26 │    "@backstage/plugin-permission-react": "^0.4.4",
│ 27 │    "@backstage/plugin-scaffolder": "^1.5.0",                                                                                │ 27 │    "@backstage/plugin-scaffolder": "^1.5.0",

Binary files a/yarn.lock and b/yarn.lock differ

packages/app/package.json
➜  backstage git:(upgrade-jenkins-plugin) ✗ yarn tsc
yarn run v1.22.19
$ tsc
packages/backend/src/plugins/jenkins.ts:20:7 - error TS2741: Property 'validateEntity' is missing in type 'CatalogClient' but required in type 'CatalogApi'.

20       catalog,
         ~~~~~~~

  node_modules/@backstage/plugin-jenkins-backend/node_modules/@backstage/catalog-client/dist/index.d.ts:336:5
    336     validateEntity(entity: Entity, location: string, options?: CatalogRequestOptions): Promise<ValidateEntityResponse>;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'validateEntity' is declared here.
  node_modules/@backstage/plugin-jenkins-backend/dist/index.d.ts:78:9
    78         catalog: CatalogApi;
               ~~~~~~~
    The expected type comes from property 'catalog' which is declared here on type '{ config: Config; catalog: CatalogApi; }'

Found 1 error in packages/backend/src/plugins/jenkins.ts:20error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

What makes you think it is this PR?

I upgraded just fine in https://github.com/hmcts/backstage/pull/85, no issues

How did you upgrade? Did you run yarn backstage-cli versions:bump? looks like there's type issue somewhere and duplicate versions of the catalog-client in the jenkins-backend plugin. You could maybe delete that version of the catalog-client from the yarn.lock and run yarn again to fix it. But running the versions:bump command should remove duplicates

I posted this before I realized there were several PRs to this plugin. I just upgraded via the command line:
➜  backstage git:(upgrade-jenkins-plugin) yarn add --cwd packages/backend @backstage/plugin-jenkins-backend

The fix was simple:
➜  backstage git:(upgrade-jenkins-plugin) yarn add --cwd packages/backend @backstage/catalog-client


Missing AMPLS definition - Please link this to issue #68739

See Issue #68739

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

ID: a88af182-32aa-a8f3-359d-b92ae1cfb8c7
Version Independent ID: 01ce07fc-4bc2-def5-9ecd-a80330ad9488
Content: Azure Private Endpoint DNS configuration
Content Source: articles/private-link/private-endpoint-dns.md
Service: private-link
GitHub Login: @mblanco77
Microsoft Alias: allensu

@omerzubair Thanks for the feedback! We are taking a look into this and will get back to you soon.

@omerzubair Thanks for the feedback! We are taking a look into this and will get back to you soon.

@omerzubair Thanks for your comment. You have already linked this issue to #68739 and issue has been assigned to content author for review.
We will close the issue for now. If there are further questions , please revert and we will be glad to assist you.

@omerzubair Thanks for your comment. You have already linked this issue to #68739 and issue has been assigned to content author for review.
We will close the issue for now. If there are further questions , please revert and we will be glad to assist you.


ci: move write permissions to job level in cherrypick workflow

What this PR does / why we need it:
Move write permissions to job level in cherrypick workflow. With this fix Token-Permissions ossf score becomes 10.
Which issue(s) this PR fixes:
Fixes #

/retest


[2.7.x] Here is a type error when using ref() on attribute 'ref' in TSX

Version
2.7.10
Reproduction link
codesandbox.io
Steps to reproduce
Using type 'Ref' on ref will notice the error :  jsx.d.ts(1305, 3): The expected type comes from property 'ref' which is declared here on type 'ElementAttrs<HTMLAttributes>'.

In the vue/types/jsx.d.ts, the type ReservedProps only support type'String' in Vue2.7.x，but supporting type 'String'/'Ref'/'Function' in Vue3.x

Vue3 - jsx.d.ts

Vue2.7.x -jsx.d.ts

What is expected?
Using type 'Ref' on the property 'ref'.
What is actually happening?
The type 'ref' only support 'String | undefined'.

fix pr: #12759 :D

I also had the same problem

I also had the same problem

yep, but this PR has`t been merged yet, i dont know whether something wrong with the PR or not :(

I also had the same problem

yep, but this PR has`t been merged yet, i dont know whether something wrong with the PR or not :(

Had the same problem using ts and function-refs in vue 2.7.x.

I also had the same problem

yep, but this PR has`t been merged yet, i dont know whether something wrong with the PR or not :(

Had the same problem using ts and function-refs in vue 2.7.x.
example:
<input :ref="(el) => { /* assign el to a property or ref */ }">

When I intend to modify this pr to add funciton ref type, I found  someone has already created the pr about this #12763

I also had the same problem

yep, but this PR has`t been merged yet, i dont know whether something wrong with the PR or not :(

Had the same problem using ts and function-refs in vue 2.7.x.
example:
<input :ref="(el) => { /* assign el to a property or ref */ }">

When I intend to modify this pr to add function ref type, I found someone has already created the pr about this #12763

Even after these two fixes, the el in the function-ref example still hints that implicitly has type any.
Writing functions directly in template can effectively use closures to access variables that are traversed by v-for. But it is not accessible in setup or methods options, so how should this problem be solved.

I also had the same problem

yep, but this PR has`t been merged yet, i dont know whether something wrong with the PR or not :(

Had the same problem using ts and function-refs in vue 2.7.x.
example:
<input :ref="(el) => { /* assign el to a property or ref */ }">

When I intend to modify this pr to add function ref type, I found someone has already created the pr about this #12763

Even after these two fixes, the el in the function-ref example still hints that implicitly has type any.
Writing functions directly in template can effectively use closures to access variables that are traversed by v-for. But it is not accessible in setup or methods options, so how should this problem be solved.

I have updated my pr with fixing the function-refs type error. Defined type Function cant fix the question in #12763. I refer to the type define of  vue3 ref type definition. But you should define the el type when using the funtion refs,
just like
const fooRef = ref<HTMLElement>()

<div ref={(el) => {fooRef.value = el as HTMLElement}} />

its same as vue3. :D


[7.17] [filebeat][metricbeat] increase memory limit for goss tests (#1696)

Backports the following commits to 7.17:

[filebeat][metricbeat] increase memory limit for goss tests (#1696)

ok to test


bug(mat-select): mat-select-trigger disappeared if no mat-option to iterate

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
Hello,
when implementing the loaded list, I'm facing situation that when some options were already selected and then filtered, the mat-select-trigger disappears, although the control that is responsible for storing data is available and has the selected data options.
Reproduction
StackBlitz link: https://stackblitz.com/edit/angular-mat-select-hide-placeholder-if-value-exis-a4qafe?file=src%2Fapp%2Fselect-custom-trigger-example.html
Steps to reproduce:

Add few toppings
Make sure that the selected toppings are selected and displayed as expected
Type any (3-4) chars in "Search toppings" to filter toppings list

Expected Behavior
Selected value(s) MUST NOT be disappeared
Actual Behavior
Selected value(s) disappeared (toppings still have selected values as expected)
Environment

Angular:
CDK/Material:
Browser(s):
Operating System (e.g. Windows, macOS, Ubuntu):

I couldn't reproduce it in the demo. I tried selecting "Onion", "Sausage" and "Pepperoni" and typing in the input field, and the select was preserving the selected value.

@crisbeto

That's because you're filtering out the options. mat-select only shows options that are present in the DOM. Closing since it's working as expected.

That's because you're filtering out the options. mat-select only shows options that are present in the DOM. Closing since it's working as expected.

This implementation is not ideal, as it prohibits a couple important features inside mat-selects:

If I want to use CDK virtual scroll for the options in my , the selections don't show up in mat-select-trigger if their  doesn't fall in the displayed portion of the 's.
If I want to have any sort of search/filter box inside my  panel, the same issue exists

@crisbeto values already exist in model/formcontlrol, and it can be displayed, no matter which options are available or not.
It's completely different things...

mat-select isn't really set up for filtering at the moment, because that's a completely different ARIA pattern and we generally build components around their accessibility story. As for virtual scrolling, it's something we have in the backlog: https://github.com/angular/components/issues/10122


GridEditorDialog error after T4 templates transformation

Dear @volkanceylan,
just updated to 2.1.9 and after a rebuild of the T4 templates i got this error on browser (chrome) console:

and then the grids are not visible (I mean I can only see the adminlte template).
After a "save" (from visual studio) on GridEditorDialog.ts the issue is resolved and the grids are working as expected...it's that the normal behaviour?
Thank you very much

Your Web.js file somehow got deleted. I'm pretty sure this is not about templates, nor update.

Not deleted but drammatically different (before/after ts compilation)...honestly I don't know why...
I'll try to merge my code in a new serenity template and I let you know...
Thanks

If you have Q.arrayClone(this.view.getItems()) somewhere, replace it with this.view.getItems().slice(0)
Also you should get TranslationGrid.ts, GridEditorBase.ts and FilteredLookupEditor.ts from latest source, replacing Serene with your project name

Already replaced Q.arrayClone and also already "patched" TranslationGrid.ts and GridEditorBase.ts (not FilteredLookupEditor.ts because I've removed the basic samples section from the project).
While opening for example the Langue table, I got this:

and once again after a ts recompile, everything is working fine...

There is some TypeScript file in your project that is without /// references to its base class. TypeScript has problem with file ordering unless you specify references explicitly.
Here is the issue i reported:
https://github.com/Microsoft/TypeScript/issues/8013

Worst part is it is not deterministic in file ordering. So, when you compile with tsc, and compile with save, order might be different. With luck, one works while one not.

Check for your ts files referencing GridEditorDialog

and GridEditorBase

Solved!
Also added:
/// <reference path="../../Common/Helpers/GridEditorBase.ts" />
in ts files referencing GridEditorBase and ta-dan...now it's working fine!

Concurrent answers :-)
Do you prefer to leave this issue open for the community or I can close?
Thank you very much for your support
bye

You're welcome. Nobody will see anyway :) So let's close.

I saw,
and thanks both for the discussion,
it directs me in the right way
I was referencing the wrong file in one of the ts files

I saw too,
I was getting a little diferent error, but was reference missing in extends xyzGRID and xyzDIALOG,
its was woking fine, then start to compile myproject.js file wrong.
Thanks for discussion.


feat: drop standardjs in favor of prettier in eslint config

Drop Standard configuration and use eslint:recommended and prettier. I also kept eslint-plugin-react.
There is a question and a potential problem :
Do we need to keep other plugins (eslint-plugin-promise, eslint-plugin-import, eslint-plugin-node) ?
And the eslint-plugin-prettier documentation says that :

While it is possible to pass options to Prettier via your ESLint configuration file, it is not recommended because editor extensions such as prettier-atom and prettier-vscode will read .prettierrc, but won't read settings from ESLint, which can lead to an inconsistent experience.

This can be annoying for some people, what do you think about it ?
I tested this configuration on Banks with --fix flag, it worked well.

Do we need to keep other plugins (eslint-plugin-promise, eslint-plugin-import, eslint-plugin-node) ?

I think that we can drop them now since it was necessary for the eslint-config-standard usage.

And the eslint-plugin-prettier documentation says

I think we can include a .prettierrc file in the application templates for the one who use prettier as editor extension, can't we?
For the one who are already using this config, we could recommend the .prettierrc file to add in the changelog since it would be, in any case, a breaking change for this shareable config.

Yes it would be a solution to ship a .prettierrc in the templates :+1:

I am a bit "worried" by this PR to lose linting rules from standard/standard-jsx. Wouldn't it be simpler to deactivate standard rules that care about styling issues, as does eslint-config-prettier does ?
What are the inconsistencies right now ? By inconstitencies I mean warning/errors detected by eslint after a prettier --write.

I just looked at eslint-config-standard-jsx, and it basically uses eslint-plugin-react. Since we kept this plugin in our config, we may not be losing a lot of things.
Actually since we use the recommended configuration, we get more real linting rules than before with standard-jsx because standard-jsx principally provides styling rules (see https://www.npmjs.com/package/eslint-plugin-react#recommended vs https://github.com/standard/eslint-config-standard-jsx/blob/master/eslintrc.json).

Thanks for the thorough explanation.

Thanks a lot @drazik for this PR and your explanations! 🎸 🎸


Change in MainFrame to access relative directory path

Starting the program always gives a NullPointerException because the directory can't be found. This is because the default directory is given with an absolut path --> fileSelector.setCurrentFolder("f:/Code/FOnline/Fallout_Dat/art/critters");
Just changed this to a relative path to the directory, where the file(s) are. No other changes were done.

Yep. Saving it would be better. Maybe just right away use an instance of File for this. This way you can always access the actual path directly. Saving it into String would do also ofc :)


Error in middleware Gatekeeper: Float operator detected: F64Load

wasmd version: v0.40.2
cosmwasm-std = { version = "1.1", features = ["stargate"] }
cosmwasm-storage = "1.1.0"
cw-storage-plus = "1.0.1"
cosmwasm-schema = "1.1.0"
command log:
> cosmwasm-check artifacts/maci-aarch64.wasm
Available capabilities: {"cosmwasm_1_3", "cosmwasm_1_4", "stargate", "iterator", "staking", "cosmwasm_1_1", "cosmwasm_1_2"}

artifacts/maci-aarch64.wasm: failure
Error compiling Wasm: Could not compile: WebAssembly translation error: Error in middleware Gatekeeper: Float operator detected: F64Load { memarg: MemArg { align: 3, max_align: 3, offset: 8, memory: 0 } }. The use of floats is not supported.

Passes: 0, failures: 1

So what's the problem here exactly?
You probably have an old version of cosmwasm-check. Float check is disabled since 1.5.0, since that's also the cosmwasm-vm / wasmvm version that allows them.
Of course that means you can only upload to a chain with wasmvm 1.5

@chipshort Yes, because my wasmd version is 0.40.2 so my cosmwasm-check is using the corresponding older version.
But I did specify version 1.1 of cosmwasm-std in cargo.toml. but for some reason after cargo build, cargo.lock does have version 1.5 of cosmwasm-std!

so my cosmwasm-check is using the corresponding older version.

Alright, that's good 👍
Some cargo commands automatically update to semver compatible versions (and 1.5 is semver compatible to 1.1). E.g. cargo update or cargo build if you have no lock file yet. But that should not pose a problem. No floating point stuff was added to cosmwasm-std 1.5, so it's not the reason for the error.
Maybe you have some other dependency that introduces float instructions? Can you link the contract code somewhere? Or an unoptimized wasm build?

@chipshort The cosmwasm-std I referenced was version 1.1(in cargo.toml), but after build it was version 1.5(in cargo.lock), and I suspect this has something to do with it.

and this is my code: https://github.com/99Kies/zk-cosmwasm/tree/main/cw-plonk

so my cosmwasm-check is using the corresponding older version.

Alright, that's good 👍
Some cargo commands automatically update to semver compatible versions (and 1.5 is semver compatible to 1.1). E.g. cargo update or cargo build if you have no lock file yet. But that should not pose a problem. No floating point stuff was added to cosmwasm-std 1.5, so it's not the reason for the error. Maybe you have some other dependency that introduces float instructions? Can you link the contract code somewhere? Or an unoptimized wasm build?

I don't know why cargo build is forcing my cosmwasm-std version to switch to 1.5, so if I upgrade cosmwasm to 1.5 it does solve the problem. But I don't know how to solve this problem while keeping the cosmwasm version the same.
> cosmwasm-check --version
Contract checking 1.5.0

> cosmwasm-check target/wasm32-unknown-unknown/release/cw_plonk.wasm
Available capabilities: {"staking", "stargate", "cosmwasm_1_4", "iterator", "cosmwasm_1_2", "cosmwasm_1_1", "cosmwasm_1_3"}

target/wasm32-unknown-unknown/release/cw_plonk.wasm: pass

All contracts (1) passed checks!

I fixed this issue here for 1.4: https://github.com/CosmWasm/cosmwasm/pull/1860. I.e. by using cosmwasm-check 1.4.1 you also get cosmwasm-vm 1.4.1. This way you are able to get the 1.4 checking as done in 1.4 chains.
However, in older version we have the issue you describe.
Which CosmWasm version do you run on chain?

@webmaster128
github.com/CosmWasm/wasmvm v1.2.4
github.com/CosmWasm/wasmd v0.40.2

I fixed this issue here for 1.4: #1860. I.e. by using cosmwasm-check 1.4.1 you also get cosmwasm-vm 1.4.1. This way you are able to get the 1.4 checking as done in 1.4 chains.
However, in older version we have the issue you describe.
Which CosmWasm version do you run on chain?

I switched to cosmwasm-vm 1.4.1 and it still fails.
> cosmwasm-check --version
Contract checking 1.4.1

> cosmwasm-check artifacts/cw_plonk-aarch64.wasm
Available capabilities: {"staking", "cosmwasm_1_2", "iterator", "stargate", "cosmwasm_1_1", "cosmwasm_1_4", "cosmwasm_1_3"}

artifacts/cw_plonk-aarch64.wasm: failure
Error compiling Wasm: Could not compile: WebAssembly translation error: Error in middleware Gatekeeper: Float operator detected: F64Load { memarg: MemArg { align: 3, max_align: 3, offset: 0, memory: 0 } }. The use of floats is not supported.

Passes: 0, failures: 1

Well, yeah, that's expected. You have float operations in your Wasm and they were only allowed recently in 1.5. See https://medium.com/cosmwasm/cosmwasm-1-5-946fd3024f1d


Basic obstacle avoidance

As a user I want the car to detect obstacles and avoid driving into them when performing a forward movement.


Make SDK models pickleable

Motivation and context

Currently, they aren't (or rather, they can be pickled, but unpickling fails). This is due to a small quirk of how the model classes work, and is easily worked around.
In addition, don't create a new Configuration object for each model. These objects are pretty beefy, and they increase the size of each pickle by a full kilobyte (and of course they increase memory usage even when pickle is not involved). AFAICS, these objects are only used when assigning values to file-type fields, and it's easy enough to rewrite the logic so that it still works when the model's _configuration field is None.
How has this been tested?

Unit tests.
Checklist

[x] I submit my changes into the develop branch
[x] I have created a changelog fragment
[ ] I have updated the documentation accordingly
[x] I have added tests to cover my changes
[ ] I have linked related issues (see GitHub docs)
[ ] I have increased versions of npm packages if it is necessary
(cvat-canvas,
cvat-core,
cvat-data and
cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

Summary by CodeRabbit

New Features

Model instances within the SDK can now be pickled, allowing for easier serialization and transmission.

Tests

Introduced a new test to verify the pickling and unpickling functionality of the PatchedLabelRequest model.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.05%. Comparing base (7d0205b) to head (5020112).
Report is 1 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #8746      +/-   ##
===========================================
- Coverage    74.05%   74.05%   -0.01%
===========================================
  Files          409      409
  Lines        43783    43784       +1
  Branches      3984     3984
===========================================
  Hits         32425    32425
- Misses       11358    11359       +1

Components
Coverage Δ

cvat-ui
78.36% <ø> (-0.01%)
:arrow_down:

cvat-server
70.34% <100.00%> (+<0.01%)
:arrow_up:


Add metadata to RNA data pages

Complete once https://github.com/KarrLab/datanator_rest_api/issues/35 is finished.

Closing because we no longer have a separate page for RNA


Experimental partial_match support.

Hi Hana, this is the first attempt.

Please fix the code so the tests will be green. Also add tests for new functionality.

All the tests pass again and I have put in an early return, so the change should be much cleaner. I saw your comment about MSVC, but as the early return is conditional it looks OK.


[DOC] The parameter field and target_field in KV ingest processor now supports template snippets

What do you want to do?

[ ] Request a change to existing documentation
[x] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
The parameter field and target_field in KV ingest processor will support template snippets in 2.12, we need to add this enhancement to the documentation. I see that currently we don't have documentation for kv processor, so please include this change when we add the documentation.
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
https://github.com/opensearch-project/OpenSearch/pull/10040

FYI, the target is  2.12.0

Thanks, @gaobinlong and @reta ! Who will be writing the documentation for this feature?
In the meantime, I've asked @vagimeli to prioritize on the kv processor, since she is working on the processor documentation currently.

Thanks, @gaobinlong and @reta ! Who will be writing the documentation for this feature?

I believe the author of the change (@gaobinlong) should be writing it

@reta @gaobinlong See PR #https://github.com/opensearch-project/documentation-website/pull/5781. Content in progress. I'll tag you both when it's ready for your review.

Close this issue as the related PR has been merged yet.

@gaobinlong - Does the merged PR contain the information being delivered in 2.12? I believe 5781 was written based on 2.11, but just want to confirm. Thanks!

This issue has been addressed in the documentation. See PR https://github.com/opensearch-project/documentation-website/pull/5781 and doc site https://opensearch.org/docs/latest/ingest-pipelines/processors/kv/

@gaobinlong - Does the merged PR contain the information being delivered in 2.12? I believe 5781 was written based on 2.11, but just want to confirm. Thanks!

@hdhalter @vagimeli , I see the PR #5781 has been backported to 2.11, but the functionality of field and target_field in kv processor supports template snippets which this issue calls out will be released in 2.12.0, and will not be backported to 2.11, so I think we should remove the description of Supports [template snippets] in the document of 2.11.


Inconsistent Filesizes with .awkd Files

I am seeing behavior that I don't understand when saving collections of JaggedArrays with the awkward.save() function.
I have an initial set of arrays each with an outer dimension of 10,000. I save those arrays with
data_dict = {"field1": array1, "field2": array2, ... , "fieldN": arrayN}
awk.save("filename.awkd", data_dict, mode="w")

The resulting filesize is about 280 MB.
I then want to filter out events from those arrays. As an example, let's say I want the first 10 events.
events = numpy.arange(10)
data_dict = {"field1": array1[events], "field2": array2[events], ... , "fieldN": arrayN[events]}
awk.save("filename.awkd", data_dict, mode="w")

This produces a filesize of about 280 kB, which makes sense - I've selected 1/1000 events, so the filesize is about 1000x smaller.
However, now I instead select a more distributed set of 10 events.
events = numpy.arange(0, 1000, 100)
data_dict = {"field1": array1[events], "field2": array2[events], ... , "fieldN": arrayN[events]}
awk.save("filename.awkd", data_dict, mode="w")

The resulting filesize is now back to the original 280 MB.
Is this behavior expected? Or am I doing something wrong? When I load the data back, I do only seem to have access to the events I filtered, but the increased filesize is giving me memory issues (on larger files) as I try to concatenate only the filtered events.
How can I achieve saving a small subset of events for later concatenation?

I think the problem is that this serialization is a somewhat naive snapshot of what's in memory, so if there are unreachable elements, they're still written. there isn't an additional pass to look for what can be compacted before writing.
The serialization is one of the things that's lagging in Awkward 1—there are a lot of serialization protocols for this sort of data, it might be a mistake for me to introduce another one. This .awkd file format is the only protocol guaranteed to save all data about an Awkward Array, but as you've noted, you don't always want to save all data. Does the Parquet file format save everything that you need? If you have Lorentz vectors or something, it currently won't save that, but I'm figuring out how to use "application metadata" to include such things.
The Parquet format is considerably more compact. There's also Arrow, but that's a line protocol, not a file format (though there's nothing stopping you from putting the serialized Arrow data in files).

No, you can zip them into a Table and save the Table of JaggedArrays. In fact, without being a Table, I think we'd have to invent a fake column name for the single JaggedArray; Parquet is usually used for sets of arrays. (The Awkward documentation shows single array ↔ Parquet file examples because it's assumed that you've combined the arrays into a Table.)
The arrays need to have the same length (len), but the number of items in each element do not need to be the same. (That is to say, same number of events, different numbers of particles.) Parquet is intended for columnar datasets with nested structure.
Another thing that I thought of after having sent yesterday's answer is that ROOT's RNTuple would also be capable of storing this information, but the reader/writer of RNTuple in Python is still under development, so that doesn't help you now.
Also in development: Awkward 1's from_arrow and to_arrow are complete, though the final step to Parquet is not. We actually go through Arrow to read and write Parquet, so this is also a nearby option ("nearby" in the sense that taking the last step is not too hard: https://arrow.apache.org/docs/python/parquet.html). See also ak.from_awkward0 and ak.to_awkward0 (https://awkward-array.readthedocs.io/en/latest/_auto/ak.from_awkward0.html).

Thanks for the response! I may give that a try later. For now, it seems that just creating a new JaggedArray from the old one and saving the new one does indeed filter out what I'm looking for and reduces filesizes in an expected manner.
Something like
events = some_selection_cut
data_dict = {"field1": awkward.JaggedArray.fromiter(array1[events]),
                    "field2": awkward.JaggedArray.fromiter(array2[events]),
                    ... ,
                    "fieldN": awkward.JaggedArray.fromiter(arrayN[events])}
awk.save("filename.awkd", data_dict, mode="w")

So I think I at least have a solution to my original struggle, but I am still slightly curious about the behavior when passing event masks - mainly, why contiguous event numbers do seem to drop filesize. I checked if it was related to the highest index selected, but that doesn't seem to be the case.
From before:
# 10 events out of 10,000, expect 1/1000 filesize, and that is what we see
events = numpy.arange(10)
data_dict = {"field1": array1[events], "field2": array2[events], ... , "fieldN": arrayN[events]}
awk.save("filename.awkd", data_dict, mode="w")

vs
# Still 1/1000 of events, but might expect 1/500 in case it needs to record everything up to index 20
# Instead see the full filesize again
events = numpy.arange(0, 20, 2)
data_dict = {"field1": array1[events], "field2": array2[events], ... , "fieldN": arrayN[events]}
awk.save("filename.awkd", data_dict, mode="w")

Not the biggest deal, but I don't know if it's expected

It's expected; in some cases, it's a feature, not a bug. But we might want to call out a specific "how to compact an array" for this very common case of filtering in order to make the data size smaller, rather than filtering for statistical significance. (Or for both reasons.)

Beware that awkward.JaggedArray.fromiter will be quite slow in awkward0. In general there is some sort of need for a "compactify" operation, which would compute all lazy take operations.


[DOC] documentation for increasing number of connection in connection pool used by eclipse link

When using eclipse link as backend metastore, I noticed it is using default connection pool (32 connections or so) per pod regardless the size of the pod. To avoid too many small pods, it will be nice to increase the number of connections allowed per pod. I tired the following settings but they doesn't seem to be taking effect:
<property name="eclipselink.connection-pool.default.initial" value="1"/>
<property name="eclipselink.connection-pool.default.min" value="64"/>
<property name="eclipselink.connection-pool.default.max" value="64"/>

Here is how I validated:

Updated persistence.xml to include these 3 settings
Rebuilt the docker image with updated persistence.xml
Spun up X number of pods
Checked the number of established connection on the backend database

With the above setting, it should keep a connection pool of 64 connections per pods, however, that is not I observed with the steps mentioned above.

The above settings are actually working. Once the upload is up, it will then build the connection pooling.


Documentation?

Is the full documentation available anywhere for the API?
I am looking for a way to open multiple tabs and cycle between them, preferably without reloading the tab each time.

The API documentation is here https://chromedevtools.github.io/devtools-protocol/1-2/

But if I search that for 'tab' or 'tabs' nothing shows up; does chromote itself have any further docs?

Chromote is a very simple wrapper around the API and you can see examples in the README.md.
It is not possible to cycle tabs with the Chrome API but you could use a local caching proxy to load each site from.


Possibility to change text color

Hi,
I'd love to have the ability to change the text color without creating a layout for the ChipViews, would be that possible?
Thanks

Hi khrizt,
You can do it via a custom adapter, you have an example of changing the text color here : https://github.com/Plumillon/ChipView/blob/master/app/src/main/java/com/plumillonforge/android/chipview/sample/MainChipViewAdapter.java#L74
In fact, the TextView created have the android.R.id.text1 id by default, so you can access it this way

Thanks man, sorry I didn't see that one.

Np, I'm here to help :)
Also, the onLayout adapter method is a bit of "all-in" where you got access to all the Chip View
Let me know if you got any question


MacOS version doesn't work

Dear developers,
Thanks for your hard work. However, I recently tried to mine Elicoin and downloaded all the required files for mining within MacOS. Especially, the wallet software couldn't be installed for some reason. Is there any other ways to mine Elicoin and other wallets that work on MacOS?
Thanks!
Best regards,
Jack

I am quite sure your error report will make the devs unhappy! "for some reason" is no reason! It is drag and drop, installation can never fail (except maybe if it triggers your antivirus). Double clicking the program will always fail on recent macs, it needs to be allowed in the system Preferences, just like all unsigned programs. I just downloaded and working for me.


Reimplement the Sidenav as a  element

Refactor Sidenav's current implementation as a  element with
 and
 inside for Groups and Links. This will provide users with a more semantic HTML code.
Other design systems examples:

https://primer.style/css/components/side-nav
https://spectrum.adobe.com/page/side-navigation/
https://www.delldesignsystem.com/components/side-navigation/?tab=Code
https://baseweb.design/components/side-nav/
https://carbondesignsystem.com/components/UI-shell-header/usage

We should discuss what the wanted behavior is.
From what I have seen, the optimal structure, used by other design systems and recommended by W3C is the following:

    ...

  ...

However, our scenario is a bit more complex, as we have some more grouping options, for example the following structure is considered a correct usage:
<DxcSideNav>
  <DxcSideNav.Link>
  </DxcSideNav.Link>
</DxcSideNav>

So we cannot set the Link to be a
 because it cannot be a direct child of a  component.
Also there is the problem of the DxcSideNav.Section, which can be the parent of a Link or any other HTML tag (such as a
 or some
 with a search bar), so it cannot be considered a
. In theory though, the DxcSideNav.Group could be put as a
 as it is supposed to always be the parent of a <Link>.
So this leaves me with doubts about the Section and Link compound components in terms of what HTML should be used for them to cover all the current scenarios while meeting WCAG...


OCI user access message

Fix OCI user access message
https://issues.redhat.com/browse/COST-3418

Codecov Report

Merging #2863 (861b765) into main (7354090) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             main    #2863    +/-   ##
========================================
  Coverage   65.77%   65.77%
========================================
  Files         485      485
  Lines        9336     9336
  Branches     2157     2157
========================================
  Hits         6141     6141
+ Misses       3192     3026   -166
- Partials        3      169   +166

Impacted Files
Coverage Δ

src/locales/messages.ts
100.00% <ø> (ø)

src/utils/equal.ts
12.50% <0.00%> (ø)

src/utils/cookie.ts
58.33% <0.00%> (ø)

src/utils/format.ts
67.32% <0.00%> (ø)

src/api/orgs/orgUtils.ts
37.50% <0.00%> (ø)

src/api/queries/query.ts
34.69% <0.00%> (ø)

src/utils/localStorage.ts
84.84% <0.00%> (ø)

src/store/metrics/selectors.ts
75.86% <0.00%> (ø)

src/routes/views/utils/filter.ts
14.28% <0.00%> (ø)

src/routes/views/utils/groupBy.ts
22.72% <0.00%> (ø)

... and 37 more

Continue to review full report at Codecov.

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


Add scripts to report S3 bucket stats from master nodes

@twiest verified python-awscli from li.repo works with cron-send-s3-metrics.py. Changed to pull python-awscli during yum installation instead of via pip.

@twiest pylint looks to be satisfied now. AWS and OC parts are pulled out into their own classes.

@twiest re-tamed pylint. Changed the way environment variables are handled (now defaults to using pre-existing environment if none passed in). Also expose AWS creds only when running the 'aws' tool.

@twiest privatized to _run_cmd(), and moved the vim settings upwards

:+1:


request updated version of the driver to address the security vulnerability (CVE‑2020‑5973) in https://docs.microsoft.com/en-us/azure/virtual-machines/windows/n-series-driver-setup

will Microsoft supply the updated version of the driver to address the security vulnerability (CVE‑2020‑5973) in https://docs.microsoft.com/en-us/azure/virtual-machines/windows/n-series-driver-setup
Updated Version is vGPU Software ：10.3，Driver：443.46 refer to https://nvidia.custhelp.com/app/answers/detail/a_id/5031

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

ID: 3c5bc749-3f68-e230-37ff-f74ce72efb59
Version Independent ID: 2a382803-e085-82e2-4139-be5c8b9e1a0d
Content: Azure N-series NVIDIA GPU driver setup for Windows - Azure Windows Virtual Machines
Content Source: articles/virtual-machines/windows/n-series-driver-setup.md
Service: virtual-machines-windows
GitHub Login: @vikancha-MSFT
Microsoft Alias: vikancha

@MinaPiao Thank you for your feedback . We will investigate and update the thread further.

@MinaPiao We are in the process of publishing GRID11. It should go live in the next couple of days.

@MinaPiao
We will now proceed to close this thread. If there are further questions regarding this matter, please respond here and @YutongTie-MSFT and we will gladly continue the discussion.

we've checked the driver is updated in Microsoft document. Thanks for the follow up!


Add "NPOT support" check in Capabilities

Some old Android devices do not support NPOT textures in their GLES2 implementation, it will be handy to add that check to bgfx.

I also need this.. It'd be really nice to have a way to check if the device supports NPOT textures and also non square textures for compatibility with old hardware.

Extension to check for would be https://www.khronos.org/registry/OpenGL/extensions/OES/OES_texture_npot.txt


Systemd reexecuting causes docker start to fail

What happened:
I tried to use overrideBootstrapCommand to customize kubelet parameters. However, after I create the manage node group, docker service of its node fails to start. This issue can be recreated.
From log files I found below info:

/etc/eks/bootstrap.sh failed when restarting docker.

+ systemctl daemon-reload
+ systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
+ **systemctl restart docker**
Warning! D-Bus connection terminated.
Failed to wait for response: Connection reset by peer
++ err_report 567
++ echo 'Exited with error on line 567'
Exited with error on line 567
Dec 16 13:01:36 cloud-init[2580]: util.py[WARNING]: Failed running /var/lib/cloud/instance/scripts/part-001 [1]

In the system log file (message), I can see that systemd reexecuted itself when docker was starting. Then cloud-init disconnected from D-Bus.

Dec 16 13:01:36 ip-192-168-92-84 dockerd: time="2022-12-16T13:01:36.333107248Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Dec 16 13:01:36 ip-192-168-92-84 **systemd: Reexecuting.**
Dec 16 13:01:36 ip-192-168-92-84 systemd: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
Dec 16 13:01:36 ip-192-168-92-84 systemd: Detected virtualization amazon.
Dec 16 13:01:36 ip-192-168-92-84 systemd: Detected architecture x86-64.
Dec 16 13:01:36 ip-192-168-92-84 cloud-init: Warning! D-Bus connection terminated.
Dec 16 13:01:36 ip-192-168-92-84 cloud-init: Failed to wait for response: Connection reset by peer
Dec 16 13:01:36 ip-192-168-92-84 cloud-init: ++ err_report 567

What you expected to happen:
Update kubelet configure and start docker & kubelet service successfully.
How to reproduce it (as minimally and precisely as possible):
Create a managed node group using eksctl.
eksctl create ng -f overrideBootstrapCommand.conf
Content of the config file is as below:
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: eksworkshop-eksctl
  region: ap-northeast-1

managedNodeGroups:
  - name: mng-1
    instanceType: t3.medium
    ami: ami-0e55038b16719eb0b
    desiredCapacity: 1
    minSize: 0
    maxSize: 1
    ssh:
      allow: true
      publicKeyName: defaultJP
    overrideBootstrapCommand: |
      #!/bin/bash
      set -o xtrace
      set -x
      bash -x /etc/eks/bootstrap.sh eksworkshop-eksctl --kubelet-extra-args '--image-gc-high-threshold=70 --image-gc-low-threshold=50'

Anything else we need to know?:
If I add below parameters to bootstrap.sh, it would be working fine.
--b64-cluster-ca
--apiserver-endpoint
--dns-cluster-ip
Environment:

AWS Region: ap-northeast-1
Instance Type(s): OD
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.11
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.21
AMI Version: ami-0e55038b16719eb0b
Kernel (e.g. uname -a): 5.4.219-126.411.amzn2.x86_64
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-0c90e1cacda57dac6"
BUILD_TIME="Sat Nov 12 04:15:46 UTC 2022"
BUILD_KERNEL="5.4.219-126.411.amzn2.x86_64"
ARCH="x86_64"

The eksctl folks should take a look at this first, I would open an issue in weaveworks/eksctl.

The eksctl folks should take a look at this first, I would open an issue in weaveworks/eksctl.

May I know what is the link of the issue in weaveworks/eksctl? Thanks.


add support for flattening secret data

when servicebindings contain nested json structures the operator can
now create compound keys by appending "_" between keys to enable a flat
list of data values inside the created secret instead of having secret data
contain json data
implements #114
Note: I'm not very experienced with writing go in general and in particular not with writing Kubernetes operators. Please thoroughly review.
We didn't have the chance yet to sync whether this feature is actually desirable for the project, it would definitely help our use case and it allows more "standard" consumption of service bindings from Kubernetes. If there is need we can have a meeting early in 2022.
Merry Christmas!

See #114 - this feature currently seems undesired


Storages: move ann_query_info to PushDownExecutor

What problem does this PR solve?
Issue Number: ref #6233
Problem Summary:
What is changed and how it works?
1. move `ann_query_info` to `PushDownFilter`
2. rename `PushDownFilter` to `PushDownExecutor`

https://github.com/pingcap/tiflash/pull/9741/commits/86795ac9f811da4a9bc406b482db413d535d3e8a
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/retest

/retest


How to install?

I downloaded the StdPatch-master archive, unpacked it. Inside only folders and some files. DLL files are not there.

Download release, not the repository itself


[Feature] Make planId overridable

Hello,
I have several cases where I have to execute tests scattered through multiple tests plans.
A simple example : I update the POM & fixtures, so I perform a npx playwright test --only-changed that are used in several tests cases across multiple test plans & suites
Unfortunately I can't make use of the reporter in this case, but it could be solved by adding support for multiple planId, such as testPointMapper already does for configurations.
Another method that would ensure backwards compatibility, would be to keep the exisiting planId, and use it as the default one, but adding the capability to override it locally.

Either with title/tags , by adding a prefix separated with . (PlanId.CaseId) :

test('Test case A [42.12345]', async ({ page }) => {
  await expect(true).toBe(true);
});
test('Test case B', () => {
    tag<EMAIL_ADDRESS>  }, async ({ page }) => {
  await expect(true).toBe(true);
});

Or annotations, by adding a new matcher :

test('Test case', { annotations: [{ type: 'TestSuite', description: '42' }, { type: 'TestCase', description: '12345' }] }, () => {
  expect(true).toBe(true);
});

Both methods may only be supported with publishTestResultsMode: 'testResult' though.
Would it be possible considering the actual architecture of the reporter ?
Thanks and have a nice day

If specs that you will run have include test cases from few different plans how you wish create test runs in ADO?
If we would have few plans we should create test run for each plan
If we would create few test runs we lost ability with AZURE_PW_TEST_RUN_ID and isExistingTestRun

...maybe I'll think of something else


[BUG]: drizzle-kit introspect TypeError: Cannot read properties of undefined (reading 'toLowerCase')

What version of drizzle-orm are you using?
0.3.10
What version of drizzle-kit are you using?
0.21.2
Describe the Bug
``bun version 1.1.8
C:\Users\hitech\code\nomad_db\node_modules\drizzle-kit\bin.cjs:15875
              const onUpdate = fk4.update_rule.toLowerCase();
                                               ^

TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    at C:\Users\hitech\code\nomad_db\node_modules\drizzle-kit\bin.cjs:15875:48
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v18.18.2

getting this error on bunx drizzle-kit introspect command
db schema is here
import { relations, sql } from "drizzle-orm";
import {
  boolean,
  date,
  index,
  integer,
  numeric,
  pgEnum,
  pgTableCreator,
  primaryKey,
  real,
  serial,
  text,
  time,
  timestamp,
  unique,
  varchar,
} from "drizzle-orm/pg-core";
import { type AdapterAccount } from "next-auth/adapters";

/**
 * This is an example of how to use the multi-project schema feature of Drizzle ORM. Use the same
 * database instance for multiple projects.
 *
 * @see https://orm.drizzle.team/docs/goodies#multi-project-schema
 */
export const createTable = pgTableCreator(
  (name) => `nomad_competition_${name}`,
);

export const users = createTable("user", {
  id: varchar("id", { length: 255 }).notNull().primaryKey(),
  firstname: varchar("firstname", { length: 255 }).notNull(),
  lastname: varchar("lastname", { length: 255 }).notNull(),
  wcaId: varchar("wca_id", { length: 255 }).unique(),
  email: varchar("email", { length: 255 }).notNull().unique(),
  phone: integer("phone").notNull(),
  birthDate: date("birth_date").notNull(),
  emailVerified: timestamp("emailVerified", {
    mode: "date",
  }).default(sql`CURRENT_TIMESTAMP`),
  image: varchar("image", { length: 255 }),
  isAdmin: boolean("is_admin").notNull().default(false),
  password: varchar("password", { length: 255 }).notNull(),
});

export const usersRelations = relations(users, ({ many }) => ({
  accounts: many(accounts),
  competitors: many(competitors),
}));

export const accounts = createTable(
  "account",
  {
    userId: varchar("userId", { length: 255 })
      .notNull()
      .references(() => users.id),
    type: varchar("type", { length: 255 })
      .$type<AdapterAccount["type"]>()
      .notNull(),
    provider: varchar("provider", { length: 255 }).notNull(),
    providerAccountId: varchar("providerAccountId", { length: 255 }).notNull(),
    refresh_token: text("refresh_token"),
    access_token: text("access_token"),
    expires_at: integer("expires_at"),
    token_type: varchar("token_type", { length: 255 }),
    scope: varchar("scope", { length: 255 }),
    id_token: text("id_token"),
    session_state: varchar("session_state", { length: 255 }),
  },
  (account) => ({
    compoundKey: primaryKey({
      columns: [account.provider, account.providerAccountId],
    }),
    userIdIdx: index("account_userId_idx").on(account.userId),
  }),
);

export const accountsRelations = relations(accounts, ({ one }) => ({
  user: one(users, { fields: [accounts.userId], references: [users.id] }),
}));

export const sessions = createTable(
  "session",
  {
    sessionToken: varchar("sessionToken", { length: 255 })
      .notNull()
      .primaryKey(),
    userId: varchar("userId", { length: 255 })
      .notNull()
      .references(() => users.id),
    expires: timestamp("expires", { mode: "date" }).notNull(),
  },
  (session) => ({
    userIdIdx: index("session_userId_idx").on(session.userId),
  }),
);

export const sessionsRelations = relations(sessions, ({ one }) => ({
  user: one(users, { fields: [sessions.userId], references: [users.id] }),
}));

export const verificationTokens = createTable(
  "verificationToken",
  {
    identifier: varchar("identifier", { length: 255 }).notNull(),
    token: varchar("token", { length: 255 }).notNull(),
    expires: timestamp("expires", { mode: "date" }).notNull(),
  },
  (vt) => ({
    compoundKey: primaryKey({ columns: [vt.identifier, vt.token] }),
  }),
);

export const cubeTypes = createTable("cube_types", {
  id: serial("id").primaryKey(),
  name: varchar("name").notNull(),
  image: varchar("image"),
  order: real("order").notNull().default(1),
});

export const cubeTypesRelations = relations(cubeTypes, ({ many }) => ({
  competitorsToCubeTypes: many(competitorsToCubeTypes),
  competitionsToCubeTypes: many(competitionsToCubeType),
}));

export const competitions = createTable("competitions", {
  id: serial("id").primaryKey(),
  name: varchar("name").notNull(),
  address: varchar("address").notNull(),
  addressLink: varchar("address_link"),
  maxCompetitors: integer("max_competitors").notNull(),
  startDate: date("start_date").notNull(),
  endDate: date("end_date").notNull(),
  registerStartDate: timestamp("register_start_date", {
    withTimezone: true,
  }),
  registerEndDate: timestamp("register_end_date", {
    withTimezone: true,
  }),
  contact: text("contact"),
  registrationRequirments: text("registration_requirments"),
  baseFee: numeric("base_fee").notNull().default("0"),
  guestFee: numeric("guest_fee").notNull().default("0"),
  freeGuests: integer("free_guests").notNull().default(0),
});

export const competitionsRelations = relations(competitions, ({ many }) => ({
  competitors: many(competitors),
  competitionsToCubeTypes: many(competitionsToCubeType),
  schedules: many(schedules),
  ageGroups: many(ageGroups),
  fees: many(fees),
}));

export const competitionsToCubeType = createTable(
  "competitions_to_cube_type",
  {
    cubeTypeId: integer("cube_type_id")
      .notNull()
      .references(() => cubeTypes.id),
    competitionId: integer("competition_id")
      .notNull()
      .references(() => competitions.id),
  },
  (t) => ({
    pk: primaryKey({
      columns: [t.competitionId, t.cubeTypeId],
    }),
  }),
);

export const competitionsToCubeTypeRelations = relations(
  competitionsToCubeType,
  ({ one }) => ({
    cubeType: one(cubeTypes, {
      fields: [competitionsToCubeType.cubeTypeId],
      references: [cubeTypes.id],
    }),
    competition: one(competitions, {
      fields: [competitionsToCubeType.competitionId],
      references: [competitions.id],
    }),
  }),
);

export const competitors = createTable(
  "competitors",
  {
    id: serial("id").primaryKey(),
    userId: varchar("user_id")
      .notNull()
      .references(() => users.id),
    competitionId: integer("competition_id")
      .notNull()
      .references(() => competitions.id),
    guestCount: integer("guest_count").notNull().default(0),
    description: varchar("description"),
    requestedAt: timestamp("requested_at").notNull().defaultNow(),
    verifiedAt: timestamp("verified_at"),
  },
  (t) => ({
    competitionIdUserIdUniq: unique().on(t.competitionId, t.userId),
  }),
);

export const competitorsRelations = relations(competitors, ({ one, many }) => ({
  user: one(users, {
    fields: [competitors.userId],
    references: [users.id],
  }),
  competition: one(competitions, {
    fields: [competitors.competitionId],
    references: [competitions.id],
  }),
  competitorsToCubeTypes: many(competitorsToCubeTypes),
  invoices: many(invoices),
}));

export const competitorsToCubeTypes = createTable(
  "competitors_to_cube_types",
  {
    competitorId: integer("competitor_id")
      .notNull()
      .references(() => competitors.id),
    cubeTypeId: integer("cube_type_id")
      .notNull()
      .references(() => cubeTypes.id),
  },
  (t) => ({
    pk: primaryKey({
      columns: [t.competitorId, t.cubeTypeId],
    }),
  }),
);

export const competitorsToCubeTypesRelations = relations(
  competitorsToCubeTypes,
  ({ one }) => ({
    competitor: one(competitors, {
      fields: [competitorsToCubeTypes.competitorId],
      references: [competitors.id],
    }),
    cubeType: one(cubeTypes, {
      fields: [competitorsToCubeTypes.cubeTypeId],
      references: [cubeTypes.id],
    }),
  }),
);

export const schedules = createTable("schedules", {
  id: serial("id").primaryKey(),
  name: varchar("name").notNull(),
  startTime: time("start_time").notNull(),
  endTime: time("end_time").notNull(),
  date: date("date").notNull(),
  cutOff: varchar("cut_off"),
  timeLimit: varchar("time_limit"),
  competitorLimit: integer("competitor_limit"),
  competitionId: integer("competition_id")
    .references(() => competitions.id)
    .notNull(),
});

export const schedulesRelations = relations(schedules, ({ one }) => ({
  competition: one(competitions, {
    fields: [schedules.competitionId],
    references: [competitions.id],
  }),
}));

export const ageGroups = createTable("age_groups", {
  id: serial("id").primaryKey(),
  name: varchar("name").notNull(),
  start: integer("start").notNull(),
  end: integer("end"),
  order: real("order").notNull().default(1),
  competitionId: integer("competition_id")
    .notNull()
    .references(() => competitions.id),
  cubeTypeId: integer("cube_type_id")
    .references(() => cubeTypes.id)
    .notNull(),
});

export const ageGroupsRelations = relations(ageGroups, ({ one }) => ({
  competition: one(competitions, {
    fields: [ageGroups.competitionId],
    references: [competitions.id],
  }),
  cubeType: one(cubeTypes, {
    fields: [ageGroups.cubeTypeId],
    references: [cubeTypes.id],
  }),
}));

export const paymentsTypeEnum = pgEnum("payment_type", ["qpay"]);

export const payments = createTable("qpay", {
  type: paymentsTypeEnum("type").notNull().primaryKey().unique(),
  accessToken: text("access_token").notNull(),
  refreshToken: text("refresh_token").notNull(),
  accessExpiresAt: timestamp("access_expires_at", {
    mode: "date",
    withTimezone: true,
  }).notNull(),
  refreshExpiresAt: timestamp("refresh_expires_at", {
    mode: "date",
    withTimezone: true,
  }).notNull(),
});

export const invoices = createTable("invoices", {
  id: serial("id").primaryKey(),
  invoiceCode: varchar("invoice_code"),
  amount: numeric("amount").notNull(),
  isPaid: boolean("is_paid").notNull().default(false),
  competitorId: integer("competitor_id")
    .references(() => competitors.id)
    .notNull(),
  userId: varchar("user_id")
    .notNull()
    .references(() => users.id),
});

export const invoicesRelations = relations(invoices, ({ one }) => ({
  competitor: one(competitors, {
    fields: [invoices.competitorId],
    references: [competitors.id],
  }),
}));

export const fees = createTable("fees", {
  id: serial("id").primaryKey(),
  cubeTypeId: integer("cube_type_id")
    .notNull()
    .references(() => cubeTypes.id),
  amount: numeric("amount").default("0").notNull(),
  competitionId: integer("competition_id").references(() => competitions.id),
});

export const feesRelation = relations(fees, ({ one }) => ({
  cubeType: one(cubeTypes, {
    fields: [fees.cubeTypeId],
    references: [cubeTypes.id],
  }),
  competition: one(competitions, {
    fields: [fees.competitionId],
    references: [competitions.id],
  }),
}));

Expected behavior
No response
Environment & setup
No response

I encountered the same issue. It seems like that tableForeignKeys contains results for dbIndexes despite both queries being in different calling order.
tableForeignKeys 15851
dbIndexes 16011
Not going to dig any further - my skills end here

Okay, I could confirm for myself.
Using Supavisor for connection pooling only works when using session mode and not transaction mode. For Supabase users, switching to port 5432 instead of 6543 should be enough to mitigate

Same issue here w/ supabase port 6543
const onUpdate = fk4.update_rule.toLowerCase();
                                               ^

TypeError: Cannot read properties of undefined (reading 'toLowerCase')

A Fix is
This worked for me
  schema: "./lib/supabase/schema.ts",
  dialect: "postgresql",
  out: "./migrations",
  dbCredentials: {
    url: process.env.DATABASE_URL || "",
    database: "postgres",
    port: 5432,
    host: "aws-0-ap-south-1.pooler.supabase.com",
    user: "postgres.user",
    password: process.env.PW || "",
  },
});

A Fix is
This worked for me
export default defineConfig({
  schema: "./lib/supabase/schema.ts",
  dialect: "postgresql",
  out: "./migrations",
  dbCredentials: {
    url: process.env.DATABASE_URL || "",
    database: "postgres",
    port: 5432,
    host: "aws-0-ap-south-1.pooler.supabase.com",
    user: "postgres.user",
    password: process.env.PW || "",
  },
});

A Fix is
This worked for me
export default defineConfig({
  schema: "./lib/supabase/schema.ts",
  dialect: "postgresql",
  out: "./migrations",
  dbCredentials: {
    url: process.env.DATABASE_URL || "",
    database: "postgres",
    port: 5432,
    host: "aws-0-ap-south-1.pooler.supabase.com",
    user: "postgres.user",
    password: process.env.PW || "",
  },
});

Worked for me

This worked for me.

Ended up switching to node-postgres / pg because there were so many issues with postgres

Unfortunately, the suggestions in this thread are not working for me. Here is my current setup:
What version of drizzle-orm are you using?
"drizzle-orm": "^0.31.2"
What version of drizzle-kit are you using?
"drizzle-kit": "^0.22.7"
What version of node are you using?
v20.9.0
I am on Ubuntu:
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy

Commands:
"generate": "drizzle-kit generate",
"push": "drizzle-kit push"

Running npm run generate works fine :heavy_check_mark:
Running npm run push produces the following error:
$ npm run push

><EMAIL_ADDRESS>push
> drizzle-kit push

drizzle-kit: v0.22.7
drizzle-orm: v0.31.2

No config path provided, using default path
Reading config file '/home/andrew/Documents/web-dev/personal/nextjs-14/projects/afk-teams/drizzle.config.ts'
Using 'postgres' driver for database querying
[⣯] Pulling schema from database...
/home/andrew/Documents/web-dev/personal/nextjs-14/projects/afk-teams/node_modules/drizzle-kit/bin.cjs:21701
              const onUpdate = fk4.update_rule.toLowerCase();
                                               ^

TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    at /home/andrew/Documents/web-dev/personal/nextjs-14/projects/afk-teams/node_modules/drizzle-kit/bin.cjs:21701:48
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.9.0

.env file:
DATABASE_URL="postgres://postgres.[PROJECT]:[PASSWORD]@aws-0-us-west-1.pooler.supabase.com:6543/postgres"

GOOGLE_CLIENT_ID="..."
GOOGLE_CLIENT_SECRET="..."

NEXTAUTH_SECRET="..."
NEXTAUTH_URL="http://localhost:3000/"

I got the value for DATABASE_URL by going to https://supabase.com/dashboard/project/[PROJECT], clicking on the green Connect button, ensuring 'Display connection pooler' is checked and the Mode is set to Transaction. I then went to the ORMs tab, changed Tool to Drizzle, and copied / updated the value as displayed in this dialog.
drizzle config file, located at the root and called drizzle.config.ts:
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  schema: "./src/drizzle/schema.ts",
  dialect: "postgresql",
  out: "./src/drizzle/migrations",
  dbCredentials: {
    url: process.env.DATABASE_URL || ""
  }
});

schema file, located at src/drizzle/schema.ts:
import { boolean, integer, pgTable, primaryKey, text, timestamp, uuid } from "drizzle-orm/pg-core";
import type { AdapterAccount } from "next-auth/adapters";

export const users = pgTable("user", {
  id: text("id")
    .primaryKey()
    .$defaultFn(() => crypto.randomUUID()),
  name: text("name"),
  email: text("email").notNull(),
  emailVerified: timestamp("emailVerified", { mode: "date" }),
  image: text("image")
});

export const accounts = pgTable(
  "account",
  {
    userId: text("userId")
      .notNull()
      .references(() => users.id, { onDelete: "cascade" }),
    type: text("type").$type<AdapterAccount>().notNull(),
    provider: text("provider").notNull(),
    providerAccountId: text("providerAccountId").notNull(),
    refresh_token: text("refresh_token"),
    access_token: text("access_token"),
    expires_at: integer("expires_at"),
    token_type: text("token_type"),
    scope: text("scope"),
    id_token: text("id_token"),
    session_state: text("session_state")
  },
  (account) => ({
    compoundKey: primaryKey({
      columns: [account.provider, account.providerAccountId]
    })
  })
);

export const sessions = pgTable("session", {
  sessionToken: text("sessionToken").primaryKey(),
  userId: text("userId")
    .notNull()
    .references(() => users.id, { onDelete: "cascade" }),
  expires: timestamp("expires", { mode: "date" }).notNull()
});

export const verificationTokens = pgTable(
  "verificationToken",
  {
    identifier: text("identifier").notNull(),
    token: text("token").notNull(),
    expires: timestamp("expires", { mode: "date" }).notNull()
  },
  (verificationToken) => ({
    compositePk: primaryKey({
      columns: [verificationToken.identifier, verificationToken.token]
    })
  })
);

export const authenticators = pgTable(
  "authenticator",
  {
    credentialID: text("credentialID").notNull().unique(),
    userId: text("userId")
      .notNull()
      .references(() => users.id, { onDelete: "cascade" }),
    providerAccountId: text("providerAccountId").notNull(),
    credentialPublicKey: text("credentialPublicKey").notNull(),
    counter: integer("counter").notNull(),
    credentialDeviceType: text("credentialDeviceType").notNull(),
    credentialBackedUp: boolean("credentialBackedUp").notNull(),
    transports: text("transports")
  },
  (authenticator) => ({
    compositePK: primaryKey({
      columns: [authenticator.userId, authenticator.credentialID]
    })
  })
);

export const teams = pgTable("team", {
  teamId: uuid("teamId").defaultRandom().notNull().primaryKey(),
  userId: text("userId")
    .notNull()
    .references(() => users.id, { onDelete: "cascade" }),
  createdAt: timestamp("createdAt", { mode: "date" }).defaultNow(),
  updatedAt: timestamp("updatedAt", { mode: "date" }).defaultNow(),
  deletedAt: timestamp("deletedAt", { mode: "date" }).defaultNow(),
  teamName: text("teamName").notNull(),
  gameMode: text("gameMode").notNull(),
  numberOfLikes: integer("numberOfLikes").default(0),
  isLikedByCurrentUser: boolean("isLikedByCurrentUser").default(false),
  isBookmarkedByCurrentUser: boolean("isBookmarkedByCurrentUser").default(false),
  heroAtPosition1: text("heroAtPosition1"),
  heroAtPosition2: text("heroAtPosition2"),
  heroAtPosition3: text("heroAtPosition3"),
  heroAtPosition4: text("heroAtPosition4"),
  heroAtPosition5: text("heroAtPosition5"),
  beast: text("beast"),
  description: text("description"),
  comments: text("comments").default("[]"),
  numberOfComments: integer("numberOfComments").default(0)
});

export const comments = pgTable("comment", {
  commentId: uuid("commentId").defaultRandom().notNull().primaryKey(),
  userId: text("userId")
    .notNull()
    .references(() => users.id, { onDelete: "cascade" }),
  teamId: uuid("teamId")
    .notNull()
    .references(() => teams.teamId, { onDelete: "cascade" }),
  commentText: text("commentText").notNull(),
  createdAt: timestamp("createdAt", { mode: "date" }).defaultNow(),
  updatedAt: timestamp("updatedAt", { mode: "date" }).defaultNow(),
  deletedAt: timestamp("deletedAt", { mode: "date" }).defaultNow(),
  numberOfLikes: integer("numberOfLikes").default(0),
  replies: text("replies").default("[]")
});

The code for the user, account, session, and authenticator comes from the next-auth docs here. The code for the team and comment tables I wrote myself.
Database connection file, located at src/drizzle/config.ts:
import "dotenv/config";

import { drizzle } from "drizzle-orm/postgres-js";
import postgres from "postgres";

const connectionString = process.env.DATABASE_URL || "";

// Disable prefetch as it is not supported for "Transaction" pool mode
export const client = postgres(connectionString, { prepare: false });
export const db = drizzle(client);

This code froms the Supabase documentation, as seen here.
Here is a link to my repo as well.

A Fix is
This worked for me
export default defineConfig({
  schema: "./lib/supabase/schema.ts",
  dialect: "postgresql",
  out: "./migrations",
  dbCredentials: {
    url: process.env.DATABASE_URL || "",
    database: "postgres",
    port: 5432,
    host: "aws-0-ap-south-1.pooler.supabase.com",
    user: "postgres.user",
    password: process.env.PW || "",
  },
});

Also, @Yash-pede is this from your repo notion-clone? If so, I noticed that your .env file is included with your repo, and your database credentials are fully exposed. I would strongly recommend updating your .gitignore to specify .env along with .env*.local:
# local env files
.env
.env*.local

Unfortunately, the suggestions in this thread are not working for me. Here is my current setup:

So you didn't change the port to 5432 and expect it to work without?

I did try changing the port to 5432. That's why I said the suggestions in the thread are not working for me...

Okay, good to know. Your .env just still shows port 6543.
With it not working on 5432, it would mean that your problem is not necessarily related to what other people have been experiencing related to the supabase connection pooler.

You should probably refer to the documentations here, i was facing a similar issue with port and  when i referenced to docs,they had changes in the way dbCredentials are to be written, you should definitely check it out once.
I am pasting snip of my drizzle.config file below.
import {defineConfig} from 'drizzle-kit';
import * as dotenv from 'dotenv';
dotenv.config({path: '.env'});
if(!process.env.DATABASE_URL){
console.log("Cannot find Database URL")
}
export default defineConfig({
schema: './src/app/lib/supabase/schema.ts',
out: './migrations',
dialect: 'postgresql',
dbCredentials:{
url: process.env.DATABASE_URL || '',
port: 5432,
database: 'postgres',
host: 'aws-0-ap-southeast-1.pooler.supabase.com',
user: 'postgres.mqfucddewuigxsddyfon',
password: process.env.PW || '',
},
})

having the same trouble following this guide
https://orm.drizzle.team/learn/migrate/migrate-from-prisma
my config:
import { defineConfig } from "drizzle-kit";

export default defineConfig({
    dialect: "postgresql",
    out: "./src/drizzle",
    schema: "./src/drizzle/schema.ts",
    dbCredentials: {
        url: process.env.DATABASE_URL!,
    },
    verbose: true,
    strict: true,
});

so, i did come up with a solution to my problem, but i will advise that it isn't a great one.
what i ended up doing was dropping all of my tables in supabase, and re-ran the generate and push commands, and i haven't had any issues since. my guess is that there was a discrepancy between my drizzle schema definitions and the actual structure of the tables in supabase.
i certainly understand that dropping all of my tables isn't the ideal solution. to be honest, i am surprised it worked as well. the reason why did it is i thought perhaps a fresh start would help, and since this app is still in development, and i am the only user, i thought it was ok to do. if it should occur again, especially once deployed, as well as if i should get a regular user base (which i'm hoping to get), then i will absolutely look into alternative solutions.

I need a solution without dropping the tables.

I managed to reproduce the error and resolution by adding this configuration and changing the port.
My config:
import { defineConfig } from 'drizzle-kit'

export default defineConfig({
  schema: './src/db/schema.ts',
  out: './supabase/migrations',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL!,
    database: 'postgres',
    // port: 6543, // Gives error: TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    port: 5432, // This works
    host: process.env.DATABASE_HOST!,
    user: process.env.DATABASE_USER!,
    password: process.env.DATABASE_PASSWORD!,
  },
})```

changing port is not working for me, is there any other solution?

Changing the port did work for me, just make sure you are changing it in the DB url and everywhere else as well

Is there a solution for this if I'm not using Docker?
import { config } from 'dotenv';
import { defineConfig } from 'drizzle-kit';
config({ path: '.env' });
export default defineConfig({
  schema: './db/schema.ts',
  out: './utils/supabase/migrations',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL!,
    port: 5432, // doesn't help
  },
});

actually changing the port in DATABASE_URL inside .env helped

any fix?

actually changing the port in DATABASE_URL inside .env helped
UPD: i don't think that works long term

This is correct! If you change the port in drizzle.config.ts and not in the Database URL, it won't work.

Using supabase, as soon as I do one push, i start getting this bug as well

I get a connection timeout error with port 5432

I get the same error.

Dropping the tables worked for me

I get a connection timeout error with port 5432

I guess that's because port 5432 is not for connection pooling, and only the default port 6543 is

Can't understand why a port change would be the fix?  Getting tiring to drop tables.

This should be fixed in<EMAIL_ADDRESS>If you still encounter this issue, please reopen the ticket

I get the following error now after upgrading to<EMAIL_ADDRESS>when running drizzle-kit push:
[⣷] Pulling schema from database...
/Users/dk/Code/bot/node_modules/.pnpm/drizzle-kit@0.24.1/node_modules/drizzle-kit/bin.cjs:19320
      if (column7.column_default.endsWith("[]")) {
                                 ^

TypeError: Cannot read properties of undefined (reading 'endsWith')
    at defaultForColumn (/Users/dk/Code/bot/node_modules/.pnpm/drizzle-kit@0.24.1/node_modules/drizzle-kit/bin.cjs:19320:34)
    at /Users/dk/Code/bot/node_modules/.pnpm/drizzle-kit@0.24.1/node_modules/drizzle-kit/bin.cjs:19097:36
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

Node.js v20.16.0

I'm using Supabase and the previous workaround of changing port 6543 to 5432 is still required to circumvent the error.
@AndriiSherman FYI I don't see a way to reopen the ticket. Can you reopen it?

I'm running exactly the same error as @namukang on<EMAIL_ADDRESS>version using Supabase.

@namukang  is your problem solved ? because I am facing that problem right now
"drizzle-kit": "^0.24.2",
"drizzle-orm": "^0.33.0",
node : v20.16.0

I was experiencing the same issue with Drizzle + Supabase, and switching to session mode helped.
import { type Config } from "drizzle-kit";

import { env } from "~/env";

export default {
  schema: "./src/server/db/schema.ts",
  out: "./supabase/migrations",
  dialect: "postgresql",
  dbCredentials: {
    url: env.DATABASE_URL,
  },
} satisfies Config;

Make sure your PORT value is set to 5432 in the DATABASE_URL.

I'm having the same error as @namukang and @guilleigmu, but I'm using<EMAIL_ADDRESS>and<EMAIL_ADDRESS> I'm using Supabase and had to implement the same workarounds to address the issue (changing ports in .env file and/or dropping the tables).

I was having the same problem but changing the port to 5432 in the DATABASE_URL in the .env file worked for me


Documentation on applying your node

Estimated time: 2h

What:
Explications on how to apply your masternode on TomoMaster. It will be quite redundant with the get started except it will not be specific to Testnet. No formular.
It should contain:

When to apply
Implication of applying
Requirements to apply (50k TOMO)
How to apply
Why/when resigning
How to resign

Where:
In the applying section of the Masternode category
https://github.com/tomochain/docs/blob/b6d10731dd3861ba241a3ac1e0e423ca574c1cd6/mkdocs.yml#L76-L82

closed by #84


Advania Cloud shutting down - need new hosting provider

For the last few years Advania has been sponsoring a server to us in Advania Open Cloud. We are grateful for the last few years with them, but unfortunately Advania Open Cloud is shutting down and we have until the 6th of December 2018 to find a new provider.
Minimal requirements (please comment below if something is missing, and I'll add it to the list):

Hosted in Iceland (latency to source data)
2GB RAM

Preferably free, since the project has no revenue stream

I have contacted Advania (Rekstrarlausnir) and they are willing to support the project. Who can I send further details and will manage the migration?

@sse87 Thank you for the offer. Advania reached out immediately after @MiniGod created the issue.

Advania has given us access to their private cloud. Fantastic work on their end! We will start migrating in the next few weeks.