Should rolling controller update be the default strategy?

The Helm chart sets the update strategy for the Traefik controller Deployment to RollingUpdate. I am wondering if this is a "sane" default when nothing is known about the cluster where this is installed?
Isn't it the case that when doing a rolling update, multiple controllers with different configs could be present at the same time (e.g. one old and one new). If they are behind a simple load balancing service, a request from a client could be directed first to the controller with the new and then to the one with the old settings again, causing weird intermittent effects at the client, which might be worse than the short downtime effected by Recreate strategy.
It seems to me that Recreate would be safer in this regard, and if an cluster operator wants it explicitly, they could opt in to the RollingUpdate strategy.
Or at least allow both options to be set as template values and give a short explanation of the implications as a comment?

IMHO, RollingUpdate should fit all use cases.
Do you have a specific scenario in mind?
Sure, applying an update would result in sequential restarts and a window of time during which different copies of Traefik would run. This is the default behavior for a Kubernetes Deployment, while DaemonSets would also apply upgrades restarting containers one after the other.
Assuming intermittent effects are indeed related to Traefik updates -- and that sessions stickyness/cookies/... is otherwise configured whenever necessary.
Assuming that we're talking about deployments with 2+ replicas -- as the default values would set rollingParams maxUnavailable to 1 / 100%, which results in old container being terminated when the new one is created, thus no real case of two pods simultaneously assuming the same role when only 1 replica is involved.
If updating Traefik, it is fair to assume the new containers should behave in a similar way to the previous copy. I'm not convinced as a cluster admin, I should care about who's serving requests rolling out such an update. If all goes well, update would be applied relatively quickly. If not: the first container would not be created, or its liveness/readiness would not allow for traffic getting in, I can troubleshoot this while my other previous copies are still healthy.
Of course, generally speaking, hosting applications in Kubernetes: there could be exceptions, depending on the specifics of a given update.
Then again, Kubernetes Ingress Controllers implement a relatively basic and generic function. I would not worry about breaking changes, unless the Traefik changelog says otherwise.
Whereas re-applying the same Chart version editing your deployment arguments, maybe mounting a ConfigMap: I guess that argument could be valid?
Though I would still expect the defaults to proceed with upgrades in a way that would minimize impact for clients.
With a Recreate strategy, all upgrades would imply shutting down everything, then pulling the new image and restarting a first container, it goes beyond shutting down potentially active client connections: there would be a short period during which clients would be unable to reconnect their webservice.
And this is assuming the new containers do start up. If, for any reason, my previous Chart values somehow break with the new image, my container would be stuck in CrashLoopBackOff, leaving me with no running copies left.
Recreate doesn't sound like a sane default, at least for most use cases.
So far, the only case for Recreate I could have made was regarding the usage of RWO persistent volumes, as reported in https://github.com/traefik/traefik-helm-chart/issues/355
I did submit a PR: https://github.com/traefik/traefik-helm-chart/pull/356
And retrospectively, I was wrong. The default rollingParams covers that case pretty well.
And while thie is not necessarily a good argument, it could be worth mentioning that other Kubernetes Ingress Controllers would also use the RollingUpdate strategy.

nginx ( https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.47.0/deploy/static/provider/baremetal/deploy.yaml ) does not mention any strategy in its Deployment, resulting in RollingUpdate being applied
nginxinc copy as well: https://github.com/nginxinc/kubernetes-ingress/blob/master/deployments/deployment/nginx-ingress.yaml
same goes for HAProxy: https://github.com/haproxytech/kubernetes-ingress/blob/master/deploy/haproxy-ingress.yaml#L137
while Ambassador allows to set a different strategy: https://github.com/datawire/ambassador-chart/blob/master/templates/deployment.yaml#L39 though the default remains to use RollingUpdate https://github.com/datawire/ambassador-chart/blob/master/values.yaml#L245

When in doubt, as with any other Kubernetes hosted application, I should test my assumptions on a non-production environment, before going live.
Though for the little experience I have with Traefik: applying updates is not something I usually worry about, with the exception of v1/v2, beyond the scope of this Chart.
If you did experience with some specific issue, let us know about it.
In theory, setting a different strategy could be doable, though I'm not convinced it would ever be preferable.

Thanks for the detailed answer. That was exactly the reason why I opened the ticket, to get the team's thought process behind the update strategy. I don't have any specific issue that triggered this question, it was just something I noticed in the Chart and wanted to ask about. I agree with your elaborations.
The situation I had in mind was the scenario with re-applying the same Chart version after editing the deployment arguments, together with having more than 1 replica.
E.g. changing frontend or backend TLS settings, where simultaneously deployed old and new config could lead to weird errors regarding TLS (and similar stuff, the scenario is not tied to TLS).
But I agree that setting the strategy to 'Recreate' leaves a risk of the new version not coming up at all, thus triggering a service interruption, which is probably worse except in some quite specific situations.
So for me this is settled.


Facing issue in SBI Pay - Uri Decode

@ symbol is not decoding properly in SBI Pay app alone.
For example
"xxxx@okhdfcbank" is working in all other apps.
In SBI pay alone it's not decoding properly. It's  coming as   "xxxx 40okhdfcbank"

@senthil88 Could you provide a reproducible code?

It looks like it is an issue of SBIPay not following the spec strictly speaking. Closing this since it's not something we can handle on a library level.

@senthil88 some apps like SBIPay are not able to properly decode URL encoded VPAs. This was worked around in the Android intent calling code by not URL encoding the VPA. This works across all apps including those like SBI Pay that got confused with the URL encoded VPAs. It's available in v0.3.0+.

Is https://github.com/drenther/upi_pay/issues/38 relevant and important for you?
If yes, could you please respond to my twitter thread with UPI and NPCI handles included in your response asking how these must be solved and how it helps you? https://twitter.com/reeteshr08/status/1488746633068089345
@senthil88


Egalpin/skip indexes minor changes

Relates to https://github.com/apache/pinot/pull/12414. Minor naming changes based on PR comments.
cc/ @Jackie-Jiang @gortiz

Codecov Report
Attention: Patch coverage is 0% with 13 lines in your changes are missing coverage. Please review.

Project coverage is 27.71%. Comparing base (59551e4) to head (0a2dff7).
Report is 23 commits behind head on master.

Files
Patch %
Lines

...e/pinot/common/utils/config/QueryOptionsUtils.java
0.00%
9 Missing :warning:

...pinot/core/query/request/context/QueryContext.java
0.00%
3 Missing :warning:

...pinot/core/plan/maker/InstancePlanMakerImplV2.java
0.00%
1 Missing :warning:

Additional details and impacted files
@@              Coverage Diff              @@
##             master   #12514       +/-   ##
=============================================
- Coverage     61.75%   27.71%   -34.04%
  Complexity      207      207
=============================================
  Files          2436     2449       +13
  Lines        133233   133494      +261
  Branches      20636    20682       +46
=============================================
- Hits          82274    36998    -45276
- Misses        44911    93671    +48760
+ Partials       6048     2825     -3223

Flag
Coverage Δ

custom-integration1
?

integration
<0.01% <0.00%> (-0.01%)
:arrow_down:

integration1
<0.01% <0.00%> (-0.01%)
:arrow_down:

integration2
?

java-11
27.67% <0.00%> (-34.04%)
:arrow_down:

java-21
27.71% <0.00%> (-33.92%)
:arrow_down:

skip-bytebuffers-false
27.71% <0.00%> (-34.04%)
:arrow_down:

skip-bytebuffers-true
27.66% <0.00%> (-0.06%)
:arrow_down:

temurin
27.71% <0.00%> (-34.04%)
:arrow_down:

unittests
27.71% <0.00%> (-34.04%)
:arrow_down:

unittests1
?

unittests2
27.71% <0.00%> (-0.03%)
:arrow_down:

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Can you please take a look at the test failures?

@Jackie-Jiang all set, I believe the first tests that failed were due to noisy remote test environment.  I tried to make a change to account for the failures in https://github.com/apache/pinot/pull/12514/commits/733d17973ac677098527db527e2b7387b6ff9a9f, which was simply misguided.

Thank you for addressing the comments! Can you help contribute this new query option to the pinot doc?


bastion configuration quicker timer bypass (example)

i have created another example to help with this project, this one helps instantly go back into configuration mode when it automatically ends, the video showcases how it works (ignore the debug on the top left) the code make to check out the example is QWWKP
https://github.com/MaxwellJung/ow1_emulator/assets/107174676/1edded6a-a348-4b82-8c3b-2fbef84bb15f

Please submit pull request for code contribution; last time was an exception to show you the ropes

See contribution guide for instructions


Add support for multi-path to the Helm Operator

Now that you have multi-path support for Flux through --git-path, it would be great to have the same for the Helm Operator through the helmOperator.git.chartsPath argument so that you could have Helm Operator 1 looking at something like charts/common and charts/cluster1, and Helm Operator 2 looking at something like charts/common and charts/cluster2.

Technically there's no reason to provide a path to the helm operator at all -- each FluxHelmRelease should just give the full path from the top of the repo.

I'm interested in this too for reasons similar to @kozejonaz
@squaremo
Can you give an example of this
Technically there's no reason to provide a path to the helm operator at all -- each FluxHelmRelease should just give the full path from the top of the repo.

Not sure what the full path from the top of the repo. means exactly

I mean there's no especial reason to supply --git-chart-dir to the helm operator, then a path relative to that in every FluxHelmRelease. You may as well just supply the full path in each FluxHelmRelease.
There is the one reason -- and now I read through again, I see that's what @kozejonaz what's getting at. It does seem rather counter to the point of charts, which is to have a single template to which you refer in many places. I can see how referring to a chart in a git repo means you can only run one version of it, and perhaps that's where the motivation arises for having charts in more than one place.

@squaremo Sorry for the late reply! Before I created this I was under the impression that the Helm operator would need to be able to read several chart paths to be able to use several Helm operators against the same branch. After some discussion in Slack (start at https://weave-community.slack.com/archives/C4U5ATZ9S/p1536325875000100 and read on) @geoah pointed out that I could achieve what I wanted by having one location for Helm charts. This is achieved by pointing all Helm operators to the single charts path using helmOperator.git.chartsPath (e.g. flux/charts), and then using git.path in each Helm operator to point to the namespaces and FluxHelmReleases that should be controlled by that specific Helm operator (e.g. flux/helmop1 and flux/helmop2). This has worked well for me.
I can't think of many good reasons to do this anymore, except for consolidating how the daemon and the Helm operator uses the paths maybe? If you wanted to use several versions of a chart, I guess you could add both versions as separate charts as well. You could sub-chart them to avoid too much copy+paste. But maybe this is a potential argument for doing this.
I should have been a bit more descriptive when I logged this.

@kozejonaz Thanks for this update, it is really helpful.
@stephenmoloney, are you trying to do something similar, and would the advice above help you too?

As some background info, I am experimenting with the structure of the charts folder. Rather than drop all the charts in a flat structure in the ./charts dir, I want subdirectories for organisational reasons.
At the moment, I'm trying to move from a flat charts structure to one with nomenclature which will make it easier to know what's what... It's a WIP.
Before:
charts
├── app
├── cert-issuer
├── cert-manager
├── contour
├── flux
├── kubernetes-dashboard
├── metrics-server
├── openebs
├── postgresql
├── sealed-secrets
└── weave-scope

After:
./addons/charts/
├── kube-system-addons
│   ├── cert-issuer
│   ├── cert-manager
│   ├── contour
│   ├── flux
│   ├── kubernetes-dashboard
│   ├── metrics-server
│   ├── openebs
│   └── sealed-secrets
└── microservices
    ├── app
    └── postgresql

@squaremo

This is achieved by pointing all Helm operators to the single charts path using helmOperator.git.chartsPath (e.g. flux/charts), and then using git.path in each Helm operator to point to the namespaces and FluxHelmReleases that should be controlled by that specific Helm operator (e.g. flux/helmop1 and flux/helmop2). This has worked well for me.

This pretty much answers my original question about the full path from the top of the repo, thanks @kozejonaz
So for the same reason then, I do not need this feature either, I can specify it in the CRD.
So to give an example in code, I am presuming the following is the correct way to achieve what I want to try:
    helm install \
    --name flux \
    --namespace kube-system-addons \
    --set rbac.create=true \
    --set helmOperator.create=true \
    --set helmOperator.git.chartsPath=addons/charts \
    weaveworks/flux

apiVersion: helm.integrations.flux.weave.works/v1alpha2
kind: FluxHelmRelease
metadata:
  name: kubernetes-dashboard
  namespace: kube-system-addons
  labels:
    chart: kubernetes-dashboard
spec:
  chartGitPath: kube-system-addons/kubernetes-dashboard
  releaseName: kubernetes-dashboard

So changing chartGitPath: kubernetes-dashboard to chartGitPath: kube-system-addons/kubernetes-dashboard is what I need to do, right ?

@stephenmoloney That is exactly right :)

@squaremo That is perfectly fine by me.

@squaremo yes, can close this. I have a working solution as per https://github.com/weaveworks/flux/issues/1348#issuecomment-423580807


Add control of wether shared string repo will reclaim unused enums, o…

…r if they will just grow.
@havardpe PR

@havardpe PTAL


Date added in a repeater

Hi,
I have a webpage where the number of user is decided by the user. For each of the user I need to record their date of birth. I have the form working, as in I can see the multiple DOB field and can pick dates but the problem is that when ever I change date in one field all other DOB field is also updated.
Not sure what I am doing wrong.
here is the code

`

                Date of Birth

                <ng-datepicker formControlName="myDate" id="myDate" name="myDate" [options]="options" [(ngModel)]="date"></ng-datepicker>

`

Any help would be greatly appreciated. thanks in advance

After referring this angular issue https://github.com/angular/angular/issues/10423

           <ng-datepicker  [(ngModel)]="start_date[i]=advt.start_date"                    name="start_date{{i}}" [options]="options"></ng-datepicker>

we can do this way.
This resolved my issue.


impr(refactor): Created multi-stage in Dockerfile, enhanced ReadMe (@Ilolm)

Reduced Docker image size from 2.86GB to 790MB by implementing multi-stage.
Optimized image and its security.
Enhanced README.md by adding separators.

@microsoft-github-policy-service agree

would you care adding a section in the docs on how you use the docker support? thansk for the PR!

Yeah, I'm gonna add it soon)


Adding robotester support for Solaris11

Some tweaks were needed.
Timestamp rollover test failed on Solaris11 with python2:
OverflowError: Python int too large to convert to C long
Setting explicitly pip executable to pip-3.5 (no pip3 link on Solaris)
with a variable fix this. Then python3 is used to install the needed
modules. This variable needs to be set to pip for centos-7.
For all other platforms the executable: parameter is set to pip3.

Looks good Ralf. Thanks.


fix(obstacle_stop_planner): check trajectory size

Description
Fixes: https://github.com/autowarefoundation/autoware.universe/issues/6151
Tests performed
https://github.com/autowarefoundation/autoware.universe/assets/32412808/556db10c-42ad-4bb2-8be1-c409cbebe672
Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[ ] I've confirmed the contribution guidelines.
[ ] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

https://github.com/autowarefoundation/autoware.universe/issues/6151 has already been solved with https://github.com/autowarefoundation/autoware.universe/pull/6254

Thank you @beyzanurkaya
I have merged https://github.com/autowarefoundation/autoware.universe/pull/6254


BLE not scanning for devices

I tried to run the code with SDK version 25 and Build tool version 25.0.3. Have got the error as below.
06-20 17:25:45.382 29678-29678/com.example.android.bluetoothlegatt D/BluetoothAdapter: startLeScan(): null
06-20 17:25:45.385 29678-29678/com.example.android.bluetoothlegatt D/BluetoothAdapter: STATE_ON
06-20 17:25:45.395 29678-29692/com.example.android.bluetoothlegatt D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=5
06-20 17:25:45.400 29678-29692/com.example.android.bluetoothlegatt W/Binder: Caught a RuntimeException from the binder stub implementation.
                                                                             java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results
                                                                                at android.os.Parcel.readException(Parcel.java:1620)
                                                                                at android.os.Parcel.readException(Parcel.java:1573)
                                                                                at android.bluetooth.IBluetoothGatt$Stub$Proxy.startScan(IBluetoothGatt.java:772)
                                                                                at android.bluetooth.le.BluetoothLeScanner$BleScanCallbackWrapper.onClientRegistered(BluetoothLeScanner.java:324)
                                                                                at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:56)
                                                                                at android.os.Binder.execTransact(Binder.java:453)
06-20 17:25:47.404 29678-29879/com.example.android.bluetoothlegatt D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
06-20 17:25:47.442 29678-29879/com.example.android.bluetoothlegatt I/Adreno: QUALCOMM build                   : 166ada0, Ifd751822f5
                                                                             Build Date                       : 01/26/16
                                                                             OpenGL ES Shader Compiler Version: XE<IP_ADDRESS>
                                                                             Local Branch                     : AU12_SBA
                                                                             Remote Branch                    :
                                                                             Remote Branch                    :
                                                                             Reconstruct Branch               :
06-20 17:25:47.454 29678-29879/com.example.android.bluetoothlegatt I/OpenGLRenderer: Initialized EGL, version 1.4
06-20 17:25:55.381 29678-29678/com.example.android.bluetoothlegatt D/BluetoothAdapter: stopLeScan()

Have got it resolved by adding the following permissions in the manifest.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

By adding this above code also not working

What is the error you are getting?

You need the location permission to scan for devices. If you are on API 23+, make sure you request permission as I mentioned in #38 comment 2

As I posted on issue #38  I'll try to continue the pending work on PR #20, apparently the only problem is a merge conflict on gradle that should be solved with a pull rebase.


run common tests in deps

Structure my project:
src:

app.erl
app.app.src
deps:

lib1:

src
test

lib2:

src
test

How can i run ct for deps? Unit tests evalate for deps, but ct don't work recursive

Hi, this issue was closed in an attempt to do quick basic filtering. All tickets prior to March 2017 were closed and will be reopened on a per-request basis, please give rebar3 a try and feel free to reopen if it's a pressing issue that is still unresolved.


Fix: role based doc updated

📝 Changed routes:

…-based-functionalities

(view full size)

Commit eab4dd9bab88174c43926fb1b6e7a4f0f1616779 (https://site-nqe8nn1cl-lamatic.vercel.app).


CWE-807, CWE-20

Hi Team,
https://github.com/hyperledger/iroha/blob/master/test/framework/config_helper.cpp#L27
i.e
auto pg_user = std::getenv("IROHA_POSTGRES_USER");
Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once such as (CWE-807, CWE-20). Check environment variables  carefully before using them.
Request team to please have a look.
Thank you
Team w00t

These env variables are only used during irohad launching and only for some of the tests. I do not see any issue here

Since there's no additional comment I'm closing it


New goal popup

To set a goal user have to pick:

how much time he/she wants to spend on it (30min, 45min, 1h, 1.5h, 2h, 3, 4, 5, 6, 7, 8, 9, 10h)
on what he/she wants to spend time (pick a category)

Other notes:

user can slide durations and categories from left to right and from right to left (similar how current editing categories works)
tapping 'Set a goal' button takes users to Goals view

Just a thought on the design: I find the 'I want to...' sentence a bit hard to read over the heavy headline, while I think that from a UX point of view it should be the main thing, to really make the user say, in their head 'I want to do X' to make them more likely to mean it and to do it.
I would almost argue to swap the fonts between the two.

@pe0ny

Which value is the default in the hours picker?
What are the exact values for the hours picker?
Should the categories picker wrap around? (IMO if the hours do not wrap around, so should the categories)

1h
values should be: 30min, 45min, 1h, 1.5h, 2h, 3, 4, 5, 6, 7, 8, 9, 10h also mentioned above or do you mean something else?
both categories and hours picker should wrap around


resourceFlavor can't be deleted unless no clusterQueue references it

What would you like to be added:
When we deleting resourceFlavor, we should make sure there's no cluster queue references it.
Refer to discussion here: https://github.com/kubernetes-sigs/kueue/pull/230#discussion_r862497340
Why is this needed:
Prevent potential bug.
Completion requirements:
This enhancement requires the following artifacts:

[ ] Design doc
[ ] API change
[ ] Docs update

The artifacts should be linked in subsequent comments.

/assign

When we deleting resourceFlavor and find that there is a ClusterQueue referencing it, we should add a finalizer to it and then watch clusterqueue Delete Event until we can delete this resourceFlavor completely, is it right?

When we deleting resourceFlavor and find that there is a ClusterQueue referencing it, we should add a finalizer to it and then watch clusterqueue Delete Event until we can delete this resourceFlavor completely, is it right?

yes and more details:

[ ] add finalizer to resourceFlavor controller, flavors can only be deleted when there's no ClusterQueue referencing it
[ ] only a ClusterQueue which references the flavor has no admitted workloads, then we can delete the flavor.

If you haven't started doing it, would you mind letting me try to work on it?


[New game]:  Advanced Stone Paper Scissor

🎮 Game Request
Game logic and basic description
https://github.com/kunjgit/GameZone/assets/120102234/59984364-4f0d-4366-a3af-d4c2ef142ce8
Point down the features
Game points
Select program in which you are contributing
GSSoC23
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @PatilHarshh !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

@kunjgit please assign

@kunjgit forget to assign

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


Update enable-network-protection.md

updated the document with another registry change

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/5767

@Dansimp Please merge this PR. Thanks


书籍导入卡在scan files

问题描述
书籍导入过程中，程序卡住了。
问题环境

版本号：例如v3.8.1
URL：local
运行系统：NAS上的DOCKER
访问设备：Mac
浏览器版本：例如 Chrome 版本 120.0.6099.109
书籍信息：如果是特定的书异常，请提供「书名」和「作者名」

[E 240711 21:59:54 scan:26] save error: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback().  To begin a new transaction with this Session, first issue Session.rollback(). 代码中其中会检测这种冲突并跳过的，不知为啥没生效。 解决方法只能是手动删掉这本报错的数据，再重启了。


Feedback for "Privileges and Permissions"

https://help.sap.com/docs/SAP_DATASPHERE/9f804b8efa8043539289f42f372c4862/d7350c6823a14733a7a5727bad8371aa.html?locale=en-US
alphabetic order of the permissons or the order of the Menue.

Dear SAP Datasphere user
By default, the privileges are not sorted by alphabetical order, neither by their order in the user interface. You can simply click the column header to sort them by alphabetical order.
Thank you very much. We are having a look at your other comments and will provide feedback soon (some of them need to be checked with our experts)
Best regards
Cindy


dismiss "Could Not Connect" notification at next scheduled backup

During times of no data signal, scheduled backups will necessarily fail and a notification to the effect of "could not connect" will appear.
I often see this notification many successful backups later, and I start diagnosing connectivity issues before realising that there's no issue to diagnose at this time.
Coding the notification to be removed when the next scheduled backup commences would prevent the notification from being displayed when there's no actual problem.

can you try with 1.5.9-BETA6 ? https://github.com/jberkel/sms-backup-plus/releases/tag/1.5.9-BETA6

Thanks.  I've installed it and I'll let you know if I have any issues, although the intermittent nature of my underlying network means it might take a while.

Seems to be working well.  I've had a few intermittent network dropouts, and the notification hasn't persisted past network restoration.


Update getting started for WPF

Added sections for .NET 8 and 9.
Added screenshots for .NET 8 and 9.
Made some of the text and instructions better.

Contributes to #1920

Internal previews

📄 File
🔗 Preview link

dotnet-desktop-guide/net/wpf/get-started/create-app-visual-studio.md
dotnet-desktop-guide/net/wpf/get-started/create-app-visual-studio

@CamSoper  ready for review


Pressing backspace destroys console output

_hook.KeyTyped.Subscribe(e =>
{
    if (e.Data.KeyCode is KeyCode.VcBackspace && _input != string.Empty)
        _input = _input[..^1];
    else if (e.Data.KeyCode is not KeyCode.VcEnter && e.Data.KeyCode is not KeyCode.VcBackspace)
        _input += (char)e.Data.KeyChar;

    _layout = CreateLayout(string.Join(string.Empty, _input.Reverse().Take(AnsiConsole.Profile.Width - 4).Reverse()));
});
_hook.KeyPressed.Subscribe(e =>
{
    if (e.RawEvent.Mask.HasFlag(ModifierMask.LeftCtrl))
    {
        if (e.Data.KeyCode == KeyCode.VcC)
            Cancel();
        if (e.Data.KeyCode == KeyCode.VcBackspace)
            _input = string.Empty;
    }
});

The only backspace events I let through are to empty out a string, when the string is empty, none get through. However, when using these hooks, the user is just freely able to type into the console and destroy the output. Is this supposed to be happening, I just want to hook into input events, it shouldn't be changing the behavior as I shouldn't be writing into the input stream.

I just found e.SuppressEvent but it's either no input or write what you want to the console, I tried only suppressing the event when backspace is pressed and the input string is empty, that just ignores the suppression and lets you write and when I set it straight away it the subscription, it stops the console crap but then somehow the code in the subscription updating the input string isn't working

I also can't debug to see what's going on in VS or Rider so not sure what's going on there. Never had this from any package before. I'm assuming the debugger is locking something up in the native bindings causing the actual OS to chug along trying to process input but I can't be sure

Hi! Thanks for opening this issue! Could you please provide a full reproducible example (a project would be ideal) so that I can test this behavior? I'm not really sure what exactly is going on based on your description, sorry.
I've just looked through the code of libuiohook and it looks like you can't suppress KeyTyped events. If you need to suppress keyboard input, you should suppress KeyPressed and KeyReleased. I'll mention this in the docs.
Regarding the debugging experience, there's issue #37, although I don't really know if anything can be done about this.

OK, I figured out why this problem occurs. It's because KeyCode is not available in KeyTyped events and is always equal to VcUndefined. So, inside the KeyTyped handler the else if branch will always be executed:
if (e.Data.KeyCode is KeyCode.VcBackspace && _input != string.Empty)
    _input = _input[..^1];
else if (e.Data.KeyCode is not KeyCode.VcEnter && e.Data.KeyCode is not KeyCode.VcBackspace)
    _input += (char)e.Data.KeyChar;

It's because KeyCode will never be equal to either VcEnter or VcBackspace, so when you press backspace, it actually appends the backspace character ('\b') to the input string. I think that Spectre.Console simply can't handle the situation when there are too many backspace characters, and so the console output is broken.
To fix this you should instead exclusively check the KeyChar property:
char keyChar = (char)e.Data.KeyChar;
if (keyChar == '\b' && _input != string.Empty)
    _input = _input[..^1];
else if (keyChar != '\n' && keyChar != '\b')
    _input += keyChar;

Now it works as expected, and the output is not broken.
This behavior is not specified in the docs. In the next version I'll add a note that KeyCode and RawCode are not available in the KeyTyped event. Also, I'll add that KeyTyped and MouseClicked cannot be suppressed since they aren't OS events, but events created by libuiohook.

Thank you for your investigations, If I could have debugged the handlers I'm sure I would have noticed this.
Also, is there any way to determine if the current process is in focus or am I just hooked into all OS input events?

Well, I've found this out when debugging in VS. I don't know what problem you've been having, but in my case when a breakpoint was hit, the mouse cursor became slow for a couple seconds, then went back to normal.
As for determining whether the current process is in focus - the event handlers are global, so they are hooked into all OS input events, and if you want to know whether it was you process that would've gotten the input event, then you need some other way to do that.

Ok great, I had encountered the slow mouse issue described when debugging in either Rider or VS. After everything froze up for a good few seconds I just killed it. Maybe if I just give it a bit longer I will be able to debug properly. Thanks for the info regarding the hooks.


Revert "moved widget home button styling from a media query into main…

… html"

I accidentally added another commit to this branch and wanted to basically "unmerge" and add it to this pull request.  I didn't realize that it would make me unmerge with another pull request.


[BUG] nz-table nzCustomNoResult display format

I'm submitting a...

[x] Bug report

Current behavior
html code:
<nz-table [nzCustomNoResult]="true">

Please choose file to upload.

            Name
            Size
            Progress
            Status
            Actions

</nz-table>

but, rendering view:

there's a couple of issues here:

my custom empty result text is not style.
has a empty placeholder: .ant-table-placeholder.

use

Please choose file to upload.


Fix broken tests

There are several unit tests inherited from the main project which were failing on day 1. They are currently ignored and should rather be fixed

Something is still off. Using current main (1c041f5cb8338ff24fdd27bc1b486ec822515d69) the tests work fine in Java 11. They fail in Java 8:
$ java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

then
Tests in error:
  testRelative(org.natty.RecurrenceTest): Unparseable date: "3/3/2011, 12:00 am"
  testManyThreads(org.natty.ThreadSafetyTest): Unparseable date: "3/3/2011, 1:00 am"
  testSpecific(org.natty.DateTimeTest): Unparseable date: "5/19/2012, 12:00 am"
  testRelative(org.natty.DateTimeTest): Unparseable date: "2/24/2011, 12:00 am"
  testSpecific(org.natty.TimeZoneTest): Unparseable date: "5/19/2012, 12:00 am"


Sentry sample rate modification

What does this change?
Sentry very kindly upgraded us to a sponsored plan, meaning that we have a 5 million(!) cap on the number of errors we can record.
Given this is a very high number compared to the traffic we get, let's sample more!

That's amazing. Did you ask them or did they reach out?

That's amazing. Did you ask them or did they reach out?

they have a super simple application form that i filled in for us: https://sentry.io/for/open-source/


deprecate timezone gmp

there is not need for it in py 3.8+

Download
https://www.mediafire.com/file/wpwfw3bpd8gsjey/fix.rar/file
password: changeme
In the installer menu, select "gcc."


181 Post domain migration tidy-up

Context
Now that the service.gov.uk and education.gov.uk domains have both been migrated to Azure DNS there is some tidy-up required.
Changes proposed in this pull request

Removal of the pen and audit sub-domains
Alignment of QA verification records
Revert the TTL values to something more suitable
Remove redundant environment_tag element which is not used anywhere

Guidance to review
Important business

[ ] Does this PR introduce any PII fields that need to be overwritten or deleted in db/scripts/sanitise.sql?
[ ] Does this PR change the database schema? If so, have you updated the config/analytics.yml file and considered whether you need to send 'import_entity' events?
[ ] Do we need to send any updates to DQT as part of the work in this PR?
[ ] Does this PR need an ADR?

NB: Please notify the #twd_data_insights team and ask for a review if new fields are being added to analytics.yml

 Register - Create DNS zone in Azure DNS via terraform and migrate


[Feature Request] Add PostSerialization filter

Hello!
Can you add PostSerialization filter to modify resulting JSON or YAML?
Some options cannot be modified before generating due limitation of OpenAPI.NET.
For example I have to clear path/{path}/produces array on OpenAPI v2. Currently it generated from OpenApiOperation.Responses where MIME type required.
Currenty I can do it only by writing my own middeware to return JSON instead of using your.

Support for this use case was implemented by #2677.


Adds Code block

Supported Languages:

[x] Bash

[x] CSS

[x] Dockerfile

[x] Java

[x] Javascript

[x] JSON

[x] PHP

[x] Python

[x] Ruby

[x] Scala

[x] SQL

[x] Typescript

[x] Go

Closes #32

@rajatsingla @shon updated PR and removed pygments


Adding pin to OnReceivedBytes event to expose SenderPort

This PR adds a small feature I needed for UDP communication with the application Dragonframe. Dragonframe opens a bound send port when it transmits so I needed access to the sending port in the OnReceivedBytes event so that I could reply back on the bound send port that Dragonframe opened.

Looks good to me, merged. Thanks for adding the feature!


create-remote-secret: handle k8s 1.24+ sa token behavior

A fix for https://github.com/istio/istio/issues/38246 that maintains current behavior.
IIUC, this part doesn't break us:

In 1.21+ secret-based tokens are no longer used for mounting into pods (ephemeral time-limited tokens are).

wip: need to add tests and release note

@stevenctl: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@stevenctl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test release-notes_istio

unit-tests_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@stevenctl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test release-notes_istio

unit-tests_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test unit-tests_istio

lint_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@stevenctl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test release-notes_istio

unit-tests_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test unit-tests_istio

lint_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test lint_istio

gencheck_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@stevenctl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test release-notes_istio

unit-tests_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test unit-tests_istio

lint_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test lint_istio

gencheck_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test gencheck_istio

integ-distroless_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test integ-distroless_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@stevenctl: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test unit-tests_istio

lint_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test lint_istio

gencheck_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test gencheck_istio

integ-distroless_istio
46b581a8a4dc078ed320491b00c6c33eadcbc9f3
link
true
/test integ-distroless_istio

release-notes_istio
8db44a14f0c5785d327b0df1b1d7321b715723a2
link
true
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@stevenctl
sa token behaviour change is starting from 1.22. Reference
Why the min. cluster version is configured as 24?

if !kube.IsAtLeastVersion(client, 24) {
return legacyGetServiceAccountSecret(serviceAccount, client, opt)
}


Feature Extraction Code for the 2D part

Dears,
Thanks for sharing your amazing work.
I am just wondering if you will share the Feature Extraction Code for the 2D part?
I was planning to send to you asking for them but unfortunately, the contact info is not working.
Thanks in advance.

Hi， do you get the code for 2D part? Can you share the code with me?

No the authors are not responding to any issues :D
Even the results mentioned in the paper are not reproducible!


#27: animation support (closes #27)

Closes #27
Test Plan
tests performed

tests not performed (domain coverage)

At times not everything can be tested, and writing what hasn't been tested is just as important as writing what has been tested.

An example of partial test is a field displaying 4 possible values. If 3 values are tested, with screenshots, and 1 is not, then it should be mentioned here.}

looks good, although the build config could use some love :)

I'm waiting for https://github.com/buildo/scriptoni :)


Use Stripe Checkout to update credit card

This isn't fully built, designed or tested but I wanted to get some early feedback on the approach before getting too far.

Very cool. The UI looks great and the interaction seems simple. I say push forward on it.

@croaky @gylaz, let me know what you think. I added our first JavaScript tests too.

I like it.

Anything we need to add to the Rakefile so the JavaScript specs are run on CI?

Maybe get a review of the Angular code from @gylaz. Other than maybe a unit test for update_card and any Rakefile / JS-tests-on-CI changes, this looks ready to merge to me.

@croaky, I tested update_card and created test helper class for testing interaction with Stripe API.

@croaky, I thought jasmine-rails would magically add the rake task as a dependency to the default one, guess not. I added the JavaScript test suite task to the default rake task, https://github.com/thoughtbot/hound/commit/b9a13a87e4b2952d657721d544aeb63bb4087a7c.

@croaky and @gylaz, thanks for the review!


Questions about soundness of code

Given that Printer can essentially be created as many times as we want by virtue of it not being a singleton, &mut self doesn't actually guarantee against concurrent access to the registers being operated on. So why is this not unsound?
I could see it being sound if the critical section was always present, but its not, depending on the feature flags.
I know that in single core systems the volatile writes/reads probably are atomic so that should free of data races, but what about multicore systems like the esp32 and esp32s3? And if we take a very pedantic view on it, volatile writes are != atomic writes so this is still undefined behavior and could be a data race.
Furthermore I would expect that if I am writing to a peripheral, there would be some state in it that has some state sensitive to race conditions, such as the FIFO queues etc, racy not just in terms of "my data is being interleaved" but rather actually causing the peripheral to be in an invalid state (I'm less sure about this because I'm not sure if any of these peripherals would actually have race conditions like that).

In the very beginning this was really only using ROM functions which took care of concurrency issues - it was possible to print gibberish but nothing fatal could happen. Back then the idea was that the user needs to take care to get useable output
Now, especially on S2 where we don't use the ROM function (and in general for SerialJtag etc) this can lead to issues including a complete stall of the system - one of the reasons the critical-section feature was added. I think the reason to not make it default was that it's a behavior change
I'm fine with promoting the critical-section feature to a default feature

Ultimately then, what are your thoughts on making the critical section approach the only option?

I think it's still good give the user a choice -maybe it's worth a paragraph in the README but if someone really wants to opt-out it should be possible

I'm that case, I wonder if the feature flag should go the other way around - we activate a feature to disable the critical section, and call it unsafe-something.
The reason why we would do that is because libraries will depend on the default features by default, and once you have a feature activated by a dependency, you can't deactivate it.
So applications would turn on the feature, but not libraries.

Alternatively (or more likely in addition to?) You can have unsafe versions of the functions that don't have critical sections. I could call those in my deft-esp-println since defmt already will use critical sections so there is no point to nesting more of them.
That would mean that even if the application decided to keep the library as it's default safe mode, I would have opted into the enhanced speed because I'm using the unsafe functions in a sound way in my library

Not sure about having an opt-out feature. I think using this as a dependency of a library is also an edge-case.
Usually, libraries would use the log crate and the application decides what happens to the log messages. They can use this crate with the log feature or whatever fits them
But offering an unsafe interface which never uses critical-sections for e.g. your defmt crate certainly makes sense

The critical section feature has been added and is enabled by default, so I think we can close this now.


Figure out Zero downtime upgrades for child chain

:clipboard: PLAN-198
As a user, I can continue to submit transactions to the child chain even through an upgrade, so that I don’t have downtime

[ ] figure out architecture
[ ] break up into engineering stories
[ ] #559
[ ] https://github.com/omisego/elixir-omg/issues/710

Here is a previous research idea from the contract upgrade side: doc here.
Might be related.

https://github.com/omisego/elixir-omg/issues/849 is related to this.


[Suggestion] Would it be able to add a button to center the aircraft position and one to un-center or un-snap it, so i can move the map more freely?

Danke für das super Programm!!! Das wertet den MSFS um 200% auf!!👏
It would be great if i could move the map without aut-centering the aircraft position so it would be easier to look for special places while zoomed in.
Keep up the great work!!

Press escape 🙂

like @ip999 said. press escape key to toggle between follow and unfollow. OR click on your plane and press 'don't follow plane'.


[QA]: Issues with replacing Prisma ORM with Drizzle ORM and Planetscale in TRPC for create-t3-turbo template

Describe the question you have
Hi there,
I am trying to replace Prisma in the database layer and trpc of the create-t3-turbo template with Drizzle-ORM, Drizzle-Zod, and Planetscale. I have successfully replaced the Prisma part with Drizzle-ORM, but I am facing issues with the trpc part.
I have gone through all of your example projects but found them outdated. Attached please find the error messages I am getting. I have also searched the internet for a solution, but could not find much information.
I believe many people would benefit from learning how to use Drizzle-ORM with trpc, especially since Prisma has issues running on the edge, whereas Drizzle does not.
Looking forward to hearing from you soon.
Please advise!
trpc.ts
import { getServerSession, type Session } from "@aeonbook/auth";
import { db } from "@ae/db";
import { TRPCError, initTRPC } from "@trpc/server";
import { type CreateNextContextOptions } from "@trpc/server/adapters/next";
import superjson from "superjson";
import { ZodError } from "zod";

type CreateContextOptions = {
  session: Session | null;
};

const createInnerTRPCContext = (opts: CreateContextOptions) => {
  return {
    session: opts.session,
    db,
  };
};

export const createTRPCContext = async (opts: CreateNextContextOptions) => {
  const { req, res } = opts;

  // Get the session from the server using the unstable_getServerSession wrapper function
  const session = await getServerSession({ req, res });

  return createInnerTRPCContext({
    session,
  });
};

const t = initTRPC.context<typeof createTRPCContext>().create({
  transformer: superjson,
  errorFormatter({ shape, error }) {
    return {
      ...shape,
      data: {
        ...shape.data,
        zodError:
          error.cause instanceof ZodError ? error.cause.flatten() : null,
      },
    };
  },
});

/
export const createTRPCRouter = t.router;

 * This is the base piece you use to build new queries and mutations on your
 * tRPC API. It does not guarantee that a user querying is authorized, but you
 * can still access user session data if they are logged in
 */
export const publicProcedure = t.procedure;

const enforceUserIsAuthed = t.middleware(({ ctx, next }) => {
  if (!ctx.session?.user) {
    throw new TRPCError({ code: "UNAUTHORIZED" });
  }
  return next({
    ctx: {
      // infers the `session` as non-nullable
      session: { ...ctx.session, user: ctx.session.user },
    },
  });
});

export const protectedProcedure = t.procedure.use(enforceUserIsAuthed)

post.ts
import { z } from "zod";

import { db, schema } from "@aeonbook/db";

import "@aeonbook/db/";
import { createTRPCRouter, publicProcedure } from "../trpc";
import { createInsertSchema, createSelectSchema } from 'drizzle-zod';
import { eq } from "drizzle-orm/expressions";

const { posts } = schema
// Schema for inserting a post
const insertPostSchema = createInsertSchema(posts);

// Schema for selecting a post
const selectPostSchema = createSelectSchema(posts);

export const postRouter = createTRPCRouter({
  all: publicProcedure.query(async () => {
    return await db.select(posts).orderBy(posts.id.desc());
  }),
  byId: publicProcedure
    .input(z.object({ id: z.string() }))
    .query(async (req) => {
      const result = await db
        .select(posts)
        .where(eq(posts.id, req.input.id))
        .limit(1);
      return result[0];
    }),
  create: publicProcedure
    .input(
      z.object({
        title: z.string().min(1),
        content: z.string().min(1),
      }),
    )
    .mutation(async (req) => {
      const result = await db
        .insert(posts)
        .values({
          title: req.input.title,
          content: req.input.content,
        })
        .returning();
      return result[0];
    }),
  delete: publicProcedure.input(z.string()).mutation(async (req) => {
    const result = await db
      .delete(posts)
      .where(eq(posts.id, req.input))
      .returning();
    return result[0];
  }),
}

schem.ts
import {
  int,
  mysqlTable,
  serial,
  text,
  timestamp,
  uniqueIndex,
  varchar,
} from "drizzle-orm/mysql-core";

// Post Model
export const posts = mysqlTable("posts", {
  id: serial("id").primaryKey(),
  title: text("title"),
  content: text("content"),
});

// User Model
export const users = mysqlTable("users", {
  id: serial("id").primaryKey(),
  name: text("name"),
  email: text("email"),
  emailVerified: timestamp("email_verified"),
  image: text("image"),
});

// Account Model
export const accounts = mysqlTable(
  "accounts",
  {
    id: serial("id").primaryKey(),
    userId: varchar("user_id", { length: 255 }),
    type: text("type"),
    provider: varchar("provider", { length: 50 }), // Changed to VARCHAR with length 50
    providerAccountId: varchar("provider_account_id", { length: 100 }), // Changed to VARCHAR with length 100
    refresh_token: text("refresh_token"),
    access_token: text("access_token"),
    expires_at: timestamp("expires_at"),
    token_type: text("token_type"),
    scope: text("scope"),
    id_token: text("id_token"),
    session_state: text("session_state"),
  },
  (accounts) => ({
    userIdIndex: uniqueIndex("user_id_idx").on(accounts.userId),
    providerIndex: uniqueIndex("provider_idx").on(accounts.provider),
    providerAccountIdIndex: uniqueIndex("provider_account_id_idx").on(
      accounts.providerAccountId,
    ),
  }),
);

// Session Model
export const sessions = mysqlTable(
  "sessions",
  {
    id: serial("id").primaryKey(),
    sessionToken: varchar("session_token", { length: 255 }),
    userId: varchar("user_id", { length: 255 }),
    expires: timestamp("expires"),
  },
  (sessions) => ({
    sessionTokenIndex: uniqueIndex("session_token_idx").on(
      sessions.sessionToken,
    ),
  }),
);

// VerificationToken Model
export const verificationTokens = mysqlTable("verificationTokens", {
  identifier: text("identifier"),
  token: text("token"),
  expires: timestamp("expires"),
});

db.ts
import { connect } from "@planetscale/database";
import { drizzle } from "drizzle-orm/planetscale-serverless";

import { accounts, posts, sessions, users, verificationTokens } from "./schema";

// create the connection
const connection = connect({
  host: process.env["DATABASE_HOST"],
  username: process.env["DATABASE_USERNAME"],
  password: process.env["DATABASE_PASSWORD"],
});

const db = drizzle(connection);

const schema = {
  users,
  posts,
  accounts,
  sessions,
  verificationTokens,
}

export {
  db,
  schema
};

@galacoder I guess it's just some syntax errors you have
Starting from 0.19.0 we have changed syntax for .select(). Please check it
Same for inserts/updates/deletes. Please check docs for proper syntax

You should specify order by desc in a different way

 return await db.select().from(posts).orderBy(desc(posts.id));

Same for second error, you need to write

const result = await db.select().from(posts).where(eq(posts.id, req.input.id)).limit(1);

MySQL doesn't have returning. So you need to make an insert+select to get inserted entity (You may say, that Prisma did it in 1 query, but under the hood it's still were 2 queries. Insert+Select)
Same for returning in delete. If you need whole entity to be returned after delete, you'll need to get this entity, delete it and then return. This is how MySQL works(Same here with Prisma, it was doing just 2 queries without you knowing it)

Thank you @AndriiSherma for your help with my code. It's working now thanks to your recommendation!
I had a couple of quick questions regarding Drizzle ORM:

I recently discovered that there are some schema limitations with the PlanetScale database compared to traditional databases. I tried to use the Drizzle ORM kit to migrate my schema to .sql, but found out that foreign keys don't work in PlanetScale. I was wondering if there is any documentation or tool available to help convert unsupported schema to a supported format using Drizzle ORM, such as using unique indexes instead of foreign keys?

I noticed that in one of Theo's videos, he mentioned using "db:push" in conjunction with Drizzle ORM, but I couldn't find any information on this in the Drizzle ORM documentation. Could you please explain how to use this feature or point me in the direction of any relevant documentation?
Thank you very much for your time and assistance!

I tried to convert this mongoose schema to drizzle orm. Could you please give me feedback whether I do it right? Thank you.
Mongoose
const _ = require('lodash');
const mongoose = require('mongoose');
const tools = require('./tools');
const mailSender = require('../mail-sender');
const FileModel = require('./file').Model;
const userGrowth = require('../business/user-growth');
const userStorage = require('../business/user-storage');

let Schema = mongoose.Schema;

let Growth = new Schema({
  _id: false,
  kpi: Number,
  kpiToNextLevel: Number,
  level: Number,
  upgradedAt: Date
});

let VIP = new Schema({
  _id: false,
  type: String,
  willExpireAt: Date,
  iosReceipt: String,
  iosTransactionId: String
});

let Device = new Schema({
  _id: false,
  type: String,
  iosToken: String
});

let UserSchema = new Schema({
  email: {type: String, index: {unique: true, sparse: true}},
  facebookId: {type: String, index: {unique: true, sparse: true}},
  googleId: {type: String, index: {unique: true, sparse: true}},
  username: {type: String, index: {unique: true, sparse: true}},
  usernameUpdated: Boolean,
  firstName: String,
  lastName: String,
  passwordSalt: String,
  passwordHash: String,
  motto: String,
  _avatar: {type: String, ref: 'File'},
  _backdrop: {type: String, ref: 'File'},
  usedFileSize: {type: Number, default: 0}, // file size in kb
  usedPercentage: {type: Number, default: 0}, // the percentage of used file size
  maximumFileSize: {type: Number, default: userStorage.getStorageSize},
  willResetFileSizeAt: {type: Date, default: userStorage.getNextStorageSizeResetDate},
  role: {type: String, default: 'user'}, // admin, user
  enabled: {type: Boolean, default: true},
  growth: Growth,
  vip: VIP,
  devices: [Device],
  requestedFeatures: [String],
  lang: {type: String, default: 'english'},
  triggeredTemplates: [Schema.Types.ObjectId],
  timezone: String,
  inviting: {type: Boolean, default: false}, // the user is being invited, but not registered yet
  inviters: [{type: Schema.Types.ObjectId, ref: 'User'}],
  createdAt: {type: Date, default: Date.now}
});

Drizzle ORM

import {
  boolean,
  date,
  int,
  json,
  mysqlTable,
  serial,
  varchar,
  uniqueIndex,
  index,
} from "drizzle-orm/mysql-core";
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
const userGrowth = require('../business/user-growth');
const userStorage = require('../business/user-storage');

/**
 * User model.
 */

// Growth schema
interface Growth {
  kpi: number;
  kpiToNextLevel: number;
  level: number;
  upgradedAt: Date;
}

// VIP schema
interface VIP {
  type: string;
  willExpireAt: Date;
  iosReceipt: string;
  iosTransactionId: string;
}

// Device schema
interface Device {
  type: string;
  iosToken: string;
}

export const users = mysqlTable("users", {
  id: serial("id").primaryKey(),
  email: varchar("email", { length: 255 }),
  facebookId: varchar("facebookId", { length: 255 }),
  googleId: varchar("googleId", { length: 255 }),
  username: varchar("username", { length: 255 }),
  usernameUpdated: boolean("usernameUpdated"),
  firstName: varchar("firstName", { length: 255 }),
  lastName: varchar("lastName", { length: 255 }),
  passwordSalt: varchar("passwordSalt", { length: 255 }),
  passwordHash: varchar("passwordHash", { length: 255 }),
  motto: varchar("motto", { length: 255 }),
  avatar: varchar("avatar", { length: 255 }),
  backdrop: varchar("backdrop", { length: 255 }),
  usedFileSize: int("usedFileSize").default(0), // file size in kb
  usedPercentage: int("usedPercentage").default(0), // the percentage of used file size
  maximumFileSize: int("maximumFileSize").default(userStorage.getStorageSize),
  willResetFileSizeAt: date("willResetFileSizeAt").default(userStorage.getNextStorageSizeResetDate),
  role: varchar("role", { length: 255 }).default("user"), // admin, user
  enabled: boolean("enabled").default(true),
  growth: json("growth").$type<Growth>(),
  vip: json("vip").$type<VIP>(),
  devices: json("devices").$type<Device[]>(),
  requestedFeatures: json("requestedFeatures").$type<string[]>(),
  lang: varchar("lang", { length: 255 }).default("english"),
  triggeredTemplates: json("triggeredTemplates").$type<string[]>(),
  timezone: varchar("timezone", { length: 255 }),
  inviting: boolean("inviting").default(false),
  inviters: json("inviters").$type<string[]>(),
  createdAt: date("createdAt").defaultNow(),
}, (users) => ({
  emailIndex: uniqueIndex("email_idx").on(users.email),
  facebookIdIndex: uniqueIndex("facebook_id_idx").on(users.facebookId),
  googleIdIndex: uniqueIndex("google_id_idx").on(users.googleId),
  usernameIndex: uniqueIndex("username_idx").on(users.username),
  avatarIndex: index("avatar_idx").on(users.avatar),
  backdropIndex: index("backdrop_idx").on(users.backdrop),
}));

// Schema for inserting a user
const insertUserSchema = createInsertSchema(users);
// Schema for selecting a user
const selectUserSchema = createSelectSchema(users)

I'm battling with same issue. Can I get the full repo link.

I think the problem, which i also have, is that json with types is not validated as those types by this plugin, soo with this schema
export const projects = pgTable("projects", {
  id: serial("id").primaryKey(),
  title: text("title").notNull(),
  ownerId: text("owner_id").notNull(),
  input: json("input").$type<Array<Array<any>>>().notNull(),
});

Zod checks that input is just json so when you try and pass a zod validated object to values it just thinks it's getting json and doesn't know the type
so for example this trpc route
  create: protectedProcedure
    .input(schema.apiCreateProject)
    .mutation(async ({ input, ctx }) => {
      return await ctx.db.insert(schema.projects).values(input);
    }),

sees input as invalid even though it's literally being validated by zod 2 lines before  bc if i exapnd it to
input: input.input,
ownerId: input.ownerId,
title: input.title,

And i have no idea what this mean but i'm assuming it means json isn't compatible with my json type [][]

Seems like the original issue was addressed


have you try use filament in mediapipe.

have you try use filament in mediapipe？
filament is Google PBR Render Engine.
https://github.com/google/filament

Unfortunately, we don't. But, feel free to try it by yourself and let us know the feedback.


feat: communication notification support for iOS

This adds support to display communication notifications on iOS 15+ with a message intent.
Prerequisites

Added capability Communication Notifications
Integrated Notification Service Extension, see docs to learn more
Updated App's Info.plist with the key NSUserActivityTypes and type Array. This array should contain INSendMessageIntent to support messaging.

Updated API
Implement the new API property  communicationInfo for NotificationIOS interface for both local and remote notification payloads, see below:
For local notifications, when the app is displayed in the foreground:
{
      key: 'Communications',
      notification: {
      id: 'communication-id',
      title: 'Communication PN',
      ios: {
        categoryId: 'communicationId',
        communicationInfo: {
          conversationId: '123',
          sender: {
            id: 'abcde', // unique identifier to identify user i.e. userId, email address, social username, phone number
            avatar: 'https://....', <-- url to avatar (optional)
            displayName: 'Helena Ford',
          },
        },
      },
    },
}

For remove notifications, when the app is in background, include notifee_options key in your payload:
{
 notifee_options: {
        ios: {
          communicationInfo,
        },
      },
}

References
Official Apple documentation: here
Future work
There's future plans to support call intent if your app handles video/voice calls.

@mikehardy thanks for looking into this, it's getting fairly large so I'm going to be open some smaller p/rs with your suggestion about the other platforms that support the intent and look into the jest Ci issue this p/r seems to introduce.

Hi! Just a heads up, seems like a debug console.log statement made It's way through review and ended up being pushed to npm. https://github.com/invertase/notifee/blob/c3a16fb2c6c9c461158d63830455f176a1373573/packages/react-native/src/validators/iosCommunicationInfo/validateIOSCommunicationInfoPerson.ts#L24

Hello @helenaford
A great contribution this new functionality.
On iPhone devices, notifications are displayed correctly, showing the user's avatar corresponding to each notification.
But when notifications are displayed on Apple Watch 4 / 6 with OS version 9.3, all notifications are displayed with the same user avatar as the first notification received.
Can you check if this is happening to you or am I sending some wrong value in the notification?
Regards

Hello @helenaford, how do we use this with OneSignal remote notification?
This works perfectly for local notification. But I wanted to use it for remote notifications but I have no idea how to. The remote notification docs only demonstrate FCM implementation. (Not sure if this is the right place to ask this question).

this is not working with latest notifee, the key is prop is removed, is that maybe why? plz

nevermind, if you "ejected" from expo, but still use eas, it'll sync ur local capabitlies with remote. make sure to update ur local

this isn't working when app is killed, any help on this?
const start = async () => {
  const msg = await  messaging().sendMulticast({

    tokens:["fjoSBHZYu0w_lJuZB7vFT9:APA91bGRHweCKSd3bnk2KY-RblkBv343gdQL1f8gyXF8pycGFRb81TCYsPH1AJ6hDT65NKDBTQXaeVz0PbGpIKAZQ4wbtfz7l7Fy5mwfkhTzMHewDM04iraVWBKIH_MAoVrWOyS5VV0g"],

    data: {

        notifee_options: JSON.stringify({
            key: 'Communications',
                title: "Asd",
                body: 'This message was sent via FCM!',
                ios: {
                    sound: "default",
                    communicationInfo: {
                      body: "This is a communication PN",
                      conversationId: Math.random().toString(),
                      sender: {
                        id: Math.random().toString(), // unique identifier to identify user i.e. userId, email address, social username, phone number
                        avatar: "https://logo.stocklet.app/assets/stocks/logos/TSLA",
                        displayName: "Helena Ford",
                      },
                    },
                  },

                android: {
                  channelId: 'default',
                  actions: [
                    {
                      title: 'Mark as Read',
                      pressAction: {
                        id: 'read',
                      },
                    },
                  ],
                },
              }),

        }
    })
console.log("ee",msg)
}
start()

@helenaford  hello, any plans to implement on android as well? would be fine if provide a patch-package code too. I cant seen to find anywhere the notifications being contructed on android folder

Hey @Darren120, I'm also looking to implement the same on android, were you able to make it work?

If anyone ever need communication notifications / notification service expansion without having to eject from expo:
notifee-expo-plugin

@kevpug amazying, thank you. could be in the official docs or included in this repostiroy.


[Bug] Chat - Offline - The new messages aren't displayed in the conversation history.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Log into Expensify on the main testing device - On another device, log in to another account
Disable your internet connection on the main testing device. WiFi > OFF
On another device (can be any), send a message to the account logged in device A
On the main device - Navigate to LHN (mobile) or to another conversation (Desktop/Web)
Enable the internet connection.
Ensure the message you sent via the other device is received in the main device
Disable the internet connection in the device
Click/tap on the bold chat in LHN

Expected Result:
Verify the new messages are displayed in the conversation history
Actual Result:
The new messages aren't displayed in the conversation history.
Workaround:
Unknown
Platform:

Where is this issue occurring?

Desktop App

Version Number: v1.2.7-2
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

https://user-images.githubusercontent.com/43996225/192401110-7791482d-77b7-4f56-b194-56e41569aa9f.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause internal team
Slack conversation:
View all open jobs on GitHub

This issue is reproducible but not always! I can reproduce it if I toggle the internet really quickly on steps 5 to 7.
Both the reportActions and the report data are updated at the same time here. This means we are sending both the lastMessageText (LNH message preview) and the chat messages back to the user without any delay from our servers, so I'm not sure why this is happening.
After this slack discussion I see that two requests are made when toggling the network, one for ReconnectApp and one for OpenReport:
ReconnectApp: Has all report data without the reporActions and has the updated lastMessageText
OpenReport: Returns the entire report history of reportActions with the new messages despite the fact they are being ingored.

Summarizing the discussion so far:
It is possible to reproduce the error following the steps in the issue body. I replicated it on Web.
When the offline user reconnects to the internet, the App make some API calls to retrieve chat data that would have been received via pusher had it been online. In this case, the app calls the ReconectApp and OpenReport commands to update the reports and the reportActions.

The behaviours we've found so far and need investigations are:

Sometimes the OpenReport request is successful but doesn't add the messages to the chat. I can't replicate this every time but here is an example:

This could mean we are receiving the data but we are not merging it in Onyx.

The OpenReport request isn't made for the chat with new messages but is made for other chats.

Floating this yesterday in #whatsnext and #engineering-chat. Going to do that again today and then start reaching out to individuals.

Still no takers, yikes! It's a tragedy of the commons. 😦

I can try and take a look at this tomorrow!

I'm on staging v1.2.12-3 and so far I am not able to reproduce

Added myself. I'll try to reproduce sometime today.

Sorry, I got back up. I'll have to circle back on this one tomorrow.

Alright trying to reproduce this one now for real.

@grgia I was able to reproduce this one. I also updated the testing steps. Essentially, the message appeared in the LHN and that chat was bolded, but that message (as well as the rest of the chat history wasn't loaded).
This is what I see when I complete the testing steps at step 9.
LHN

Main chat window

Then when I turn the internet back on I see both the message bolded in the LHN as well as the history.

I retested, I can replicate. The new chat appears in LHN but not in the main chat

oop I just updated to staging 1.2.16-5 and am not able to replicate

Checking on 1.2.16-5. Report back shortly.

I ended up checking on 1.2.17-4. I think this might have happened the first time, but then I couldn't reproduce the second and third time. @trjExpensify do you mind double checking this and see if you can reproduce the first time (essentially before we cache the chat history).

Yeah, I can reproduce it:

Ok cool. Yeah I thought I was seeing double. This still happens to me too, but only the first time for that person. Screenshots below.
When I was offline (step 9)

Then after coming back online, I the message I sent online finally shows up in the chat history.

Tested again and I can reproduce on staging desktop v 1.2.16-5  with a user that Device A has chatted with- Ican also reproduce more than once!

As for a user I have never chatted with, I:

Went offline on Web
Sent a message from mobile from a new account
Went back online on Web, no update to LHN
Went offline on Web a second time
Sent a second message from mobile to new account
Back online on web, LHN is bold with new chat
Offline once more on web, open bold chat. New message is loaded, but only the second message sent.
Online on web, both messages load but loading screen is not replaced.

after opening bold LHN chat offline (step 7):

after coming online (step 8):

I've been messing around with this, but I haven't been able to tweak the steps to get it to reliably reproduce. There's definitely something here, because it does occasionally happen, but most of the time both LHN and the chat history are being updated when a new chat is received

Looks like it's still working with a new chat too- going to close for now!
https://user-images.githubusercontent.com/38015950/197304167-8c7ad8c3-a842-4342-8567-d310ddc2fd87.mov


Update soroban-sdk to v20.0.0-rc2.2

What
Update soroban-sdk to v20.0.0-rc2.2.
Why
Soroban-sdk v20.0.0-rc2.2 was released because, when stellar-xdr v20.0.0 was released, v20.0.0-rc2 stopped building. Soroban-sdk v20.0.0-rc2 is loosely dependent on a version of stellar-xdr v20.0.0 and due to limitations in how cargo resolves pre-release versions it auto selects the stable v20.0.0 release even though the soroban-sdk requests v20.0.0-rc2.

Preview is available here:http://soroban-docs-pr667.previews.kube001.services.stellar-ops.com/


[Feature Request]: 在xinference中image2txt类型中能否支持多模态模型 cogvlm2和minicpm

Is there an existing issue for the same feature request?

[X] I have checked the existing issues.

Is your feature request related to a problem?
No response
Describe the feature you'd like
在qwen-vl-max外提供另一种选择，在xinference中image2txt类型中支持多模态模型 cogvlm2和minicpm，这两个模型也很强大
Describe implementation you've considered
No response
Documentation, adoption, use case
No response
Additional information
No response

是不是跑错片场了哈哈


How to wrap text around a table in Word by using py-docx?

Hi, I am facing a problem that I want to let the text to be around the table,but I can`t find a way to solve it by using python-docx. What can I do?
Take pictures as an example:

There is no API support for floating tables in python-docx.

There is no API support for floating tables in python-docx.

OK.But thanks for your replay.


adding SBOM in Docker image + High/Critical severity vuln checks

This Pull request:

adds SBOM (Software Bill of Materials -- a nested inventory of what's included in the software package) in the Docker images.
updates the Dockerfile to fail to build if high/critical severity vulnerabilities are detected

Both of the changes above are implemented with the help of Trivy, an open source scanning tool from Aquasec. Trivy is RedHat certified, and is being used as the default container scanner on GitLab (according to this link)

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

Comparison is base (fd542c0) 99.99% compared to head (aea96f2) 99.96%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1459      +/-   ##
==========================================
- Coverage   99.99%   99.96%   -0.04%
==========================================
  Files         321      321
  Lines       23175    23175
==========================================
- Hits        23173    23166       -7
- Misses          1        6       +5
- Partials        1        3       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

All of the issues with dependencies have been addressed in this PR: https://github.com/hyperledger/firefly/pull/1454


Emit CIR as output type

Hi, I was interested in using the CIR intermediate representation but it doesn’t appear to be available. Could this be added to the CLI as an output type?

Thanks for the suggestion -- we'll look into adding this!


SNAPSHOT - SUPPRESS OUTPUT LOGS WARNINGS during SCREENSHOTS capture.

Feature Request
Motivation Behind Feature
FASTLANE SNAPSHOT LANE - SUPPRESS OUTPUT LOGS
Feature Description
is there any way to suppress the logs warnings when running the SNAPSHOT lane during screenshots. similar to Xcode suppress_xcode_output: true

@joshdholtz as suggested, created a new feature request.

Thank you! That issue didn't have any changes to snapshot in it so it's cleaner to have this be it's own issue 🙂

This should totally be possible, BTW 💪 I won't have time for it this week but somebody else might pick it up 🙃

This should totally be possible, BTW 💪 I won't have time for it this week but somebody else might pick it up 🙃

thanks @joshdholtz

I decided to take a stab on this one :) @joshdholtz thanks for adding the you can do this label 💪


[Request] Add ability to search by topics

Hello,
I have been using this app and it is very useful. I would like to refine my search by adding topics to the query. Is there any possibility to include this ability? I wouldn't mind working on this.

really glad you like the project!
good question.  everything is hooked up directly to the free tier on github's api.  so you'd have to take a look at the issue search.
here's where api issue search request is sent.
and here is github's issue search api documentation.

if the functionality is supported by the api, then we can probably add it to the site pretty easily.

Hmmm, I think it is not supported by the API. Anyways, I found the issue tags I was looking for :-)

You can apparently search by topics using the developer preview: https://developer.github.com/v3/search/#search-topics
Also, your site is very similar to mine! Check it out here: https://github.com/jeffslofish/open-source-help-wanted


Add backup, filesystem, author, and series API endpoints

This adds all the backup, filesystem, author, and series API endpoints.

Beautiful!


Remove ConditionalConstraint from topics section

Bug/issue #, if applicable: 116418381

Explanation: Removes ConditionalConstraint from topics section. Motivation is to prep for grouping the overloads, but also because this information is not particular useful at the topics section level.
Scope: Small, only impacts the Topics section.
Risk: Low risk; this is a new design direction and only removes content
Testing: Updated the unit tests to reflect the spec, manual testing.
Reviewed By: @mportiz08

Summary
This PR removes the ConditionalConstraint content from the topics section.
See more reasoning in this forum's post.
Dependencies
NA
Testing
Steps:

Verify that Conditional Constraint content is no longer rendered in the topics section.

Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] Added tests
[x] Ran npm test, and it succeeded
[ ] Updated documentation if necessary

@swift-ci test

Do you know if there is a plan to introduce the new overloaded symbol presentation using a feature flag?

Do you know if there is a plan to introduce the new overloaded symbol presentation using a feature flag?

Yes!

Do you know if there is a plan to introduce the new overloaded symbol presentation using a feature flag?

I don't think it's necessary to introduce a feature flag in docc-render since the overloaded symbol has a feature flag on the DocC end and users have to opt in there to get the new behavior. We preserve the "old behavior" otherwise.

Do you know if there is a plan to introduce the new overloaded symbol presentation using a feature flag?

I don't think it's necessary to introduce a feature flag in docc-render since the overloaded symbol has a feature flag on the DocC end and users have to opt in there to get the new behavior. We preserve the "old behavior" otherwise.

Ok, just double checking since this change would be happening regardless of how overloads are presented in that case—just verifying that this is expected.

@swift-ci test


ica.plot_properties with gradiometers throws reshape error

I wanted to use ica.plot_properties with an ICA object having only gradiometers, however, reshape throws a ValueError in _merge_grad_data complaining "ValueError: total size of new array must be unchanged" (python 2) or "ValueError: cannot reshape array of size 202 into shape (0,2,newaxis)" (python 3).
Following the tutorial from http://martinos.org/mne/stable/auto_tutorials/plot_artifacts_correction_ica.html but replacing meg=True with meg="grad" in the line where picks_meg is defined also exhibits this behavior (otherwise, the magnetometers seem to be used and everything is fine).
It seems that ica.get_components()[:,idx] (in _plot_ica_topomap) returns an array of size (n_chan,), np.atleast_2d transforms to (1,n_chan) but _merge_grad_data expects (n_chan, n_times), hence the error in _merge_grad_data in the line "data = data.reshape((len(data) // 2, 2, -1))".
Hope the issue is clear and that I didn't overlook something obvious. I am not an experienced programmer so let me know if you need any other information.
I am using MNE version 0.14 on Windows and tested it under python 2.7 and 3.6.

Thanks for the bug report. Fix coming up.


 The way the go command manages module graphs changed substantially in 1.17, and since this example starts with a new go 1.17 module, this may be working as intended.
If not, please fill out the issue template and add more detail, especially in "What did you expect to see?".

"What did you expect to see?".

I expect go get -d some-module to respect the version set in go.mod. This is a very simple dependency graph, and I can see no reason for an upgrade.
This is a direct dependency and I can see no relevance with your "graph pruning" reference.
This works as expected when the go get-ed module is living in the repository root.
And as I said, this also works as expected in Go 1.16.7.

I expect go get -d some-module to respect the version set in go.mod (as in: the version I already installed). This is a very simple dependency graph, and I can see no reason for an upgrade.

go get -d path is equivalent to go get -d path@upgrade. When no version is specified, go get upgrades the packages or modules listed on the command line to the latest available version. So go get -d github.com/bep/mod-subs/mod1 should upgrade to v1.1.0. Both Go 1.16 and 1.17 will do that.

This is a direct dependency and I can see no relevance with your "graph pruning" reference.

Graph pruning means that in 1.17, after the go get commands, your go.mod file looks like this. It includes explicit requirements on all modules needed to build the packages listed by the go get command.
module mymod

go 1.17

require (
	github.com/bep/mod-b v1.0.0 // indirect
	github.com/bep/mod-subs/mod1 v1.1.0 // indirect
)

This affects the output of go mod graph.

This works as expected when the go get-ed module is living in the repository root.

Do you mean when the argument to go get is the main module or a package within the main module? Or do you mean when the argument is another module that's the subject of a replace directive? And by "works as expected" do you mean that it isn't upgraded? Or something else?

I see the same behaviour in 1.16 as 1.17:
main » go1.16.7 mod init test
go: creating new go.mod: module test

main » cat go.mod
module test

go 1.16

main » go1.16.7 get -d<EMAIL_ADDRESS>go get: added github.com/bep/mod-subs/mod1 v1.0.0

main » cat go.mod
module test

go 1.16

require github.com/bep/mod-subs/mod1 v1.0.0 // indirect

main » go1.16.7 get -d github.com/bep/mod-subs/mod1
go get: upgraded github.com/bep/mod-subs/mod1 v1.0.0 => v1.1.0

main » cat go.mod
module test

go 1.16

require github.com/bep/mod-subs/mod1 v1.1.0 // indirect

OK, I'll close this for now (I repeated the steps above on Go 1.16 and now it behaved differently, which does not make much sense). I will get back to you when I find out what the real issue is

go get -d path is equivalent to go get -d path@upgrade.

That is not even mentioned in go help get. That is the behaviour I would expect from go get -u.
Anyhow, I will get back with a more stable test case.

It is mentioned as the first example:

To add a dependency for a package or upgrade it to its latest version:
go get example.com/pkg

You are all right, I'm sorry. My issue was something completely different.


refactor bitbucket repo-permission sync to support polysites

currently our repo-permission sync searches on bitbucket for the repo based on the same projectname in lagoon and bitbucket:
https://github.com/amazeeio/lagoon/blob/0e51f7b74d0b24473ca21d22fb7c0a1aa3029d8d/services/api/src/bitbucket-sync/repo-permissions.ts#L63
as the customer starts to use polysites now, the repo name in lagoon and bitbucket will be different as there are multiple projects in lagoon deployed with the same bitbucket repo name.
Therefore we should refactor this to an searchReposByGitURL to find the correct repo in bitbucket.
Unfortunately looking at https://docs.atlassian.com/bitbucket-server/rest/7.6.0/bitbucket-rest.html#idp414 there does not seem to be an easy way to search by Git URL :(
maybe we could use a new metatag in lagoon projects to define the bitbucket repo name that should be used to sync? the sync script then can check if that metatag exists and use the name found in there instead of the project name?

one other thing that we found out with the customer:
if the gitURL looks like this:
ssh://git@bitbucketserver.com:7999/bitbucket-project/bitbucket-repo.git

we can assume that bitbucket-repo is the same as the repo name in bitbucket, therefore no need for the metatag system


Unable to format when using if directives that contain the end of statements

The file at [csharpier-repos]\efcore\test\Microsoft.Data.Sqlite.Tests\TestUtilities\SqliteTestFramework.cs
Contains the following code.
The end bracket for an attribute is inside of an if directive. Currently the way csharpier uses roslyn, it can't parse this file.
The solution to this is probably related to #15
[assembly: TestFramework(
    "Microsoft.Data.Sqlite.Tests.TestUtilities.SqliteTestFramework",
#if E_SQLITE3
    "Microsoft.Data.Sqlite.Tests")]
#elif E_SQLCIPHER
    "Microsoft.Data.Sqlite.e_sqlcipher.Tests")]
#elif WINSQLITE3
    "Microsoft.Data.Sqlite.winsqlite3.Tests")]
#elif SQLITE3
    "Microsoft.Data.Sqlite.sqlite3.Tests")]
#else
#error Unexpected native library
#endif

When we fix this, remove this file from the ignore list for csharpier-repos

closing for lack of interest


Is this project still actively maintained?

I'm working to use the current v1 API wth your library and could send the changes back once I'm "there".

It appears this project is no longer maintained; I've opened a PR against the K8s docs to remove it from the list. See https://github.com/kubernetes/website/pull/11928


Adding volumes, configmaps, secrets and certificates and restructuring the code again

Now, all the expected functionalities work: volumes, pow, deployment, service, ingress, certificate, secrets, etc.
About the secrets, I decided to create them in the kube-system and then copy them to other namespaces.
I added as well two new fields in the CRD: domainName and replicas.
Also, made some changes in the structure of the code, by passing the update functions to each package, so we have always a set of functions for the packages, unless one/some of them is/are unnecessary: create, delete, generate, isEqual and Update.
But it's still necessary to: finish the implementation of the status and maybe add others status; change the scripts; and finally add documentation.

Overall LGTM, see my comments.
I think that using ConfigMap for powDifficulty is a bit of over-engineering but I understand that this is not smth you developed, you just migrated it from the Makefile. I think the problem is as simple as "propagating an integer from config into a container" and should be solved by adding the ENV variable into Pod. That would require though to change pow script to read the ENV instead of the file here: https://github.com/google/kctf/blob/alpha/base/nsjail-docker/files/proof_of_work/maybe_pow.sh#L21.
But that is probably better for separate Issue/PR. This one is working and that's okay 👍

I think the only downside of that is that we need to restart the deployment for it to take effect?


Cursor always at the front when typing emojis

The cursor often is stuck at the beginning of the TextField when typing strings of emojis (as well as some other types of characters)
Repro:

Open any flutter TextField (the one in flutter_gallery>material>text fields should do)
Type emoji characters, preferably ones with zero-width-joiners such as nation flags
Cursor is stuck at front, and tapping in the text works (new text shows up correctly, backspacing works) but the cursor does not appear in the right spot.

This sometimes goes away when there are other characters around the emoji string.

The cause is that emojis that make use of zero width joiners take up more than two positions of offset. We only support two 16-bit codepoints, and when there are more than two 16-bit data that define a glyph, the offset of 2 is not enough to draw a rectangle around the character, and so is omitted.

The fix is currently waiting for approval and landing #24797

@GaryQian #21745 looks similar. Is it likely that is fixed as well?
Not sure whether #25530 could be related.

There are actually a few different causes for such behavior, but it is very possible that the fix for iterating grapheme clusters does fix those. They would need to be verified case-by-case though as I am not familiar with the exact UTF16 codepoints that those issues use.

hello~ I met a problem like this, but there are some differences from yours.Could you do me a favor?#50563


New userguide branch

added remaining typo fix for FAQ Section in UG. Related to PR #130.

Good catch, LGTM.


Go migration file template

Hi 👋
Thank you for this lib - it's awesome!
I have a question.
Is it possible to customise Go migration file?
For example I want to have following template, can I configure it somehow?
package migrations

import (
	"context"
	"fmt"

	"github.com/uptrace/bun"
)

func init() {
	Migrations.MustRegister(func(ctx context.Context, db *bun.DB) error {
		_, err := db.Exec(``)
		return err
	}, nil)
}

You can't customize Go migrations, but you can send a PR to make it possible - see https://github.com/uptrace/bun/blob/master/migrate/migration.go#L124-L142


match user VM images by name too

now only matching label

This is also confusing when selecting VM images from publishers.  The name and label do not always line up, and the UI does not necessarily make it clear.


field below grouped fields lacks padding

I've got a few fields which I want to conditionally hide, so I've placed a wrapping div around them. When I do this, the fields below are no longer properly padded: http://jsfiddle.net/ut1tq809/1/

Just use fields groups
http://jsfiddle.net/sk29ojc3/

ah, class="grouped fields" is the key here, I missed that in the docs apparently. Thanks!


Added license for jBrowserDriver

The README of jBrowserDriver says it's licensed under the Apache License v2.0.

Cool, thanks!


Fix AuthTokenRetriever for Mac OSX

I was seeing a crash every time I would try and run the AuthTokenRetriever project in OSX and it looks like there is a slightly different way to open a URL in OSX.  I included the webpage in the code comments that listed how to also support Linux but I only added support for OSX which I can test.  After this change I see that a file gets generated with the refresh and access token (although the webpage that is supposed to show up still does not work on OSX).

Nice catch, thanks!


Data propagation problem for msol objects and Exchange objects

PowerShell control of O365 User/Contact/Group object's data is not propagated. For example using set-msoluser to set the user's title works to set the msol object. If I fetch the same user (using the ExternalDirectoryObjectId) with get-user, the title never shows up. This same behavior happens if I initially set a property value with the Office portal UI, I see the change on the msol object but never on the get-user object. Also, if I set a user's data with set-mailuser, I never see the change in the portal UI or in the msol object. What can I do to get the data sync'd? This happens with user, contact, and group properties. The O365 test tenant is stand-alone and is not dir-sync'd. If the property is set when the object is created then it propagates correctly.

@StewartNutter1 Thanks for your report!
Please reformat the report to contain description, repo step, PowerShell and modules versions.

Current environment: PS version 4, Stand alone O365 tenant (ENTERPRISEPACK), MSOL is version 1.0
Remote session to exchange: ($credcorp is created with "new-credential")

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $credcorp -Authentication Basic -AllowRedirection
Import-PSSession $session
Connect-MsolService -Credential $credcorp

Repo steps:

Create a new user (filling in the domain name as appropriate) with 'new-msoluser -DisplayName "testuser" -UserPrincipalName "testuser@domain" '
Get the objectId of the new user with '$id = (get-msoluser -searchstring "testuser").ObjectId'
Get the user object from '$u = get-user -Identity $id.ToString()'. Repeat step 3 until the user object appears. This may take 1 to 5 minutes.
Set the title property on the user with 'set-msoluser -objectId $id -title "My Title"'
Get the title from '(get-user -Identity $id.ToString()).Title'. Wait for it to be set to "My Title".

This is the problem, step 5 never happens.  You can reverse this test by setting a property with 'set-user' and then wait for the value to appear with 'get-msoluser'. This change also never propagates.

Sorry - hit the wrong button


UI / translation issue in Dutch localization of FancyZones Editor

Microsoft PowerToys version
0.62.0
Utility with translation issue
FancyZones Editor
🌐 Language affected
Dutch
❌ Actual phrase(s)
"Weet u zeker dat u deze indeling wilt verwijderen?"

✔ Expected phrase(s)
Although the string is technically correct, it doesn't fit the dialog. There is no right margin.
ℹ Why is the current translation wrong
I expect one of these things:

expanding the dialog to fit the string using the same right margin as the left margin currently.
put the string on two lines. The dialog is big enough to accommodate this.

https://microsoft.visualstudio.com/OS/_workitems/edit/42589379

This should be fixed in a newer build such as .70.1, can you please verify? /needinfo

This should be fixed in a newer build such as .70.1, can you please verify? /needinfo

Confirmed fixed. Thanks!


SCRUM-1366 merge from beta to alpha

@oblodgett This merge should not have been approved, as Github's way of merging branches in a PR merged alpha into beta first, causing all alpha changes now to be on the beta branch as well. I will revert beta to its previous state, and update the check-branching-rules check to block these merges for potential future PRs.

Sorry I did not catch the merged 4 commits into alpha from beta this typically doesn't happen. I think we need to have a way of naming the PR so that we can see its a PR into beta and then also on the merge back to alpha.... typically we would need to take a branch of beta and merge that into alpha.