[BUG] rancher monitoring chart lacks Network Policy permission to collect metrics from GUI's ingress-nginx pods

Rancher Server Setup

Rancher version: 2.8.4
Installation option (Docker install/Helm Chart): Helm

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE2

rke2 version v1.28.10+rke2r1 (b0d0d687d98f4fa015e7b30aaf2807b50edcc5d7)
go version go1.21.9 X:boringcrypto

Information about the Cluster

Kubernetes version: v1.28.10 +rke2r1
Cluster Type (Local/Downstream): LOCAL

User Information

What is the role of the user logged in? (Admin/Cluster Owner/Cluster Member/Project Owner/Project Member/Custom)

Admin

Reopening the issue from https://github.com/rancher/rke2/issues/6000 per suggestion from @alexandreLamarre

Node(s) CPU architecture, OS, and Version: Linux my_secret_hostname 5.14.0-427.16.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 26 18:16:09 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux
RHEL 9:
NAME="Red Hat Enterprise Linux"
VERSION="9.4 (Plow)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="9.4"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Red Hat Enterprise Linux 9.4 (Plow)"
ANSI_COLOR="0;31"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos"
HOME_URL="https://www.redhat.com/"
DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9"
REDHAT_BUGZILLA_PRODUCT_VERSION=9.4
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.4"

Cluster Configuration:

RKE2 Cluster which is used for installation of management GUI
3 Servers/3 control nodes which also have "worker" role so that some additional apps could run on them, e.g. rancher-monitoring, vault integration etc.

Describe the bug:
Nginx Ingress metrics cannot be collected anymore. Per discussion in https://github.com/rancher/rke2/issues/6000 I have assumed that it is rke2 related, now seems to be rancher-monitoring helm chart related. The chart needs either some adjustment or additional network policy which would allow prometheus to collect nginx-pod metrics.
Steps To Reproduce:

Installed RKE2: using my custom ansible playbook, which is based on 2 public github repos: https://github.com/rancherfederal/rke2-ansible and https://github.com/lablabs/ansible-role-rke2. Again, it was installed using custom ansible playbook, which is drastically simplified.

Following RKE2 config is being used to bootstap first control node:
$ sudo cat /etc/rancher/rke2/config.yaml
tls-san:
  - cluster.local
  - my_secret_ip
  - rancher-gui.mydomain.com
  - control-nodes-load-balancing.mydomain.com
cni: calico
node-name: my_secret_hostname
profile: cis
selinux: True
write-kubeconfig-mode: "0644"
pod-security-admission-config-file: /etc/rancher/rke2/rke2-custom-pss.yaml
system-default-registry: "private docker registry"
audit-policy-file: /etc/rancher/rke2/audit-policy.yaml

install rancher GUI 2.8.4 release (via helm etc.)
install rancher-monitoring helm chart (incl. CRDs) - we use currently version: 103.1.0+up45.31.1 but it should not matter that much
among many others, following ServiceMonitor will be installed:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  annotations:
    meta.helm.sh/release-name: rancher-monitoring
    meta.helm.sh/release-namespace: cattle-monitoring-system
  labels:
    app: rancher-monitoring-ingress-nginx
    app.kubernetes.io/managed-by: Helm
    component: ingress-nginx
    provider: kubernetes
    release: rancher-monitoring
  name: rancher-monitoring-ingress-nginx
  namespace: kube-system
spec:
  endpoints:
    - metricRelabelings:
        - action: replace
          replacement: my_secret_cluster_name
          sourceLabels:
            - __address__
          targetLabel: my_secret_cluster_name
        - action: replace
          replacement: local
          sourceLabels:
            - __address__
          targetLabel: cluster_id
      port: metrics
      tlsConfig:
        insecureSkipVerify: false
  jobLabel: component
  namespaceSelector:
    matchNames:
      - kube-system
  podTargetLabels:
    - component
    - pushprox-exporter
  selector:
    matchLabels:
      component: ingress-nginx
      k8s-app: pushprox-ingress-nginx-client
      provider: kubernetes
      release: rancher-monitoring

Check that in Prometheus GUI, target serviceMonitor/kube-system/rancher-monitoring-ingress-nginx is DOWN, with Get "http://ip:10254/metrics": context deadline exceeded

Once RKE2 default networking policy is adjusted, default-network-ingress-policy, it works again:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  annotations:
    np.rke2.io/ingress: resolved
  name: default-network-ingress-policy
  namespace: kube-system
spec:
  ingress:
    - ports:
        - port: http
          protocol: TCP
        - port: https
          protocol: TCP
        - port: 10254
          protocol: TCP
  podSelector:
    matchLabels:
      app.kubernetes.io/name: rke2-ingress-nginx
  policyTypes:
    - Ingress

We are not using anything related to calico's global deny or similar. All network policies are default, not customized by us in any way.
Expected behavior:
Metrics about rke2-ingress-nginx-controllers can be collected/shown in grafana.
Actual behavior:
Metrics cannot be collected due to some Network Policy missing metrics port for nginx ingress pods . (This comes from a Service object called pushprox-ingress-nginx-client in kube-system NS.

Putting back to "Next Up" because we need someone to pick it up, rebase to update it and then test it.
Thankfully all the work was done and details on how to test/reproduce laid out by dharmit.
So once we have bandwidth it should be relatively easy to get his work across the finish line.

Totally your call @dharmit - if you do choose to work on this rebase, feel free to open a new PR.
We need to create a new one anyway due to blocked reviews.
Understandable if you don't have time to rebase the PR and open a new one in your new role.

Details :
Rancher : v2.10.0-alpha3
cluster : v1.31.1-rc2+rke2r2
monitoring : 105.1.0-rc.1+up61.3.2
While verifying the bug with the Rancher Monitoring chart using the rke2-ingress-nginx controller, I observed that the network policy created during the chart installation does not allow the Rancher UI to function properly. The policy only allows traffic on port 10254 (for metrics collection) but misses ports 80 (HTTP) and 443 (HTTPS), causing failures.
Steps to Reproduce:

Install Rancher Monitoring charts with the following configuration:
rke2IngressNginx:
  networkPolicy:
    enabled: true

Check the created NetworkPolicy:
kubectl get networkpolicy -n kube-system rke2-ingress-network-policy -o yaml

Resulting Policy:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  annotations:
    meta.helm.sh/release-name: rancher-monitoring
    meta.helm.sh/release-namespace: cattle-monitoring-system
    np.rke2.io/ingress: resolved
  name: rke2-ingress-network-policy
  namespace: kube-system
spec:
  ingress:
    - ports:
        - port: 10254
          protocol: TCP
  podSelector:
    matchLabels:
      app.kubernetes.io/name: rke2-ingress-nginx
  policyTypes:
    - Ingress

Workaround:
After modifying the policy to include ports 80 (HTTP) and 443 (HTTPS) in addition to 10254, the issue was resolved, and the Rancher UI started functioning properly.
Updated Policy:
  ingress:
    - ports:
        - port: 80  # HTTP
          protocol: TCP
        - port: 443  # HTTPS
          protocol: TCP
        - port: 10254  # Metrics
          protocol: TCP

Also same policy suggested in the workaround shared above in the reproduction steps.


Can't put "long" key

Can't put new row with key longer than 14 chars
$data = ['my1234567890123' => 'value'];
$connection->put('my_set', $data);

error from aerospike: Unable to set record to int events
Also I can't store key started from integer

There's a built-in limit of 14 characters on bin names (See the FAQ). I was sure I already added this to the documentation...apparently I check-marked it off in my head before really doing so. Sorry about that.

The upcoming release of PHP will have a clear error message for such a case.

Fixed by release 3.3.12. :rocket:


Install Package Manager with apt instead of gdebi

This has a few advantages:

We don't have to install (and later remove) gdebi.

apt allows us to skip installing Recommended packages. RSPM depends on git and git recommends less and ssh-client (yes, really), so we were previously installing an SSH client into the image. With this change neither of these packages nor their transitive dependencies are installed.

This shaves about 8M off the resulting image, too.

Ah, so really there was an issue with #285 it was just masked by getting pulled in with git. I'd prefer explicitly installing libssl1.0.0 for now, I think, and then fix it once the upstream dependencies are corrected. Reverting back to gdebi with a reminder to remove it in the future seems to muddy things even further.

This would be nice to do. Using gdebi in our official install guide produces a warning that may mislead customers into thinking something is wrong.
https://github.com/rstudio/package-manager/issues/11698

We should be able to do this now that Ubuntu 18.04 is EOL.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing this out since we are using now apt for all Debian package installations:
https://github.com/rstudio/rstudio-docker-products/blob/4fd9cb36d8ff1580347f51aec2bee5a6b5c6bb4e/package-manager/Dockerfile.ubuntu2204#L29


Allow querying the element tree recursively

Recursively find an element. Returns an ArrayElement containing all elements that match the given element name.
const strings = element.findRecursive('string');

You can pass multiple element names to findRecursive. The method will search for the last given element name inside elements matching the other given element names.
const stringInsideMembers = element.findRecursive('member', 'string');

NOTE: The returned elements contain a parents property which includes all of the elements parent in the original Refract tree.
The parents property is injected in just like mentioned in https://github.com/refractproject/minim/issues/17
Recommended to review per commit.

⚠ eslint wasn't happy and was running super old version which produces poor messages, I updated eslint and resolved the remaining issues in 84e141de. I discovered that newer eslint doesn't pass on Node 0.10/0.12 so I removed support for Node 0.10/0.12 in 9b5c961 ⚠

Yeah, we need to convert this library to use peasant too.

I'm thinking out loud... What would be the best way to implement something like this?
That means - is it possible to have a transition as an input, then lookup all requests and responses it contains and sort them according to their position in the original document? I guess with findRecursive it would be fairly simple... (pseudocode, I'm not very familiar with minim):
requests = transitionElement.findRecursive('request')
responses = transitionElement.findRecursive('response')

elements = requests.concat(responses)
elements = elements.map(function (element) {
  return {
    type: element.name,
    transaction: element.parents.findRecursive('transaction')[0],
    position: getPositionInOriginalDocument(element)
  }
}).sort(function (x, y) {
  return x.position - y.position
})

function getPositionInOriginalDocument(element) {
  sourceMaps = element.findRecursive('sourceMap')  // returns source maps of any elements within the given request or response element
  positions = sourceMaps.map(function(sourceMap) { return toPositionNumber(sourceMap) })
  return Math.min.apply(null, positions)
}

It's possible to lookup sourceMaps like this, even though they're in attributes, right?

This findRecursive is not a hammer. You can do element.sourceMap. And you can do findByElement('transaction') since you don't need it to be recursive and don't need parents.

You can do element.sourceMap.

I remember I didn't want element.sourceMap for some reason. It was missing or misleading in some cases, so I took all source maps of child elements of request or response and found the one with the lowest position in the document. That worked. That's why I needed to get all source maps within a certain element and that's why refractQuery originally didn't solve my use case (it wasn't able to traverse attributes).

you can do findByElement('transaction')

How come request.findByElement('transaction') would work? What I'm trying to achieve on that line is: "I have a request element. Give me the closest parent transaction element." I thought findByElement() searches through children.

No, element.parents.findByElement('transaction'). And it's not that sourceMaps are missing sometimes, it's that they don't exist for some things. It's deterministic, so I think code should be too instead of searching for nearest source map.

@pksunkara If both + Request and + Response sections have their direct source maps, I'm okay. But something tells me it wasn't like that in the past. That's why I have these tests.
If they do not provide direct source map attribute, the combinations of what they can contain are endless and in reality, I do not really care what exactly they contain - I need just the earliest thing in the document to detect where the request or response starts, to determine their position. But if there's something like traverseAllChildren, I'm okay to implement the recursive source maps lookup by myself.

the combinations of what they can contain are endless

They are not endless. The request/response have the source maps directly. I think the tests you have are a relic of APIB AST.

They're not, they're specifically for Refract. But if both req and res have
their own source maps, then I'm fine.
On Thu, 27 Apr 2017 at 14:03, Pavan Kumar Sunkara<EMAIL_ADDRESS>wrote:

the combinations of what they can contain are endless
They are not endless. The request/response have the source maps directly.
I think the tests you have are a relic of APIB AST.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/refractproject/minim/pull/106#issuecomment-297693991,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARTMeZARypR7iF2qFfiRGk7o2QHcxMzks5r0IPTgaJpZM4NHOSK
.

@honzajavorek @pksunkara Thanks for the feedback, I've flipped order of parents so they are closest first in a6d837f and I've made it so that empty array is returned instead of null in 6c5b552.
I've also added a shift and unshift methods for ArrayElement in c18eaa4 because I needed to use this behaviour during the other two commits.
@pksunkara can you please review changes and merge if you are happy.


[Blog] Optimize OpenSearch Index Shard Sizes

Describe the blog post your would like to write
A common cause of performance degradation is improper shard sizing for an index. This blog would be a clear and concise post demonstrating how to

View the # Shards, Size ... for an Existing Index
Adjust # of Primary Shards for an Existing Index
Adjust # of Replicate Shards for an Existing Index

I already have the material created for this blog post at OpenSearch_Index_Shard_Size. Including a YouTube video - https://www.youtube.com/watch?v=xadv93LlbY4
I want to turn this into a OpenSearch blog post so it is easier for people to find this information.
What is the title of the blog post?
How to optimize shard sizes for an OpenSearch index
Who are the authors?
Who will be listed as the authors of this blog post
Christopher Sharkey, Ron Miller
What is the proposed posting date?
Provide the date which you wish this post to go live
June 19 but I am flexible on date. I won't take long for me to write the post since I already have a lot of the material.

Closing this issue the blog post was published - https://opensearch.org/blog/optimize-opensearch-index-shard-size/
Thanks everyone for the help!


1.21 update

Is an update to 1.21 in the plans?

It is, the main branch contains progress for it. I am having trouble getting it working since 1.20.6 changed how this stuff worked

Soon my friend, soon. 1.20.6 is working, tomorrow I shall update to 1.21(.1)

Done! Fabric supports 1.21 and 1.21.1 and Forge/NeoForge supports 1.21.1
If you specifically need 1.21 support for Forge/NeoForge please just respond here and I shall work on it


New zombie actor positions

Test Plan

Run https://hifi-content.s3.amazonaws.com/DomainContent/Zombies/StageManager-Staging/zombieStageManager.js
Confirm that your Zombies app appears
Use each combination of color and position to teleport around a domain.
Confirm the following for each zombie color / position combination - you should teleport within a small distance of each of the positions listed below.

Ignore the descriptor and only focus on the x, y, z coordinates.
Zombie/Location |   |   |   |   |
-- | -- | -- | -- | -- | --
Red | Phase 1 Bus-9,-10,16.5 | Phase 6 dumpster-22.5,-5,-32 | Phase 8 bus-21,-10,5 | Phase 11 behind car-13,-10,-19 | Phase 13 plateau35,-4,-45
Orange | Phase 1 Exit-37,-10,18 | Phase 7 Left cubby by door3,-6,-33 | Phase 9 left boardwalk-28,-10.5,29 | Phase 11 up the hill a bit2,-7,-28 | Phase 13 plateau27,-2.5,-41
Yellow | Phase  2 ramp27,-7,-15.5 | Phase 7 bull statue3.5,-9,-20.5 | Phase 9 sidewalk boardwalk-19,-10,25 | Generator left of regalia-11,-5,-33 | 1 Zombie to right of bottom of ramp, standing with mannequins25,-8,-3
Green | Phase 4 Gate-53.5,-1.5.-70 | Phase 7 by trash and tires-11,-10,-12 | Phase 10 Gas Main-27,-10,5 | Generator left of rubble-35,-4,-33.5 | 1Zombies further down the Boardwalk from the Boat area (by blue conex box and tires/bus)8,-9,23
Blue | Phase 4-31.5,2,-63.5 | Phase 8 bus-24,-10,5 | Phase 10 Gas Main-27,-10,5 | Phase 12 by tree-31.5,2,-69 | 1Zombies further down the Boardwalk, by bus-9,-10,16.5
Purple | Phase 6 car-44.5,-4,-43.5 | Phase 8  bus-23,-10,8 | Phase 11 right after gate2,-7,-28 | Phase 12 by bush-31.5,2,-69 | 1Zombies further down the Boardwalk, by bus-9,-10,16.5

Testing.

Testing complete:
I can confirm all coordinates regarding each colored buttons subset locations match up & teleport perfectly.
Pass :)

Thanks @YuppyPlays!


How does this option actually work?

The page tells that an option exists, but pretty much nothing else. I'm interested in knowing how it works, code-wise, if it can  be extended etc. Where does the invoice id editing happen in the code - metadata search doesn't turn up anything relating to the parameters found in the Accounts receivable parameters page.

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

ID: f2fbd082-e871-da6d-f568-d6c834e6be34
Version Independent ID: afaefd1c-bb43-89ff-9f33-4a4e8a991df1
Content: Edit invoice IDs on sales orders for Eastern Europe - Finance | Dynamics 365
Content Source: articles/finance/localizations/emea-edit-invoice-id-sales-orders.md
Service: dynamics-365-finance
Product: ****
Technology: ****
GitHub Login: @ShylaThompson
Microsoft Alias: kfend

@mrsalonen  Thanks for posting this! In the meantime, to get product help you can contact Support using one of the options described here: Support contact options. In particular, you might want to go to the Dynamics 365 community page to get help with your questions from the Dynamics community.
@ShylaThompson Please review the suggestion and update the article as appropriate.

Closed as won't fix.


Automated cherry pick of #6797

Cherry pick of #6797 on cloud-ga.
/cc  @ali-farooq0

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.


M3-329 - Jenkins Test-results permissions fix

Fixes permissions issues when cleaning up webdriverIO end-to-end test results on jenkins.
Based solution on same approach @delitescere took here

🖖 LLAP.


revendor all dependencies under traffic_ops to remove package duplication bug

Note: jmoirion/sqlx is tied to commit: d9bd385d68c068f1fabb5057e3dedcbcbb039d0f
and
lib/pq is tied to commit: dd1fe2071026ce53f36a39112e645b4d4f5793a4
using govendor to allow all libraries to build until we upgrade our go env.


Inferred package links not always correct.

The first sentence of the package docs for github.com/go-kit/kit/log/level reads:
// Package level implements leveled logging on top of package log.

Godoc.org magically makes the word "log" into a link to the standard library log package, when in fact it is referring to the package github.com/go-kit/kit/log.

It looks like the GoDoc server replaces any instances of the text package <name> with a link to that package, which explains why you're seeing just a link to the log package.
Without changing any functionality, the easiest thing to do is rephrase the comment;
// Package level implements leveled logging on top of the log package.

Here's the lines of interest;
https://github.com/golang/gddo/blob/574849d519ec3acb591fc5620ee0aa3ea48081e0/gddo-server/template.go#L391-L404
Where packagePat is this;
https://github.com/golang/gddo/blob/574849d519ec3acb591fc5620ee0aa3ea48081e0/gddo-server/template.go#L341

Thanks for doing the research to figure that out. Rephrasing the comment is doable.

/cc @dsnet FYI. This issue is something to be aware of when trying to linkify identifiers within the docs.

It also looks like it does something similar for RFCs (and converting h3s to h4s, but that's not as interesting);
https://github.com/golang/gddo/blob/574849d519ec3acb591fc5620ee0aa3ea48081e0/gddo-server/template.go#L340
https://github.com/golang/gddo/blob/574849d519ec3acb591fc5620ee0aa3ea48081e0/gddo-server/template.go#L376-L390


Could not evaluate: Augeas didn't load /etc/rsyslog.conf with Rsyslog.lns

I'm using Debian 7 and have this error with default augeas Debian packages :
Could not evaluate: Augeas didn't load /etc/rsyslog.conf with Rsyslog.lns
Package versions :
augeas-lenses                                   0.10.0-1
libaugeas-ruby                                   0.4.1-1.1
libaugeas-ruby1.9.1                           0.4.1-1.1
libaugeas0                                         0.10.0-1
If I upgrade to wheezy-backports packages :
augeas-lenses                                   1.2.0-0.2+deb8u1~bpo70+1
libaugeas-ruby                                   0.5.0-2~bpo70+1
libaugeas-ruby1.9.1                           0.5.0-2~bpo70+1
libaugeas0                                         1.2.0-0.2+deb8u1~bpo70+1
ruby-augeas                                       0.5.0-2~bpo70+1
I have this error message :
err: /Stage[main]/Syslog::Central_server/Syslog[central server]/ensure: change from absent to present failed: Could not set 'present on ensure: Failed to save Augeas tree to file. See debug logs for details. at /etc/puppet/environments/production/modules/syslog/manifests/central_server.pp:27

Also, I have other augeas errors related to other puppet modules.
Content of central_server.pp :
class syslog::central_server {

  syslog { "central server":
    ensure      => present,
    facility    => "local2",
    level       => "*",
    action_type => "hostname",
    action      => "myserver.local",
    provider    => "rsyslog",
  }

}

I don't know how to solve and if it's related to your code. Maybe just a Debian problem..
Any help would be greatly appreciated.
thank you.

Here is the puppet agent -t --debug
debug: Puppet::Type::Syslog::ProviderRsyslog: Save failure details: /augeas/files/etc/rsyslog.conf/error/path = /files/etc/rsyslog.conf/entry/action /augeas/files/etc/rsyslog.conf/error/lens = /usr/share/augeas/lenses/dist/rsyslog.aug:41.16-.39: /augeas/files/etc/rsyslog.conf/error/message = Failed to match      { /no_sync/ }?{ /file/ = /\/[^\001-\004\t\n ]+/ } | { /protocol/ = /@{1,2}/ }{ /hostname/ = /[0-9A-Za-z]([0-9A-Za-z-]*[0-9A-Za-z])?(\\.[0-9A-Za-z]([0-9A-Za-z-]*[0-9A-Za-z])?)*/ }({ /port/ = /[0-9]+/ })? | { /user/ = /[0-9A-Za-z][.0-9A-Z_a-z-]*/ }({ /user/ = /[0-9A-Za-z][.0-9A-Z_a-z-]*/ })* | { /user/ = /\\*/ } | { /program/ = /[^\001-\004\t\n ][^\001-\004\n]+[^\001-\004\t\n ]/ } | { /omusrmsg/ = /[0-9A-Za-z][.0-9A-Z_a-z-]*/ }({ /omusrmsg/ = /[0-9A-Za-z][.0-9A-Z_a-z-]*/ })* | { /omusrmsg/ = /\\*/ }   with tree     { "hostname" = "myserver.local" }

Does augtool parse the file OK?

Hello,
Thanks for your prompt answer.
I assume these commands are telling us that augeas is able to parse
rsyslog.conf :
augtool  print /augeas/files/etc/rsyslog.conf/error
augtool
augtool> ls /augeas/files/etc/rsyslog.conf/error/
augtool>
2016-02-17 12:49 GMT+01:00 Raphaël Pinson<EMAIL_ADDRESS>
Does augtool parse the file OK?
—
Reply to this email directly or view it on GitHub
https://github.com/hercules-team/augeasproviders_syslog/issues/4#issuecomment-185169157
.

That seems good indeed. Does print /files/etc/rsyslog.conf return something?


Support specifying which packages and versions to update.

The current behavior for pip-compile --upgrade updates all requirements. This becomes complicated for large .in files when that's not always the desired behavior.
This patch introduces a new flag, --upgrade-package which has the following features:
Upgrade only a specific package to the latest version:
$ pip-compile --upgrade-package flask

Upgrade a specific package to a specific version:
$ pip-compile --upgrade-package flask==0.10.1

Upgrade multiple packages at a time, by passing in multiple arguments:
$ pip-compile --upgrade-package flask==0.10.1 --upgrade-package werkzeug

Additional output was added when using the --verbose flag to list which packages were updated, and to which version.

Pushed some updates - the build is now green, except for https://travis-ci.org/nvie/pip-tools/jobs/176202798 piptools/utils.py:22:1: E305 expected 2 blank lines after class or function definition, found 1 which seems unrelated to my changes, since I have not modified utils.py

I love this idea, thanks for your contribution, @nnja!
The way pip-compile's default invocation vs the upgrade logic works is quite clever.  Basically, what happens is that if an output file exists (and the --upgrade flag is not given), it will add the current pins from the output file into the list of input specs, and then "just" trigger the resolver.
In that light, using this new -P <pkg> flag really means "don't perform the above-mentioned process for this package <pkg>".  Or, when a pin is given: "ditto, but also pin it to <pin> while you're at it".
So really all you need to do here is to filter the list of "existing pins" and therefore discarding those explicit pins in favor of the stuff provided on the command line.  I've gone ahead and implemented that in d0dd26a79fc66758af134e9687ed2a9a8cbb1d29, which as you can see does not require any special handling for this feature at all.  (It's perhaps best to look at the net-diff against master for the best view of the total change required for this.)
Thanks a lot!


Issue when requiring authentication following README guidelines

Readme is mentionning that authentication can be achieved at Rails route level with the following code:
# config/routes.rb
Rails.application.routes.draw do
  constraints -> (r) { r.env["rodauth"].require_authentication } do
    namespace :admin do
      # ...
    end
  end
end

This code is working when the user is not logged (accessing this route will redirect to the login page), but once logged in, the route can no be accessed.
r.env["rodauth"].require_authentication returns nil when the user is authenticated so the constraints does not match thus the route can not be accessed.
I've created a branch with a failing test: https://github.com/nicolas-besnard/rodauth-rails/commit/53e3af66b5663cb79042ad839994d377639260f0

Thanks for the report. Yeah, that's a good analysis. Something like this should work:
constraints -> (r) { r.env["rodauth"].authenticated? or r.env["rodauth"].require_authentication } do
  # ...
end

Given that this is pretty long for someone to write, I was thinking of creating helper methods for these constraints, so that the user can call:
constraints Rodauth::Rails.authentication_constraint do # authenticated? or require_authentication
  # ...
end

or
constraints Rodauth::Rails.login_constraint do # logged_in? or require_login
  # ...
end

What do you think?

Good idea to have this build-in the gem!
Looking at Rodauth documentation, it offers a large variety of check on the logged in user (logged_in?, authenticated?, verified_account? etc..)
Rodauth::Rails.logged_in_constraint seems to be a good idea to start


Synthesis failed for container

Hello! Autosynth couldn't regenerate container. :broken_heart:
Here's the output from running synth.py:
=%s
2020-11-13 03:05:59,026 autosynth [DEBUG] > Running: git log e89175cf074dccc4babb4eca66ae913696e47a71 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2020-11-13 03:05:59,029 autosynth [DEBUG] > Running: git add -A
2020-11-13 03:05:59,062 autosynth [DEBUG] > Running: git status --porcelain
2020-11-13 03:05:59,091 autosynth [DEBUG] > Running: git commit -m fix: address lint issues

Source-Author: Leah E. Cole<EMAIL_ADDRESS>Source-Date: Thu Nov 12 11:30:49 2020 -0800
Source-Repo: googleapis/synthtool
Source-Sha: e89175cf074dccc4babb4eca66ae913696e47a71
Source-Link: https://github.com/googleapis/synthtool/commit/e89175cf074dccc4babb4eca66ae913696e47a71
[autosynth-container-82 339c998f] fix: address lint issues
 1 file changed, 4 insertions(+), 4 deletions(-)
2020-11-13 03:05:59,111 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 339c998f fix: address lint issues
2020-11-13 03:05:59,143 autosynth [DEBUG] > Running: git checkout autosynth-container
Switched to branch 'autosynth-container'
2020-11-13 03:05:59,164 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- . :(exclude)synth.metadata
2020-11-13 03:05:59,168 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- synth.metadata
2020-11-13 03:05:59,172 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-83 -- . :(exclude)synth.metadata
2020-11-13 03:05:59,203 autosynth [DEBUG] > Running: git diff HEAD autosynth-container-83
2020-11-13 03:05:59,231 autosynth [DEBUG] > Running: git apply /tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch
/tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch:731: new blank line at EOF.
+
/tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch:753: new blank line at EOF.
+
/tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch:2144: new blank line at EOF.
+
/tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch:2373: new blank line at EOF.
+
/tmpfs/tmp/tmp_qk9plh0/autosynth-container-83.patch:2558: new blank line at EOF.
+
warning: squelched 27 whitespace errors
warning: 32 lines add whitespace errors.
2020-11-13 03:05:59,247 autosynth [DEBUG] > Running: git add -A
2020-11-13 03:05:59,287 autosynth [DEBUG] > Running: git status --porcelain
2020-11-13 03:05:59,325 autosynth [DEBUG] > Running: git commit -m feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications

PiperOrigin-RevId: 342116206

Source-Author: Google APIs<EMAIL_ADDRESS>Source-Date: Thu Nov 12 13:17:04 2020 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 75d1324fff65abad6435e6d501e050439b5a616b
Source-Link: https://github.com/googleapis/googleapis/commit/75d1324fff65abad6435e6d501e050439b5a616b
[autosynth-container c2bde20f] feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
 90 files changed, 5598 insertions(+), 957 deletions(-)
 rewrite Container/metadata/V1/ClusterService.php (90%)
 create mode 100644 Container/src/V1/CloudRunConfig/LoadBalancerType.php
 create mode 100644 Container/src/V1/CloudRunConfig_LoadBalancerType.php
 create mode 100644 Container/src/V1/ConfigConnectorConfig.php
 create mode 100644 Container/src/V1/DefaultSnatStatus.php
 create mode 100644 Container/src/V1/DnsCacheConfig.php
 create mode 100644 Container/src/V1/GetJSONWebKeysRequest.php
 create mode 100644 Container/src/V1/GetJSONWebKeysResponse.php
 create mode 100644 Container/src/V1/GetOpenIDConfigRequest.php
 create mode 100644 Container/src/V1/GetOpenIDConfigResponse.php
 create mode 100644 Container/src/V1/Jwk.php
 create mode 100644 Container/src/V1/NodePool/UpgradeSettings.php
 create mode 100644 Container/src/V1/NodePool_UpgradeSettings.php
 create mode 100644 Container/src/V1/OperationProgress.php
 create mode 100644 Container/src/V1/OperationProgress/Metric.php
 create mode 100644 Container/src/V1/OperationProgress_Metric.php
 create mode 100644 Container/src/V1/PrivateClusterMasterGlobalAccessConfig.php
 create mode 100644 Container/src/V1/ReleaseChannel.php
 create mode 100644 Container/src/V1/ReleaseChannel/Channel.php
 create mode 100644 Container/src/V1/ReleaseChannel_Channel.php
 create mode 100644 Container/src/V1/ReservationAffinity.php
 create mode 100644 Container/src/V1/ReservationAffinity/Type.php
 create mode 100644 Container/src/V1/ReservationAffinity_Type.php
 create mode 100644 Container/src/V1/SandboxConfig.php
 create mode 100644 Container/src/V1/SandboxConfig/Type.php
 create mode 100644 Container/src/V1/SandboxConfig_Type.php
 create mode 100644 Container/src/V1/ServerConfig/ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ServerConfig_ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ShieldedNodes.php
 create mode 100644 Container/src/V1/WorkloadIdentityConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig/Mode.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig_Mode.php
2020-11-13 03:05:59,379 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-86 -- . :(exclude)synth.metadata
2020-11-13 03:05:59,384 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-86 -- synth.metadata
2020-11-13 03:05:59,388 autosynth [DEBUG] > Running: git log -1 --no-decorate --format=%B
2020-11-13 03:05:59,391 autosynth [DEBUG] > Running: git push --force origin autosynth-container
remote:
remote: Create a pull request for 'autosynth-container' on GitHub by visiting:
remote:      https://github.com/googleapis/google-cloud-php/pull/new/autosynth-container
remote:
To https://github.com/googleapis/google-cloud-php.git
 * [new branch]        autosynth-container -> autosynth-container
2020-11-13 03:06:05,557 autosynth [DEBUG] > Running: git log -1 --pretty=%b
2020-11-13 03:06:06,103 autosynth [ERROR] > Error making request (422): Validation Failed
2020-11-13 03:06:06,103 autosynth [DEBUG] > {'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'custom', 'field': 'title', 'message': 'title is too long (maximum is 256 characters)'}], 'documentation_url': 'https://docs.github.com/rest/reference/pulls#create-a-pull-request'}
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 127, in synthesize_loop_single_pr
    toolbox.push_changes(change_pusher)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 290, in push_changes
    pr = change_pusher.push_changes(self.commit_count, self.branch, pr_title)
  File "/tmpfs/src/github/synthtool/autosynth/change_pusher.py", line 106, in push_changes
    body=new_body,
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 94, in create_pull_request
    return cast(Dict, _get_json_or_raise_exception(response))
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 488, in _get_json_or_raise_exception
    response.raise_for_status()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.github.com/repos/googleapis/google-cloud-php/pulls

Google internal developers can see the full log here.

Autosynth is still having trouble generating container. :sob:
Here's the output from running synth.py:
03:06:05,403 autosynth [INFO] > M Container/synth.metadata
2020-11-14 03:06:05,403 autosynth [DEBUG] > Running: git log e89175cf074dccc4babb4eca66ae913696e47a71 -1 --no-decorate --pretty=%s
2020-11-14 03:06:05,407 autosynth [DEBUG] > Running: git log e89175cf074dccc4babb4eca66ae913696e47a71 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2020-11-14 03:06:05,410 autosynth [DEBUG] > Running: git add -A
2020-11-14 03:06:05,443 autosynth [DEBUG] > Running: git status --porcelain
2020-11-14 03:06:05,477 autosynth [DEBUG] > Running: git commit -m fix: address lint issues

Source-Author: Leah E. Cole<EMAIL_ADDRESS>Source-Date: Thu Nov 12 11:30:49 2020 -0800
Source-Repo: googleapis/synthtool
Source-Sha: e89175cf074dccc4babb4eca66ae913696e47a71
Source-Link: https://github.com/googleapis/synthtool/commit/e89175cf074dccc4babb4eca66ae913696e47a71
[autosynth-container-82 64ac9579] fix: address lint issues
 1 file changed, 4 insertions(+), 4 deletions(-)
2020-11-14 03:06:05,497 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 64ac9579 fix: address lint issues
2020-11-14 03:06:05,529 autosynth [DEBUG] > Running: git checkout autosynth-container
Switched to branch 'autosynth-container'
2020-11-14 03:06:05,548 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- . :(exclude)synth.metadata
2020-11-14 03:06:05,551 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- synth.metadata
2020-11-14 03:06:05,555 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-83 -- . :(exclude)synth.metadata
2020-11-14 03:06:05,585 autosynth [DEBUG] > Running: git diff HEAD autosynth-container-83
2020-11-14 03:06:05,613 autosynth [DEBUG] > Running: git apply /tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch
/tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch:731: new blank line at EOF.
+
/tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch:753: new blank line at EOF.
+
/tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch:2144: new blank line at EOF.
+
/tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch:2373: new blank line at EOF.
+
/tmpfs/tmp/tmp8nnia855/autosynth-container-83.patch:2558: new blank line at EOF.
+
warning: squelched 27 whitespace errors
warning: 32 lines add whitespace errors.
2020-11-14 03:06:05,627 autosynth [DEBUG] > Running: git add -A
2020-11-14 03:06:05,666 autosynth [DEBUG] > Running: git status --porcelain
2020-11-14 03:06:05,706 autosynth [DEBUG] > Running: git commit -m feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications

PiperOrigin-RevId: 342116206

Source-Author: Google APIs<EMAIL_ADDRESS>Source-Date: Thu Nov 12 13:17:04 2020 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 75d1324fff65abad6435e6d501e050439b5a616b
Source-Link: https://github.com/googleapis/googleapis/commit/75d1324fff65abad6435e6d501e050439b5a616b
[autosynth-container 2e1dd326] feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
 90 files changed, 5598 insertions(+), 957 deletions(-)
 rewrite Container/metadata/V1/ClusterService.php (90%)
 create mode 100644 Container/src/V1/CloudRunConfig/LoadBalancerType.php
 create mode 100644 Container/src/V1/CloudRunConfig_LoadBalancerType.php
 create mode 100644 Container/src/V1/ConfigConnectorConfig.php
 create mode 100644 Container/src/V1/DefaultSnatStatus.php
 create mode 100644 Container/src/V1/DnsCacheConfig.php
 create mode 100644 Container/src/V1/GetJSONWebKeysRequest.php
 create mode 100644 Container/src/V1/GetJSONWebKeysResponse.php
 create mode 100644 Container/src/V1/GetOpenIDConfigRequest.php
 create mode 100644 Container/src/V1/GetOpenIDConfigResponse.php
 create mode 100644 Container/src/V1/Jwk.php
 create mode 100644 Container/src/V1/NodePool/UpgradeSettings.php
 create mode 100644 Container/src/V1/NodePool_UpgradeSettings.php
 create mode 100644 Container/src/V1/OperationProgress.php
 create mode 100644 Container/src/V1/OperationProgress/Metric.php
 create mode 100644 Container/src/V1/OperationProgress_Metric.php
 create mode 100644 Container/src/V1/PrivateClusterMasterGlobalAccessConfig.php
 create mode 100644 Container/src/V1/ReleaseChannel.php
 create mode 100644 Container/src/V1/ReleaseChannel/Channel.php
 create mode 100644 Container/src/V1/ReleaseChannel_Channel.php
 create mode 100644 Container/src/V1/ReservationAffinity.php
 create mode 100644 Container/src/V1/ReservationAffinity/Type.php
 create mode 100644 Container/src/V1/ReservationAffinity_Type.php
 create mode 100644 Container/src/V1/SandboxConfig.php
 create mode 100644 Container/src/V1/SandboxConfig/Type.php
 create mode 100644 Container/src/V1/SandboxConfig_Type.php
 create mode 100644 Container/src/V1/ServerConfig/ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ServerConfig_ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ShieldedNodes.php
 create mode 100644 Container/src/V1/WorkloadIdentityConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig/Mode.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig_Mode.php
2020-11-14 03:06:05,760 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-89 -- . :(exclude)synth.metadata
2020-11-14 03:06:05,763 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-89 -- synth.metadata
2020-11-14 03:06:05,767 autosynth [DEBUG] > Running: git log -1 --no-decorate --format=%B
2020-11-14 03:06:05,770 autosynth [DEBUG] > Running: git push --force origin autosynth-container
To https://github.com/googleapis/google-cloud-php.git
 + c2bde20f...2e1dd326 autosynth-container -> autosynth-container (forced update)
2020-11-14 03:06:09,964 autosynth [DEBUG] > Running: git log -1 --pretty=%b
2020-11-14 03:06:10,535 autosynth [ERROR] > Error making request (422): Validation Failed
2020-11-14 03:06:10,535 autosynth [DEBUG] > {'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'custom', 'field': 'title', 'message': 'title is too long (maximum is 256 characters)'}], 'documentation_url': 'https://docs.github.com/rest/reference/pulls#create-a-pull-request'}
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 127, in synthesize_loop_single_pr
    toolbox.push_changes(change_pusher)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 290, in push_changes
    pr = change_pusher.push_changes(self.commit_count, self.branch, pr_title)
  File "/tmpfs/src/github/synthtool/autosynth/change_pusher.py", line 106, in push_changes
    body=new_body,
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 94, in create_pull_request
    return cast(Dict, _get_json_or_raise_exception(response))
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 488, in _get_json_or_raise_exception
    response.raise_for_status()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.github.com/repos/googleapis/google-cloud-php/pulls

Google internal developers can see the full log here.

Autosynth is still having trouble generating container. :sob:
Here's the output from running synth.py:
03:06:02,381 autosynth [INFO] > M Container/synth.metadata
2020-11-15 03:06:02,381 autosynth [DEBUG] > Running: git log e89175cf074dccc4babb4eca66ae913696e47a71 -1 --no-decorate --pretty=%s
2020-11-15 03:06:02,385 autosynth [DEBUG] > Running: git log e89175cf074dccc4babb4eca66ae913696e47a71 -1 --no-decorate --pretty=%b%n%nSource-Author: %an <%ae>%nSource-Date: %ad
2020-11-15 03:06:02,388 autosynth [DEBUG] > Running: git add -A
2020-11-15 03:06:02,422 autosynth [DEBUG] > Running: git status --porcelain
2020-11-15 03:06:02,457 autosynth [DEBUG] > Running: git commit -m fix: address lint issues

Source-Author: Leah E. Cole<EMAIL_ADDRESS>Source-Date: Thu Nov 12 11:30:49 2020 -0800
Source-Repo: googleapis/synthtool
Source-Sha: e89175cf074dccc4babb4eca66ae913696e47a71
Source-Link: https://github.com/googleapis/synthtool/commit/e89175cf074dccc4babb4eca66ae913696e47a71
[autosynth-container-82 7b04716b] fix: address lint issues
 1 file changed, 4 insertions(+), 4 deletions(-)
2020-11-15 03:06:02,478 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7b04716b fix: address lint issues
2020-11-15 03:06:02,511 autosynth [DEBUG] > Running: git checkout autosynth-container
Switched to branch 'autosynth-container'
2020-11-15 03:06:02,532 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- . :(exclude)synth.metadata
2020-11-15 03:06:02,536 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-82 -- synth.metadata
2020-11-15 03:06:02,540 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-83 -- . :(exclude)synth.metadata
2020-11-15 03:06:02,570 autosynth [DEBUG] > Running: git diff HEAD autosynth-container-83
2020-11-15 03:06:02,597 autosynth [DEBUG] > Running: git apply /tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch
/tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch:731: new blank line at EOF.
+
/tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch:753: new blank line at EOF.
+
/tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch:2144: new blank line at EOF.
+
/tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch:2373: new blank line at EOF.
+
/tmpfs/tmp/tmp24f90hti/autosynth-container-83.patch:2558: new blank line at EOF.
+
warning: squelched 27 whitespace errors
warning: 32 lines add whitespace errors.
2020-11-15 03:06:02,612 autosynth [DEBUG] > Running: git add -A
2020-11-15 03:06:02,651 autosynth [DEBUG] > Running: git status --porcelain
2020-11-15 03:06:02,693 autosynth [DEBUG] > Running: git commit -m feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications

PiperOrigin-RevId: 342116206

Source-Author: Google APIs<EMAIL_ADDRESS>Source-Date: Thu Nov 12 13:17:04 2020 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 75d1324fff65abad6435e6d501e050439b5a616b
Source-Link: https://github.com/googleapis/googleapis/commit/75d1324fff65abad6435e6d501e050439b5a616b
[autosynth-container c1109df9] feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
 90 files changed, 5598 insertions(+), 957 deletions(-)
 rewrite Container/metadata/V1/ClusterService.php (90%)
 create mode 100644 Container/src/V1/CloudRunConfig/LoadBalancerType.php
 create mode 100644 Container/src/V1/CloudRunConfig_LoadBalancerType.php
 create mode 100644 Container/src/V1/ConfigConnectorConfig.php
 create mode 100644 Container/src/V1/DefaultSnatStatus.php
 create mode 100644 Container/src/V1/DnsCacheConfig.php
 create mode 100644 Container/src/V1/GetJSONWebKeysRequest.php
 create mode 100644 Container/src/V1/GetJSONWebKeysResponse.php
 create mode 100644 Container/src/V1/GetOpenIDConfigRequest.php
 create mode 100644 Container/src/V1/GetOpenIDConfigResponse.php
 create mode 100644 Container/src/V1/Jwk.php
 create mode 100644 Container/src/V1/NodePool/UpgradeSettings.php
 create mode 100644 Container/src/V1/NodePool_UpgradeSettings.php
 create mode 100644 Container/src/V1/OperationProgress.php
 create mode 100644 Container/src/V1/OperationProgress/Metric.php
 create mode 100644 Container/src/V1/OperationProgress_Metric.php
 create mode 100644 Container/src/V1/PrivateClusterMasterGlobalAccessConfig.php
 create mode 100644 Container/src/V1/ReleaseChannel.php
 create mode 100644 Container/src/V1/ReleaseChannel/Channel.php
 create mode 100644 Container/src/V1/ReleaseChannel_Channel.php
 create mode 100644 Container/src/V1/ReservationAffinity.php
 create mode 100644 Container/src/V1/ReservationAffinity/Type.php
 create mode 100644 Container/src/V1/ReservationAffinity_Type.php
 create mode 100644 Container/src/V1/SandboxConfig.php
 create mode 100644 Container/src/V1/SandboxConfig/Type.php
 create mode 100644 Container/src/V1/SandboxConfig_Type.php
 create mode 100644 Container/src/V1/ServerConfig/ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ServerConfig_ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ShieldedNodes.php
 create mode 100644 Container/src/V1/WorkloadIdentityConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig/Mode.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig_Mode.php
2020-11-15 03:06:02,746 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-89 -- . :(exclude)synth.metadata
2020-11-15 03:06:02,750 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-89 -- synth.metadata
2020-11-15 03:06:02,754 autosynth [DEBUG] > Running: git log -1 --no-decorate --format=%B
2020-11-15 03:06:02,757 autosynth [DEBUG] > Running: git push --force origin autosynth-container
To https://github.com/googleapis/google-cloud-php.git
 + 2e1dd326...c1109df9 autosynth-container -> autosynth-container (forced update)
2020-11-15 03:06:06,632 autosynth [DEBUG] > Running: git log -1 --pretty=%b
2020-11-15 03:06:07,226 autosynth [ERROR] > Error making request (422): Validation Failed
2020-11-15 03:06:07,226 autosynth [DEBUG] > {'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'custom', 'field': 'title', 'message': 'title is too long (maximum is 256 characters)'}], 'documentation_url': 'https://docs.github.com/rest/reference/pulls#create-a-pull-request'}
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 127, in synthesize_loop_single_pr
    toolbox.push_changes(change_pusher)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 290, in push_changes
    pr = change_pusher.push_changes(self.commit_count, self.branch, pr_title)
  File "/tmpfs/src/github/synthtool/autosynth/change_pusher.py", line 106, in push_changes
    body=new_body,
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 94, in create_pull_request
    return cast(Dict, _get_json_or_raise_exception(response))
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 488, in _get_json_or_raise_exception
    response.raise_for_status()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.github.com/repos/googleapis/google-cloud-php/pulls

Google internal developers can see the full log here.

Autosynth is still having trouble generating container. :sob:
Here's the output from running synth.py:
:06:41,897 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at fbf3e3ba feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
2020-11-16 03:06:41,941 autosynth [DEBUG] > Running: git checkout autosynth-container
Switched to branch 'autosynth-container'
2020-11-16 03:06:41,977 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-83 -- . :(exclude)synth.metadata
2020-11-16 03:06:42,009 autosynth [DEBUG] > Running: git diff HEAD autosynth-container-83
2020-11-16 03:06:42,037 autosynth [DEBUG] > Running: git apply /tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch
/tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch:731: new blank line at EOF.
+
/tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch:753: new blank line at EOF.
+
/tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch:2144: new blank line at EOF.
+
/tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch:2373: new blank line at EOF.
+
/tmpfs/tmp/tmpazkzbsg7/autosynth-container-83.patch:2558: new blank line at EOF.
+
warning: squelched 27 whitespace errors
warning: 32 lines add whitespace errors.
2020-11-16 03:06:42,054 autosynth [DEBUG] > Running: git add -A
2020-11-16 03:06:42,096 autosynth [DEBUG] > Running: git status --porcelain
2020-11-16 03:06:42,138 autosynth [DEBUG] > Running: git commit -m feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications

PiperOrigin-RevId: 342116206

Source-Author: Google APIs<EMAIL_ADDRESS>Source-Date: Thu Nov 12 13:17:04 2020 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 75d1324fff65abad6435e6d501e050439b5a616b
Source-Link: https://github.com/googleapis/googleapis/commit/75d1324fff65abad6435e6d501e050439b5a616b
[autosynth-container 490731b7] feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
 90 files changed, 5598 insertions(+), 957 deletions(-)
 rewrite Container/metadata/V1/ClusterService.php (90%)
 create mode 100644 Container/src/V1/CloudRunConfig/LoadBalancerType.php
 create mode 100644 Container/src/V1/CloudRunConfig_LoadBalancerType.php
 create mode 100644 Container/src/V1/ConfigConnectorConfig.php
 create mode 100644 Container/src/V1/DefaultSnatStatus.php
 create mode 100644 Container/src/V1/DnsCacheConfig.php
 create mode 100644 Container/src/V1/GetJSONWebKeysRequest.php
 create mode 100644 Container/src/V1/GetJSONWebKeysResponse.php
 create mode 100644 Container/src/V1/GetOpenIDConfigRequest.php
 create mode 100644 Container/src/V1/GetOpenIDConfigResponse.php
 create mode 100644 Container/src/V1/Jwk.php
 create mode 100644 Container/src/V1/NodePool/UpgradeSettings.php
 create mode 100644 Container/src/V1/NodePool_UpgradeSettings.php
 create mode 100644 Container/src/V1/OperationProgress.php
 create mode 100644 Container/src/V1/OperationProgress/Metric.php
 create mode 100644 Container/src/V1/OperationProgress_Metric.php
 create mode 100644 Container/src/V1/PrivateClusterMasterGlobalAccessConfig.php
 create mode 100644 Container/src/V1/ReleaseChannel.php
 create mode 100644 Container/src/V1/ReleaseChannel/Channel.php
 create mode 100644 Container/src/V1/ReleaseChannel_Channel.php
 create mode 100644 Container/src/V1/ReservationAffinity.php
 create mode 100644 Container/src/V1/ReservationAffinity/Type.php
 create mode 100644 Container/src/V1/ReservationAffinity_Type.php
 create mode 100644 Container/src/V1/SandboxConfig.php
 create mode 100644 Container/src/V1/SandboxConfig/Type.php
 create mode 100644 Container/src/V1/SandboxConfig_Type.php
 create mode 100644 Container/src/V1/ServerConfig/ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ServerConfig_ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ShieldedNodes.php
 create mode 100644 Container/src/V1/WorkloadIdentityConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig/Mode.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig_Mode.php
2020-11-16 03:06:42,194 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-84 -- . :(exclude)synth.metadata
2020-11-16 03:06:42,199 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-84 -- synth.metadata
2020-11-16 03:06:42,203 autosynth [DEBUG] > Running: git diff autosynth-container-84..autosynth-container-90 -- . :(exclude)synth.metadata
2020-11-16 03:06:42,207 autosynth [DEBUG] > Running: git diff autosynth-container-84..autosynth-container-90 -- synth.metadata
2020-11-16 03:06:42,212 autosynth [DEBUG] > Running: git log -1 --no-decorate --format=%B
2020-11-16 03:06:42,216 autosynth [DEBUG] > Running: git push --force origin autosynth-container
To https://github.com/googleapis/google-cloud-php.git
 + c1109df9...490731b7 autosynth-container -> autosynth-container (forced update)
2020-11-16 03:06:46,683 autosynth [DEBUG] > Running: git log -1 --pretty=%b
2020-11-16 03:06:47,215 autosynth [ERROR] > Error making request (422): Validation Failed
2020-11-16 03:06:47,215 autosynth [DEBUG] > {'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'custom', 'field': 'title', 'message': 'title is too long (maximum is 256 characters)'}], 'documentation_url': 'https://docs.github.com/rest/reference/pulls#create-a-pull-request'}
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 127, in synthesize_loop_single_pr
    toolbox.push_changes(change_pusher)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 290, in push_changes
    pr = change_pusher.push_changes(self.commit_count, self.branch, pr_title)
  File "/tmpfs/src/github/synthtool/autosynth/change_pusher.py", line 106, in push_changes
    body=new_body,
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 94, in create_pull_request
    return cast(Dict, _get_json_or_raise_exception(response))
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 488, in _get_json_or_raise_exception
    response.raise_for_status()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.github.com/repos/googleapis/google-cloud-php/pulls

Google internal developers can see the full log here.

Autosynth is still having trouble generating container. :sob:
Here's the output from running synth.py:
 feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
2020-11-17 03:06:37,477 autosynth [DEBUG] > Running: git checkout autosynth-container
Switched to branch 'autosynth-container'
2020-11-17 03:06:37,507 autosynth [DEBUG] > Running: git diff HEAD..autosynth-container-83 -- . :(exclude)synth.metadata
2020-11-17 03:06:37,537 autosynth [DEBUG] > Running: git diff HEAD autosynth-container-83
2020-11-17 03:06:37,565 autosynth [DEBUG] > Running: git apply /tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch
/tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch:731: new blank line at EOF.
+
/tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch:753: new blank line at EOF.
+
/tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch:2144: new blank line at EOF.
+
/tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch:2373: new blank line at EOF.
+
/tmpfs/tmp/tmp5s1us_0i/autosynth-container-83.patch:2558: new blank line at EOF.
+
warning: squelched 27 whitespace errors
warning: 32 lines add whitespace errors.
2020-11-17 03:06:37,579 autosynth [DEBUG] > Running: git add -A
2020-11-17 03:06:37,617 autosynth [DEBUG] > Running: git status --porcelain
2020-11-17 03:06:37,657 autosynth [DEBUG] > Running: git commit -m feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications

PiperOrigin-RevId: 342116206

Source-Author: Google APIs<EMAIL_ADDRESS>Source-Date: Thu Nov 12 13:17:04 2020 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 75d1324fff65abad6435e6d501e050439b5a616b
Source-Link: https://github.com/googleapis/googleapis/commit/75d1324fff65abad6435e6d501e050439b5a616b
[autosynth-container d48f699b] feat: sync v1 GKE API fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
 90 files changed, 5598 insertions(+), 957 deletions(-)
 rewrite Container/metadata/V1/ClusterService.php (90%)
 create mode 100644 Container/src/V1/CloudRunConfig/LoadBalancerType.php
 create mode 100644 Container/src/V1/CloudRunConfig_LoadBalancerType.php
 create mode 100644 Container/src/V1/ConfigConnectorConfig.php
 create mode 100644 Container/src/V1/DefaultSnatStatus.php
 create mode 100644 Container/src/V1/DnsCacheConfig.php
 create mode 100644 Container/src/V1/GetJSONWebKeysRequest.php
 create mode 100644 Container/src/V1/GetJSONWebKeysResponse.php
 create mode 100644 Container/src/V1/GetOpenIDConfigRequest.php
 create mode 100644 Container/src/V1/GetOpenIDConfigResponse.php
 create mode 100644 Container/src/V1/Jwk.php
 create mode 100644 Container/src/V1/NodePool/UpgradeSettings.php
 create mode 100644 Container/src/V1/NodePool_UpgradeSettings.php
 create mode 100644 Container/src/V1/OperationProgress.php
 create mode 100644 Container/src/V1/OperationProgress/Metric.php
 create mode 100644 Container/src/V1/OperationProgress_Metric.php
 create mode 100644 Container/src/V1/PrivateClusterMasterGlobalAccessConfig.php
 create mode 100644 Container/src/V1/ReleaseChannel.php
 create mode 100644 Container/src/V1/ReleaseChannel/Channel.php
 create mode 100644 Container/src/V1/ReleaseChannel_Channel.php
 create mode 100644 Container/src/V1/ReservationAffinity.php
 create mode 100644 Container/src/V1/ReservationAffinity/Type.php
 create mode 100644 Container/src/V1/ReservationAffinity_Type.php
 create mode 100644 Container/src/V1/SandboxConfig.php
 create mode 100644 Container/src/V1/SandboxConfig/Type.php
 create mode 100644 Container/src/V1/SandboxConfig_Type.php
 create mode 100644 Container/src/V1/ServerConfig/ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ServerConfig_ReleaseChannelConfig.php
 create mode 100644 Container/src/V1/ShieldedNodes.php
 create mode 100644 Container/src/V1/WorkloadIdentityConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig/Mode.php
 create mode 100644 Container/src/V1/WorkloadMetadataConfig_Mode.php
2020-11-17 03:06:37,708 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-85 -- . :(exclude)synth.metadata
2020-11-17 03:06:37,712 autosynth [DEBUG] > Running: git diff autosynth-container-83..autosynth-container-85 -- synth.metadata
2020-11-17 03:06:37,715 autosynth [DEBUG] > Running: git diff autosynth-container-85..autosynth-container-88 -- . :(exclude)synth.metadata
2020-11-17 03:06:37,718 autosynth [DEBUG] > Running: git diff autosynth-container-85..autosynth-container-88 -- synth.metadata
2020-11-17 03:06:37,722 autosynth [DEBUG] > Running: git diff autosynth-container-88..autosynth-container-94 -- . :(exclude)synth.metadata
2020-11-17 03:06:37,725 autosynth [DEBUG] > Running: git diff autosynth-container-88..autosynth-container-94 -- synth.metadata
2020-11-17 03:06:37,728 autosynth [DEBUG] > Running: git log -1 --no-decorate --format=%B
2020-11-17 03:06:37,731 autosynth [DEBUG] > Running: git push --force origin autosynth-container
To https://github.com/googleapis/google-cloud-php.git
 + 490731b7...d48f699b autosynth-container -> autosynth-container (forced update)
2020-11-17 03:06:41,893 autosynth [DEBUG] > Running: git log -1 --pretty=%b
2020-11-17 03:06:42,412 autosynth [ERROR] > Error making request (422): Validation Failed
2020-11-17 03:06:42,412 autosynth [DEBUG] > {'message': 'Validation Failed', 'errors': [{'resource': 'Issue', 'code': 'custom', 'field': 'title', 'message': 'title is too long (maximum is 256 characters)'}], 'documentation_url': 'https://docs.github.com/rest/reference/pulls#create-a-pull-request'}
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 104, in synthesize_loop
    return synthesize_loop_single_pr(toolbox, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 127, in synthesize_loop_single_pr
    toolbox.push_changes(change_pusher)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 290, in push_changes
    pr = change_pusher.push_changes(self.commit_count, self.branch, pr_title)
  File "/tmpfs/src/github/synthtool/autosynth/change_pusher.py", line 106, in push_changes
    body=new_body,
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 94, in create_pull_request
    return cast(Dict, _get_json_or_raise_exception(response))
  File "/tmpfs/src/github/synthtool/autosynth/github.py", line 488, in _get_json_or_raise_exception
    response.raise_for_status()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://api.github.com/repos/googleapis/google-cloud-php/pulls

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


[Doris On ES] [Bug-Fix][Refactor] Fix potential null pointer exception and refactor function process logic

fix: https://github.com/apache/incubator-doris/issues/3984

add conjunct.size checking and slot_desc nullptr checking logic
For historical reasons, the function predicates are added one by one, I just refactor the processing make thelogic for function predicate processing more clearly

@blackfox1983 done


[Network] Close bastion session from cli

Description
Clean up the Bastion session established from the az cli after disconnecting.
Testing Guide
Azure SSH

Connect to an existing VM via az network bastion ssh
Verify session in the Azure portal
Exit the session from the command line by typing exit and pressing enter
Verify session is no longer present in Azure portal

Azure tunnel + SSH exit

Establish a tunnel to an existing VM via az network bastion tunnel
SSH into the VM (e.g., via putty)
Verify session in the Azure portal
Exit from the SSH session
Verify session is no longer present in Azure portal

Azure tunnel + SSH close tunnel

Establish a tunnel to an existing VM via az network bastion tunnel
SSH into the VM (e.g., via putty)
Verify session in the Azure portal
Close the tunnel as specified with "Ctrl + C"
Verify session is no longer present in Azure portal

History Notes

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

@jsntcy @kairu-ms @wangzelin007 I'm not entirely sure why the docker build is failing. Based on the logs, it seems like a dependency conflict, but nothing in my changes should've caused that.

We will take a look after public holiday (1.31-2.6).

/azp run

@AndrewRobie,
May I ask whether this pr is customer-facing?

/azp run


DSKaKhel: Array

HacktoberFest 21
DSKaKhel: Array
Data Structure Implementation you like to add
Array
Programming Language for Data Structure Implementation
Python
Code file name with extension
Rearrange_Array_Alternately.py
Do you like to code or playing computer games like GTA5
No
If Yes, mention your favourite Game (optional)
Tennis
YOU ARE
a student
GITHUB USERNAME
shraiyya
We are looking for a cool name for this repository for next hacktober fest please suggest below (optional)
_____________
Thanks for your contributions !!

Please do the PR changes ASAP @shraiyya otherwise this PR will get expired & then you have to submit new PR

I have updated the PR. Please Check


Updated endpoint URL for wallet_fetchPermissions

rpc.wallet.coinbase.com is live! This URL is a bit clearer in naming than the old one and will be more commonly used in the future.

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
1

Sum
2


XenServer gets in bad state if VM template install interrupted

When a VM template install is interrupted, the template shows up on XenCenter but it can't be deleted via the UI.  This is likely to happen fairly often in the wild.  We need a way to identify partial templates and then delete them.  Here are some XE commands to do this:
xe template-param-set other-config:default_template=false uuid=[uuid]
xe template-param-set is-a-template=false uuid=[uuid]
xe vm-reset-powerstate uuid=[uuid]
xe vm-destroy uuid=[uuid]

XenServer does end up dealing with interrupted template installs.  I didn't immediately realize that the xe command process installing the template was still running after I terminated cluster setup.  Once I terminated the command, XenServer removed the partial upload.


Singleton manifest

Hey @owais
I was hoping to use your lib with a decoupled app which ships with pre-built bundles. As far as I can tell, it only allows you to use a single manifest, which looks like it'd preclude any other apps from trying to use the loader.
Is there anyway to override the manifest path?
Something like the following would be cool
import os
from webpack_loader.utils import read_bundle_from_manifest

manifest_path = os.path.join(os.path.dirname(__file__), 'webpack-manifest.json')

bundle = read_bundle_from_manifest(manifest_path)

bundle.render_css()
bundle.render_js()

or even
{% load render_bundle from webpack_loader %}

{% render_bundle 'main' 'css' path_to_manifest %}
{% render_bundle 'main' 'js' path_to_manifest %}

As a temporary work around, I've ended up just hard-coding the paths and letting django-compressor generate hashed file names. Sadly though, this breaks url(..) refs in the css :(

Would something like,
WEBPACK_LOADER = {
    'STATS_FILES': {
          'default': os.path.join(BASE_DIR, 'webpack-stats.json'),
          'internal-app': os.path.join(BASE_DIR, 'webpack-stats-internal.json')
     }
}

and then
{% render_bundle 'main' 'css'  %} # would load from default
{% render_bundle 'main' 'css'  'internal-app' %}

solve it?

I think that would solve some of the problem, and it would also make it easier for projects that are consuming an app to override parts of it.
That being said, I'm a bit unsure about a decoupled app relying on both constants and paths that are defined in a downstream project's settings. For this particular use-case it would make it difficult to have pre-built bundles & stats living in a virtualenv somewhere, so it looks like you'd lose a lot of portability. I suppose you could introspect an app to resolve a path, with the cost that there's more magic in your setting files.

Hmm. I'm not sure I understand the problem completely but looks like you want to ship a python module which includes a pre-built bundle as a data file and then want to be able to use this pre-built module in the actual project. If that's what you are doing then I'm not sure how django-webpack-loader can help. In my mind, the use upstream package used webpack-loaded only during development and then ships the pre-built bundle at a standard location or provides a custom python function to get hold of the bundle. if the package is a django app, it could ship the pre-built bundle as part of staticfiles as well and get django integration for free. I'm not sure if webpack-loader should care about loading bundles shipped with other apps.

Fair enough - I've ended up hard-coding the urls so it's all good.
Primarily, I was hoping to use your lib as a hook to easily pull in files with hashed paths, the benefit being cache busting on deployments. But, I suppose compressor will work just as well.
Thanks @owais


Spectrum responds to actions

[x]  Spectrum has animated state when passive

[x] Spectrum has excited animated state when the user starts dragging a card

[ ] Spectrum has animated victory state when the user drops a card

I might be a bit early with this, but just to make sure we are on the same page: I imagine the following states for the dropZone, depending on the position of the DraggableItem:

DraggableItem is not dragged && outside dropZone (currently gets no state classes)
DraggableItem is dragged && outside dropZone (currently gets no state classes)
DraggableItem is dragged && inside dropZone (currently gets class .can-drop)
DraggableItem is dropped inside dropZone (currently gets class .dropped)

I think we want to give visual feedback of:

state 2 to communicate to the user that they should drag the card to the dropZone. I think animation can help here.
state 3 to communicate to the user that they they have reached a region where they can drop. I think animation can help here.
state 4 (I think this is covered by Card absorbing gradient). I am not sure if we need animation in this state.

I think that in state 1 the dropZone should not be animated, because we want to guide the user's focus towards the card, not the dropZone.


Nexus: A GPU Cluster for Accelerating Neural Networks for Video Analysis

https://pdfs.semanticscholar.org/0c0f/353dbac84311ea4f1485d4a8ac0b0459be8c.pdf

dup with #172


Add "Monster money" next to mon

Suggestion/information improvement
I've been spending hours trying to figure out what kind of variable 'Mon' was. Since is a very specific value and not really representative of the whole game, I would suggest to add some extra information next to it, to make it clearer.

If you haven't encountered the salesman requiring Mon then it's a bit of a safeguard towards spoiling that aspect of the game. Anyone can easily search up what Mon for BOTW is but nobody can erase their memory if mon was given a description in the trainer.

I will update the labels at some point and add tooltips with more info. Using the trainer is  spoiling the game so i wont hide anything form anyone.

i want to add that some concepts (since the language of the game is not English for me) seem confusing. I see Master Charge there but I have no idea what is that supposed to do. (excuse me if that's my fault).

I have  added some  tooltips on the codes tab


Syslog format, nxstyle fixes, remove non-ascii characters

Summary
Extracted from https://github.com/apache/incubator-nuttx/pull/2347
Impact
Testing

nxstyle errors in drivers/video/ov2640.c are left because i'm not sure
how they should be fixed.
These are initializers like:
  {0xff, 0x00},  {0x2c, 0xff},  {0x2e, 0xdf},  {0xff, 0x01},  {0x3c, 0x32},
  {0x11, 0x00},  {0x09, 0x02},  {0x04, 0x28},  {0x13, 0xe5},  {0x14, 0x48},
  {0x2c, 0x0c},  {0x33, 0x78},  {0x3a, 0x33},  {0x3b, 0xfb},  {0x3e, 0x00},
  {0x43, 0x11},  {0x16, 0x10},  {0x39, 0x02},  {0x35, 0x88},  {0x22, 0x0a},

 drivers/video/ov2640.c:309:16: error: Left bracket not on separate line

The following nxstyle errors are not trivial to fix because
they are parts of the ioctl api.
drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c:1083:34: error: Mixed case identifier found
drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c:1445:7: error: Mixed case identifier found


feat: support angular 9

JIRA: https://jira.appcelerator.org/browse/FRAME-12

[x] Update to Angular 9
[x] Use new Webpack build from SDK 9.1.0
[x] Update sample app

@ewanharris removed the debug logs and useless comments you found.
Any todo/fixme comments are for future work, yeah. I'm not sure if all are up-to-date so i need to go through them and create tickets for the ones that are still relevant.


HTTP tracing not picking up traffic on Python3 app

Describe the bug
Pixie does not appear to trace the HTTP traffic from this particular demo app: https://github.com/speedscale/demo-hackernews
It does pick up the network and process stats for the pod. Also, other HTTP calls made from other apps in the cluster do appear.
To Reproduce
Steps to reproduce the behavior:

Deploy the demo app via the yaml in the repo to a cluster running Pixie
Forward the port to create traffic: kubectl port-forward hndemo-<...> 8080
Create HTTP requests: curl <IP_ADDRESS>:8080/test
Go to px/pod in the Live UI - notice that network I/O shows up but no HTTP requests.

Expected behavior
I expect HTTP request/response data to appear in the px/pod and px/http_data dashboards.
Screenshots

Logs
pixie_logs_20211209150610.zip
App information (please complete the following information):

Pixie version
➜  ~ git:(master) ✗ px version
Pixie CLI
0.7.1+Distribution.04212ae.20211109163321.1

K8s cluster version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.4", GitCommit:"b695d79d4f967c403a96986f1750a35eb75e75f1", GitTreeState:"clean", BuildDate:"2021-11-17T15:41:42Z", GoVersion:"go1.16.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.7-eks-d88609", GitCommit:"d886092805d5cc3a47ed5cf0c43de38ce442dfcb", GitTreeState:"clean", BuildDate:"2021-07-31T00:29:12Z", GoVersion:"go1.15.12", Compiler:"gc", Platform:"linux/amd64"}

Node Kernel version
unknown

Browser version
Chrome (latest)

It makes sense that this might be an edge case because the demo app is so trivial. I'll put in this workaround. Thanks Ryan!

Fix in 7e4a9a9a5a435c0d27.


New release (v2.2.1)

Hey @vlucas!
I think we should release a new version as we discussed it previously.
What do you think?

Should I publish the new release?

I would like to see the new version, at the moment I am using the dev-master version from composer.

Yes I agree. Publish away, please! Do you have access to composer to do that as well?

Released v2.2.1
No, I don't have access to composer.

As I read "Major Changes" and "Add" in the changelog shouldn't it be 2.3 already? New features are minor releases.

In the next major release (v2.3)...
2.3 is called minor and 3.0 major. :grinning:

Thanks for the input. I followed the previous versioning convention, but you have a point at the v2.3 argument. (Updated the description btw.) I don't think that this release should be 2.3 or 3.0.


pre-programmed firmware

Hi all,
I would like to run Thunderboard application (https://play.google.com/store/apps/details?id=com.silabs.thunderboard) but I cannot find original program (pre-programmed firmware). Where can I download original program in binary format which I would just load to the microcontroller?
Thanks for your response.

Hi,
You need to install Simplicity Studio 5 and then install the Bluetooth SDK within that. When you connect your Thunderboard kit into the PC go to the Example Projects & Demos and you can flash the Thunderboard demo.


Allow event owner to add links to resources

As a owner i should be able to add link to one or more resources like presentation, github repo, link to video recording

Very much a fan of this feature :) Maybe we even could have som kind of reminder after event. This would be great in combination with #46


@conda-forge-admin, please add user @adament

Additional comment:
No response

We usually ask people to send a PR fixing the feedstock first before asking to become maintainers. Can you do that?

Thank you, yes I have made one in #12 which updates the package version and fixes the linter issues.


Problem with RFLink sensors and aliases

I have a problem with aliases for sensors using RFLink.py
I run hass.io version 0.78.0 on a rpi 3 with an RFLink connected to it. I have a cotech temperature sensor bought from Clas Ohlson.
https://www.clasohlson.com/se/Extra-temperaturgivare-hygrometer/36-6726
The sensor is shown as multiple, at least two, instances in HA. It changes to witch it syncs to.  sometimes it syncs to "xiron_7101_temp" and sometimes to "tunex_7101_temp". I have added "tunex_7101_temp" an an alias to "xiron_7101_temp" as seen below. That seems to sync the data to the "xiron_7101_temp" instance but "tunex_7101_temp" is still shown as an separate sensor in HA.
I have added this under sensor: in configuration.yaml witch works since it automatically adds the sensors.
- platform: rflink
  automatic_add: true
  devices:
    xiron_7101_temp:
      name: outside_greenhouse_temperature
      sensor_type: temperature
      aliases:
        - tunex_7101_temp

When adding IDs as aliases to a light, the alias ID doesn't show anymore in HA, shouldn't it do the same for sensors?
Another question, why does it appear as multiple sensors and not just as one?
Thanks for the help!

Same problem here.
I'm pretty sure that my configuration was working in hass.io 0.76.X (RFlink with 1 sensor in my case):
  - platform: rflink
    automatic_add: false
    devices:
      tunex_c001_temp:
        sensor_type: temperature
        aliases:
          - xiron_4001_temp
      tunex_c001_hum:
        sensor_type: humidity
        aliases:
          - xiron_4001_hum
      tunex_c001_bat:
        sensor_type: battery
        aliases:
          - xiron_4001_bat

After that I have updated until version 0.77.3 and aggregate a new sensor.
Looking for the device_id (and aliases) to setup in my config I just activate the flag automatic_add: true
After HA restart, 3 new devices groups appears (I mean groups because every device add 3 sensors: hum, bat, temp). 2 groups belongs to my new sensor (tunex_d002_XXX + xiron_5002_XXX) and 1 group for the alias already configured in the existing device (xiron_4001_XXX)
After write down my new configuration, I put to false automatic_add and restart HA.
Now HA only sync data from the configured devices, and aliases don't change the entity satate.
dev-state page only show configured entities (not alias entities). I think it's correct
sensor.tunex_c001_bat | ok | friendly_name: Bat. sensor enanos icon: mdi:battery
sensor.tunex_c001_hum | 73 | unit_of_measurement: % friendly_name: Hum. enanos icon: mdi:water-percent
sensor.tunex_c001_temp | 27.2 | unit_of_measurement: °C friendly_name: Temp. enanos icon: mdi:thermometer
sensor.tunex_d002_bat | ok | friendly_name: Bat. sensor externo icon: mdi:battery
sensor.tunex_d002_hum | 78 | unit_of_measurement: % friendly_name: Hum. externa icon: mdi:water-percent
sensor.tunex_d002_temp | 23.9 | unit_of_measurement: °C friendly_name: Temp. externa icon: mdi:thermometer

If I activate debug logs, shows messages like these ones:
[homeassistant.components.rflink] event of type sensor: {'id': 'tunex_c001_temp', 'sensor': 'temperature', 'value': 27.1, 'unit': '°C'}
[homeassistant.components.rflink] passing event to [<Entity tunex_c001_temp: 27.1>]
[homeassistant.components.rflink] event of type sensor: {'id': 'tunex_c001_hum', 'sensor': 'humidity', 'value': 73, 'unit': '%'}
[homeassistant.components.rflink] passing event to [<Entity tunex_c001_hum: 73>]
[homeassistant.components.rflink] event of type sensor: {'id': 'tunex_c001_bat', 'sensor': 'battery', 'value': 'ok', 'unit': None}
[homeassistant.components.rflink] passing event to [<Entity tunex_c001_bat: ok>]
[homeassistant.components.rflink] event of type sensor: {'id': 'xiron_5002_temp', 'sensor': 'temperature', 'value': 24.2, 'unit': '°C'}
[homeassistant.components.rflink] device_id not known, adding new device
[homeassistant.components.rflink] event of type sensor: {'id': 'xiron_5002_hum', 'sensor': 'humidity', 'value': 78, 'unit': '%'}
[homeassistant.components.rflink] device_id not known, adding new device
[homeassistant.components.rflink] event of type sensor: {'id': 'xiron_5002_bat', 'sensor': 'battery', 'value': 'ok', 'unit': None}
[homeassistant.components.rflink] device_id not known, adding new device

my suspicions centered on having added the alias as a new device in HA, but I'm not sure.
It is possible that in some of the updates from 0.76.X the aliases stopped working without having made configuration changes and I have not noticed.

I just open another issue with full info: #16790
Both are related (or the same), but I think it's better to open another ticket with all the information before including it in a comment.

There are three reasons the phenomenon would happen:

Due to poor reception, the received ID is unreliably decoded
Bugs / incorrect design in RFLink, where length of pulses is used as a heuristic to choose a protocol name, e.g. Xiron / Tunex
After battery replacement a new random ID is generated by some temperature/hygrometer sensors

As long as it's not just 1 which is the real issue, it makes sense to fix the support for aliases in the sensor class, I'll try to have a look.