chart: Add service monitor and remove kube_rbac_proxy leftovers

Remove rbac-proxy leftovers from #511 and add serviceMonitor support.
Bump chart minor version

@mumoshu Hi, can this be released sooner than the new controller?

Pretty sure you can't do that. The CRDs have been updated and so the chart will fall over if someone deploys the new version but against with the old app code.

Thanks for the quick work on this issue. -)
I've been testing the metrics with the change chart: Allow to disabling kube-rbac-proxy and expose metrics #511 and found a couple of problems that i don't think are fully addressed here.
I had to change auth_proxy_service.yaml to
apiVersion: v1
kind: Service
metadata:
labels:
{{- include "actions-runner-controller.labels" . | nindent 4 }}
name: {{ include "actions-runner-controller.authProxyServiceName" . }}
namespace: {{ .Release.Namespace }}
spec:
ports:
{{- if .Values.kube_rbac_proxy.enabled }}

name: https
port: 8443
targetPort: https
{{- else }}
name: http
port: 8080
targetPort: http
{{- end }}
selector:
{{- include "actions-runner-controller.selectorLabels" . | nindent 4 }}

and change deployment.yaml to
ports:
- containerPort: 9443
name: webhook-server
protocol: TCP
{{- if not .Values.kube_rbac_proxy.enabled }}
- containerPort: 8080
name: http
protocol: TCP
{{- end }}
just making the above changes will fix Allow to disabling kube-rbac-proxy and expose metrics #511 and happy to put a PR in if that's helpful.
you can see my corrected helm chart at https://neillturner.github.io/helm-charts
chart: actions-runner-controller
version: "0.11.5"
see the index at https://neillturner.github.io/helm-charts/index.yaml
this works for just have port 8080 as the metrics port.
I appreciate you trying to make the metrics port configurable and im not expert at writing helm charts but i think to do that
values.yaml needs to be:
metrics:
serviceMonitor: false
port: 8080
so it has a default value of 8080
also in deployment.yaml
{{- if not .Values.kube_rbac_proxy.enabled }}
- containerPort: 8443
name: {{ .Values.metrics.port }}
protocol: TCP
{{- end }}
needs to be
- containerPort: {{ .Values.metrics.port }}
name: http
protocol: TCP
I don't fully understand the service monitor configuration but assume you understand that better then me.
happy test out your changes. -)
Hope that's helpful
Neill Turner

@neillturner I think this PR should fix the port issues you've mentioned. It switches the metrics port from 8080 to 8443.
Your ref says 9443 which is definitely a typo in my previous PR.
The port number isn't configurable. Only the port name so its use is clearer

@neillturner I think this PR should fix the port issues you've mentioned. It switches the metrics port from 8080 to 8443.
Your ref says 9443 which is definitely a typo in my previous PR.
The port number isn't configurable. Only the port name so its use is clearer
I've verified that the serviceMonitor works for me using the following values:
          kube_rbac_proxy:
            enabled: false
          metrics:
            serviceMonitor: true

I prefer to have metric point at 8080 as we have network rules to allow that access on kubernetes

@neillturner I agree that configuring the metrics port is a nice addition.
Can you please add a PR against my own branch to extend this functionality?

@neillturner I agree that configuring the metrics port is a nice addition.
Can you please add a PR against my own branch to extend this functionality?

ok - give me a day or 2 to develop and test. -)

when i tested this with
metrics:
serviceMonitor: true
i get error  no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1
So this doesn't look to me a very reliable change

when i tested this with
   kube_rbac_proxy:
      enabled: false
    metrics:
      serviceMonitor: true

i get error no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1
So this doesn't look to me a very reliable change
seems others have this problem
https://stackoverflow.com/questions/51095556/servicemonitor-not-found-in-monitoring-coreos-com-v1

Yes, you can only use the serviceMonitor CR if you have the prometheus-operator's CRDs. This is why the serviceMonitor flag is disabled by default

@mumoshu done. checkout the new values tree

when i tested this with
   kube_rbac_proxy:
      enabled: false
    metrics:
      serviceMonitor: true

i get error no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1
So this doesn't look to me a very reliable change
seems others have this problem
https://stackoverflow.com/questions/51095556/servicemonitor-not-found-in-monitoring-coreos-com-v1

Yes, you can only use the serviceMonitor CR if you have the prometheus-operator's CRDs. This is why the serviceMonitor flag is disabled by default

but i do have prometheus server installed.
i used
helm repo: https://prometheus-community.github.io/helm-charts
chart: prometheus
version: "13.2.1"
but i'm not using the full prometheus stack
chart: kube-prometheus-stack
as i'm forwarding to AWS managed prometheus -)

@neillturner serviceMonitor is used by prometheus-operator.
I'm guessing you are looking for a different way. i.e. annotating the service/pod/deployment with some scrape: true annotation to tell prometheus to scrape this service. Maybe add this to the chart?
As for controlling the port number - WDYT about my latest commit? Does it answer your need?

@neillturner serviceMonitor is used by prometheus-operator.
I'm guessing you are looking for a different way. i.e. annotating the service/pod/deployment with some scrape: true annotation to tell prometheus to scrape this service. Maybe add this to the chart?
As for controlling the port number - WDYT about my latest commit? Does it answer your need?

yes that good that metric port is configurable but i still can't use this chart as i'm installing prometheus with

@neillturner serviceMonitor is used by prometheus-operator.
I'm guessing you are looking for a different way. i.e. annotating the service/pod/deployment with some scrape: true annotation to tell prometheus to scrape this service. Maybe add this to the chart?
As for controlling the port number - WDYT about my latest commit? Does it answer your need?

yes that good that metric port is configurable but i still can't use this chart as i'm installing prometheus with
https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus which doesn't install the custom resouces like
https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack. which is new name for prometheus operator.

it would be good to change the first line of serviceMonitor.yaml
from
{{- if .Values.metrics.serviceMonitor }}
to
{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.metrics.serviceMonitor ) }}
that way the service monitor won't be created if the crd it relies on is not defined. otherwise the chart breaks if the full prometheus operator is not already installed in k8s.
hope that helpful. It would enable me to use the updated chart as i don't install the full prometheus stack. -)

@neillturner the serviceMonitor will not be created unless explicitly asked for (--set metrics.serviceMonitor=true).
Do we have to defend it using the .Capabilities as well?

Only issue is  Values.metrics.serviceMonitor needs to be enabled to define metrics-port in githubwebhook.service.yaml.
Not sure of implications of that.
Its good programming practice to  defend it using the .Capabilities as it stops it breaking -)

it would be good to change the first line of serviceMonitor.yaml
from
{{- if .Values.metrics.serviceMonitor }}
to
{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) ( .Values.metrics.serviceMonitor ) }}
that way the service monitor won't be created if the crd it relies on is not defined. otherwise the chart breaks if the full prometheus operator is not already installed in k8s.
hope that helpful. It would enable me to use the updated chart as i don't install the full prometheus stack. -)

@neillturner the serviceMonitor will not be created unless explicitly asked for (--set metrics.serviceMonitor=true).
Do we have to defend it using the .Capabilities as well?

Only issue is Values.metrics.serviceMonitor needs to be enabled to define metrics-port in githubwebhook.service.yaml.
Not sure of implications of that.
Its good programming practice to defend it using the .Capabilities as it stops it breaking -)

i tested this chart and it works well
just specified:
    metrics:
      serviceMonitor: false
      port: 8080
      proxy:
        enabled: false

and can access metrics (when installed in the actions-runner-system namespace) from
http://actions-runner-controller-metrics-service.actions-runner-system:8080/metrics
Thanks
for all your work -)
look forward to merge and deployment -)

@mumoshu can we plz merge this?

@yfried Hey! Could you hold on several days? This triggers a new chart release once merged. And I'd like to pend the next chart release until we release the controller v0.19.0, because there's a lot of changes in the chart that makes sense only with the next controller release.

@mumoshu Sure, I'll wait.
Just wanted to make sure this PR is good to go.

LGTM, I've reverted the Chart version bump so we can get this merged in preparation for a chart release. We are currently working on this and hope to release a new chart soon. The current process causes issues as the solution needs some specific release notes attached with releases.


Dash.js integration

Is/Will there be any documentation on how to integrate with Dash.js/API?
I am currently leveraging Html5DashJS.useVideoJSDebug (https://github.com/videojs/videojs-contrib-dash/blob/master/src/js/videojs-dash.js#L74)
Are there other integration points within the tech?

Here is my current implementation to disable logging.
import 'dashjs';
import 'video.js';
import 'videojs-contrib-dash/dist/videojs-dash.js';

videojs.Html5DashJS.useVideoJSDebug = function (player) {
  // https://github.com/Dash-Industry-Forum/dash.js/blob/development/samples/getting-started-basic-embed/listening-to-events.html#L17
  player.getDebug().setLogToBrowserConsole(false);
};

Knowing that there is a open ES6 PR, are there plans to handle this differently?

Somewhat seemingly related to https://github.com/videojs/videojs-contrib-dash/pull/38#issuecomment-184614755.

I think we should have a sourceHandler option for logging and other setup options (see https://github.com/videojs/video.js/issues/2616). We still need to figure out a way to exposure the active sourceHandler through the player.

@forbesjo secondarily, would it be possible to add separate examples for browserify and webpack?
Not sure if you would rather it be baked into grunt or have separate example/ folder.
My current webpack implementation can be setup to work with v2.1.0 OR the browserify version.
(my repo is going to break as soon as master gets released)

We just need to update our build scripts and remove browserify shim from dependencies and from the browserify config in the package.json and only use it when building the dist file.

@chemoish I will open a PR for contrib-dash similar to https://github.com/brightcove/videojs-playlist/pull/44

@chemoish a new version of this plugin has been released with the browserify changes, does this help with your development workflow?

I am going to be out for a few days, but I'll check Monday. Thanks!
Also, would you be against me adding something similar to…
https://github.com/Dash-Industry-Forum/dash.js/tree/development/samples/modules/webpack?

@forbesjo Thanks.
-import 'dashjs';
-import 'expose?videojs!video.js';
 import 'video.js/dist/video-js.css';
 import 'videojs-contrib-dash';
+import videojs from 'video.js';

window.videojs = videojs;

Has this issue been closed because it is resolved? The above configuration is not working for me. Is there an example project somewhere that I could have a look at? thanks


[utility]: Change behavior of main thread verification utility

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Commit Message: Change the behavior of main thread checking utility(https://github.com/envoyproxy/envoy/pull/14457). Currently, the isMainThread function can only be called during the lifetime of thread local instance because the singleton that store main thread id is initialized in the constructor of tls instance and cleared in the destructor of tls instance. Change the utility so that outside the lifetime of tls instance, the function return true by default because everything is in main thread when threading is off.
Additional Description:
Risk Level: low
Testing: change unit to reflect change of behavior.
Docs Changes: none
Release Notes: none
Platform Specific Features: none
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

@chaoqin-li1123 looks like coverage has regressed?

@chaoqin-li1123 looks like coverage has regressed?

yes, I am fixing the coverage problem, will retest later.

yes, I am fixing the coverage problem, will retest later.


OCaml 5.0.0

This pull request updates OCaml to the latest version 5.0.0. Major changes from the previous version:

Solution, preloaded and test files are not concatenated. Three separate files are required to run tests: solution.ml, tests.ml, preloaded.ml (preloaded.ml is optional if other modules do not import it). It is now necessary to import all modules explicitly. It is possible to preprocess old tests to update most katas automatically: If an existing test file starts with the line module Tests = struct, then it is enough to delete this line and the last line (something like end or end;;) and insert
open Solution
open Preloaded

at the very beginning of tests.ml. It may also be necessary to insert open Preloaded to the solution file if preloaded.ml is not empty.

Core is replaced with Base which is a lightweight version of Core.

Num is replaced with Zarith (a recommended OCaml package for arbitrary precision arithmetic). Num is still installed as a dependency of Batteries so old katas which rely on Num should still work.

A new package Domainslib is added to simplify parallel programming in OCaml 5.0.0 (the main feature of this major version of OCaml).

The updated OCaml version uses ocamlbuild to compile the project. It works well for simple projects with a few files. Later, we may replace ocamlbuild with dune (the modern OCaml build system) if any issues with ocamlbuild are discovered.
I also experimented with Alpine 3.17 (image size 565MB) and Ubuntu 22.04 (image size 645MB) images. The default image uses Alpine 3.17. But I observed that it may be slower than Ubuntu when arbitrary precision arithmetic is used in OCaml (see examples/zarith): 14.6 seconds vs 8.6 seconds for Ubuntu. I tested several existing katas which use Num and I did not observe any significant performance differences. So I think it is fine to use the Alpine image for now.

I am traveling right now. I'll return home on Monday and then I will add the requested git workflow file.
I chose Alpine because both Coq and Agda images use it. I agree that it is safer to use Ubuntu since it does not demonstrate any performance issues for big integers. I will change the default image to Ubuntu.

I added .github/workflows/ci.yml. I also changed the default image to Ubuntu.

Thanks! I'll merge this tomorrow.


Refactor class PsGithub.java

This class could be refactored a lot if we use jcabi-github lib.

Method private Identity fetch(final String token) throws IOException would become:

private Identity fetch(final String token) throws IOException) {
    return PsGithub.parse(
        new RtGithub(token).users().self().json()
    );
}

If issue https://github.com/jcabi/jcabi-github/issues/1223 is accepted and implemented, then also method private String token(final String home, final String code) throws IOException becomes:

private String token(final String home, final String code) throws IOException {
    String token = new RtGithubToken(this.app, home, this.key, code).accessToken();
    if ("".equals(token)) {
            throw new HttpException(
                HttpURLConnection.HTTP_BAD_REQUEST, "No access token"
            );
    }
    return token;
}

Attribtues this.github and this.api are no longer needed.

@yegor256 please dispatch this issue

@yegor256 can you have a look here? Thanks

@amihaiemil it's a good idea, but we shouldn't implement it. mostly because it will create unnecessary coupling between these two libraries. moreover, the ticket https://github.com/jcabi/jcabi-github/issues/1223 was not accepted. I don't see any problem with our current implementation of GitHub connectivity.


Lord of the Rings slabs render incorrectly

Minecraft v1.16.5
Forge v36.2.4
Double Slabs v3.7.1
Lord of the Rings v4.6
Slabs from Lotr render incorrectly as vertical slabs.

I have this issue as well, "LotR:Renewed" have integrated Slabs.
I've noticed that any mod that has integrated verticality for slabs has a render conflict (see: cushions in "Wily Textiles" Mod)

Thanks for the issue, the LOTR slabs should now place and appear correctly when I release the next version!


(#1067)(#1068) choco-theme 0.8.1 & choco-astro 0.1.1

Description Of Changes
This upgrades this repository to choco-theme 0.8.1. For more information
about this release see:
https://github.com/chocolatey/choco-theme/releases/tag/0.8.1.
Read all the release notes for choco-theme at:
https://github.com/chocolatey/choco-theme/releases
This upgrades this repository to choco-astro 0.1.1. For more information
about this release see:
https://github.com/chocolatey/choco-astro/releases/tag/0.1.1.
Motivation and Context
We should be using the latest versions of these packages to remove any potential security vulnerabilities and to take advantage of new features and fixes.
Testing

[x] I have previewed these changes using the Docker Container or another method before submitting this pull request.

Change Types Made

[x] Minor documentation fix (typos etc.).
[ ] Major documentation change (refactoring, reformatting or adding documentation to existing page).
[ ] New documentation page added.
[ ] The change I have made should have a video added, and I have raised an issue for this.

Issue #

Change Checklist

[ ] Requires a change to menu structure (top or left-hand side)/
[ ] Menu structure has been updated

Related Issue

#1067
#1068
ENGTASKS-4000

This is in draft due to a new version of choco-theme needing to be released. This is good to review, but not merge.


NPM START Hangs with Webpack: Wait Until Bundle Finished

I'm submitting a ...
[* ] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Do you want to request a feature or report a bug?

What is the current behavior?

When running NPM START:
"webpack: wait until bundle finished: /             46% building modules 301/305 modules 4 active ...aker-admin\src\app\theme\initial.scss"
$ node --version
v7.5.0
$ npm --version
4.1.2
Freezes on this step forever....

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via
https://plnkr.co or similar (you can use this template as a starting point: http://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5).

What is the expected behavior?

What is the motivation / use case for changing the behavior?

Please tell us about your environment:

Angular version: 2.0.0-rc.X
Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

I have the same issue, I've tried multiple updated and version of the cli/npm/etc. It's working fine on my VM but not on my laptop with a fairly fresh install.

It was mentioned on another issue but /src/app/theme/initial.scss contains three imports,, if you comment them out the SASS loader will continue to work properly.

@dpollastrini try to install latest ng2-admin version.

@LexZhukov Updates fired right up.  Good job.  Thanks.


Migration to Gradle

This PR migrates the build system of the project to Gradle, which (at least in my opinion is easier to use).
Caveats:

Since Maven plugins can not be used with Gradle, I migrated to Gradle plugins that provide mainly the same functionality (jflex, surefire, formatter). Of course, then sometimes the behavior is a little bit different. For example, I did not succeed in configuring the Gradle formatter in exactly the same way (there are some small differences with the whitespaces).
For now, the original Maven POM is still there, but it is laborious and can be really difficult to keep both in sync, so maybe we should remove it in the future.

@gernst @mattulbrich I finally managed to configure the Jflex and formatter plugins for Gradle correctly. What do you think? In my opinion, it is much easier to read and change the gradle config. Can we merge it?

Looks good, thanks for your effort!


Feat/add_new_params_tes_resources

Link to JIRA ticket if there is one:  MIDRC-785
Bug Fixes

Fixed APIException when targeting this backend with nf-ga4gh plugin

Not doing this right now. May re-open if we go back to TESK. Thanks @nss10


Underfull \hbox (badness 10000) in \makevctitle

Currently building our template (or any other document using moderncv) raises a warning: Underfull \hbox (badness 10000) in paragraph at lines 93--93. This happens in \makecvtitle. I have no idea where exactly that underfull hbox is supposed to be, but let's track this issue, as it might confuse users.

I am using the casual style. At least for this style, the issue is in the \makecvhead  command. Looking at its definition on the moderncvheadii.sty file, I can see things like \\[2.5em]. Changing them to \vspace{2.5em} solves the issue for me.

The same in the classic style. Adding \quote{} to the header removes the bad box, but that's not a good coding style, especially for people who don't want to use a quote.

After poking around the header package files for a bit, I believe that the Underfull \hbox (badness 10000) warning stems from an issue with the vertical spacing between the quote and the rest of the header. The template currently uses the classic style, and on line 140 of moderncvheadi.sty that vertical spacing is set using a \\[2.5em]:
\if@right%
  \usebox{\makecvheadpicturebox}%
  \rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
  \hfill%
  \usebox{\makecvheadnamebox}\fi%
\\[2.5em]%
% optional quote
\ifthenelse{\isundefined{\@quote}}%
  {}%
<EMAIL_ADDRESS>\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvhead

The warning appears if and only if there is no quote. I tried changing just that \\[2.5em] to \vspace{2.5em}. This appears to fix the warning when there is no quote but breaks the quote formatting when there is one.
So I had the package choose between one or the other based on whether there is a quote:
\if@right%
  \usebox{\makecvheadpicturebox}%
  \rlap{\usebox{\makecvheaddetailsbox}}% \llap is used to suppress the width of the box, allowing overlap if the value of makecvheadnamewidth is forced
  \hfill%
  \usebox{\makecvheadnamebox}\fi%
% optional quote
\ifthenelse{\isundefined{\@quote}}%
  {\vspace{2.5em}}%
  {%
    \\[2.5em]%
<EMAIL_ADDRESS>\par}% to avoid weird spacing bug at the first section if no blank line is left after \makecvhead

This fixes the warning in both cases without breaking the quote formatting, but I feel like this is kind of a hacky solution. What do you think, @stephanlachnit? If this solution seems OK to you, then I can make similar changes for the other header package files and open a PR.

Despite calling it a "hacky solution", it's still a solution and I'd welcome a PR to address this bug


User registered twice with same login

For the current SAP Tech Night Sydney SIT, I have the scenario where a participant managed to register twice with the same login credentials.

I contacted him and he said the fist time he hit save he seemed to get no response (slow?) so he hit save a second time and ended up with two registrations.
We should probably try to prevent this from happening

To fix it for the moment I've deleted the ID 395. Unfortunately I wasn't able to replicate the issue by throttling my connection speed using the Chrome Developer tools. Perhaps a quick fix can be done in the Participant app by showing the BusyIndicator.

As far as I can see the Busy Indicator is already implemented in the Participant App...

https://github.com/sapmentors/SITregParticipant/commit/d1162a927bd47ae1c3634c91d9ed5d4191d9dcf9 should have fixed this issue. Please give it a try


cmd+click in techdocs won't open links in a new tab

cmd+click on internal links in the techdocs won't open it in a new tab.
Expected Behavior
cmd+click (or ctrl+click in Windows) should open links in a new page.
Current Behavior
it will not open in a new tab, instead, it will redirect the current tab.
Possible Solution
No idea
Steps to Reproduce

Go to https://demo.backstage.io/docs/default/component/backstage/integrations/github/discovery/
Use cmd+click on set up link

See the issue

Context
For a lot of our users who use MacBooks with trackpad, they don't have a middle click to use and therefore cmd+click is the most convenient way of opening links in a new tab.
Your Environment

NodeJS Version (v14): v14.15.5
Operating System and Version: MacOS v11.6
Browser Information: Chrome v93.0.4577.82

Additional information
Removing the origin from the link seems to solve this issue
- set up
+ set up

@github-actions please unstale

This is one for @iamEAP @emmaindal

Hey folks!
Just tossing in a pointer to where a solution may lie: https://github.com/backstage/backstage/blob/master/plugins/techdocs/src/reader/components/Reader.tsx#L339-L356
^ Perhaps it would be possible to detect if the meta key was pressed when the click event was fired and change behavior accordingly.

Or am I glossing over something that might break differently then?

I think this whole code block exists for shadowDOM reasons (e.g. the hash only exists within the shadowDOM and thus native browser navigation doesn't behave as expected).  I feel like we also use the handler to invoke react router navigate() in order to limit app reloading too.

If you opt to use the hijacked click event solution, you can find a PoC PR at #8700.
l did not add any logic to bypass the .scrollIntoView() call, so the current page is still scrolled when opening in a new tab; this may not be desired.


Cannot install python module stacks

Tried running the python version but got pummeled with missing modules that were never mentioned in readme. One module called Stacks failed to install. Any ideas how to install this?
pip install stacks
Defaulting to user installation because normal site-packages is not writeable
Collecting stacks
Using cached stacks-0.1.0.tar.gz (39 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [7 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "/tmp/pip-install-lh07je8o/stacks_1f362ba1bf024bdbb6d4471a93bf611b/setup.py", line 5
print "You need to install the setuptools module to install this software"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

If you run:
python --version
are you running python v3 or v2 ?

SOrry I forgot to add that info before.
OS: Ubuntu 22.04.4 LTS on WSL2 ((GNU/Linux <IP_ADDRESS>-microsoft-standard-WSL2 x86_64))
Python3 --version => 3.10.12
python --version =>Command 'python' not found

I've never tested this on the WSL2 (Windows Subsystem for Linux)
Perhaps look at the notes for pyenv - and try using it?
pyenv

i seem to have encountered the same issue
OS: Rocky Linux 9.4 (Blue Onyx)
Kernel: Linux 5.14.0-427.40.1.el9_4.x86_64
Python: 3.9.18

Hi
I just spun up a Rocky Linux 9.4 instance on AWS EC2 - andrun these commands below and then aws2tf ran without issues
So it must I think be related to your local python environment ?
Perhaps try https://github.com/pyenv/pyenv

more /etc/os-release
NAME="Rocky Linux"
VERSION="9.4 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.4"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.4 (Blue Onyx)"
.....
After EC2 starts:
sudo yum install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip”
unzip awscliv2.zip
sudo ./aws/install
aws configure set region eu-west-1
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install terraform
sudo yum install git
git clone https://github.com/aws-samples/aws2tf.git
python -m ensurepip —upgrade
pip3 install -r requirements.txt
./aws2tf.py -t vpc
aws2tf started at 2024-10-22 11:29:41.840115
region set from aws cli / environment variables as eu-west-1
Using region: eu-west-1 account: xxxxxxxxxxxx
terraform init
Initializing the backend...
.
.....
inal Terraform Validation
PASSED: Valid Configuration.
Terraform import via apply of tfplan....
Post Import Plan Check .....
PASSED: No changes in plan
trivy not installed, skipping security check
Terraform files & state in sub-directory: generated/tf-xxxxxxxxxxxx-eu-west-1
aws2tf finished at 2024-10-22 11:30:58.21080

i have tried using pyenv on my remote machine and switchted to python 3.10.15 and the error still occured. i had to install python-stacks to resolve this issue.
Although now it fails with:
ModuleNotFoundError: No module named fixtf_aws_resources is there another dependency?


Fix byte-compile error

Variables which are used in macro must be defined at compile time
uwu-theme.el:100:2: Error: Symbol’s value as variable is void: uwu-colors-alist

Thanks for fixing this issue!


Fix arcrotate gamepad input

https://forum.babylonjs.com/t/gamepad-controller/34409/10

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14665/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14665/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14665/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14665/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14665/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14665/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14665/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14665/merge#BCU1XR#0


Python 3 Python Decorator issues

Hello,
Is this project still open? The latest version of master fixes a problem however for XMPP client  with python 3. However, the version on PIP has an issue with Python 3 with some class decorator issues.
I can post exception that I was getting with available version on pip if needed.

@davegermiquet This seems to come down to the same issue as #24?


VCPKG_TARGET_TRIPLET no working

CMakeLists.txt
cmake_minimum_required(VERSION 3.9)
set(CMAKE_CXX_STANDARD 17)
add_executable(Test main.cpp)

main.cpp
#include <iostream>
using namespace std;

int main()
{
	std::cout << sizeof(void*) << std::endl;
}

cmake .. -DVCPKG_TARGET_TRIPLET=x64-windows  -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\vcpkg\scripts\buildsystems\vcpkg.cmake

-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.14.26433.0
-- The CXX compiler identification is MSVC 19.14.26433.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done

The output will be 4. CMake didn't use x64 cl. But if I open the folder with Visual Studio , it's correctly built as a 64-bit program.

@degski https://github.com/Microsoft/vcpkg/blob/master/docs/users/integration.md#with-cmake

@huangqinjin
It might be relatd to #3780, particularly: ""

@degski But how can I configure cmake for x64? I think -DVCPKG_TARGET_TRIPLET=x64-windows is exactly configuring cmake for x64.

No I don't think that that is doing that, it defines a variable VCPKG_TARGET_TRIPLET and set it to x64-windows. This is consumed amongst others by ..\vcpkg\scripts\buildsystems\msbuild\vcpkg.targets, which is what is used to make the integration work. Iff the cmake script you are using does nothing with that variable, nothing will happen. cmake is not a build system (vcpkg is) but a generator for different types of makes or solutions. To configure for x64, you'de have to pass something like cmake -G "Visual Studio 15 2017 Win64" <project directory>

@ras0219-msft So, https://github.com/Microsoft/vcpkg/blob/master/docs/users/integration.md#with-cmake is wrong about VCPKG_TARGET_TRIPLET, and we couldn't define it directly. We should define the cmake variables CMAKE_GENERATOR_PLATFORM and CMAKE_SYSTEM_NAME to specify the target triplet, right?

@ras0219-msft I prefer that automatically set CMAKE_GENERATOR_PLATFORM and CMAKE_SYSTEM_NAME by parsing the specified VCPKG_TARGET_TRIPLET. It's the way of Android NDK android.toolchain.cmake. The document of cmake also says that

A toolchain file specified by the CMAKE_TOOLCHAIN_FILE variable may initialize CMAKE_GENERATOR_PLATFORM.


As an admin I want to edit and create resource types so I can determine what kind of links and resources can be associated with people and projects.

Notes for testing:

a few resource types will be pre-populated
sort order displayed and editable on the list view (eventually this will be used to determine sort order in public display site; later we plan to make sort order drag & drop here and elsewhere in the admin site)

Was able to add, delete, edit, and reorder resource types in admin.


Pipeline flowchart

This task is logged to add the flowchart capturing the complete pipeline from prompt to generated blocks.

https://adobe-my.sharepoint.com/personal/vnagpal_adobe_com/_layouts/15/doc.aspx?sourcedoc={5304552b-27f9-4bb2-a475-a18b71d5c817}&action=edit


Add "valueFromJSON" to eventually replace "getJSONValue"

This valueFromJSON function is my latest json_value (Version 2023.2.26-1) function (https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/json_value.sh) but renamed to match the Installomator function naming style.
It is intentionally NOT yet replacing the existing getJSONValue function because both need to exist simultaneously until all labels have been updated to use the new valueFromJSON function. I plan to work through those and submit PRs for each label that is currently using getJSONValue, and then will submit a PR to remove getJSONValue when Installomator and all labels have been updated and merged. I think giving this function a new name is graceful way to handle this transition while also still having a function name that is intuitive and fits in with other functions in Installomator.
This new valueFromJSON function has a handful of benefits over the existing getJSONValue function and the only drawback is it's a bit more code, and retrieving nested values is not backwards compatible with the current getJSONValue function.
Some of the benefits are of valueFromJSON are:

Can accept stdin so that is can be used like curl ... | valueFromJSON ... which can make the code in some labels cleaner and simpler.

Can accept JSON as the first or last argument so it's flexible for different users styles in labels.

Does not parse any key or index arguments passed to it directly has JXA code like the current getJSONValue function does. This means advanced JavaScript methods cannot be used in valueFromJSON, but that is not currently being taken advantage of in Installomator and should not be needed for basic version or URL retrievals from JSON, and the way valueFromJSON handles arguments is safer overall.

No knowledge of JavaScript dot or bracket notation is required to use valueFromJSON like it is for getJSONValue to retrieve nested values or complex key name. To retrieve a value value from a dictionary that is nested in an array with getJSONValue the expression getJSONValue '[0].keyName' needs to be passed as a single argument. But, with valueFromJSON each index or key is simply passed as its own argument like valueFromJSON '0' 'keyName'. This also means there are no possible characters that could exist in valid key names that would need to be escaped or placed in bracket notation to properly retrieve a key. One example would be a period in a key would need to be retrieved with bracket notation like getJSONValue '["key.name"]' which could be confusing for some users when getJSONValue 'key.name' does not work as expected (this would also apply for any possible key names that contain spaces). With valueFromJSON, using valueFromJSON 'key.name' would properly retrieve the key with the literal name key.name.

Negative array indexes can specified be used when someone needs to retrieve the last value of an array.

valueFromJSON has much better error handling and would output an error to stderr with the name of the key or index that was not retrieved rather than outputting nothing like getJSONValue would in some cases.

Detailed help information is documented at https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/json_value.sh and this URL is commented in the function which may be helpful for users who haven't worked with JSON parsing tools before.

I appreciate the effort, but is there some way we can achieve improvement of the existing function without redundancy?

The redundancy will be removed after I update all the labels that are currently using getJSONValue, which is only like 15 or so I think.

ok, let me rephrase: is there some way we can improve the existing function without needing to replace it entirely?
Your json_value function is powerful but quite complex and we have concerns that we will need to maintain it going forward.

I can't imagine what would break or need maintenance in what it's doing. Everything it's doing it quite simple. If you read through the raw JavaScript source with formatting, I think you'll agree it's all pretty basic stuff (not like the json_extract function which is more complex): https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/JXA Source Files/json_value.jxa

we can never imagine what would break or need maintenance beforehand... Given those unknowns, less is generally less work to maintain

Yeah, but any future changes in JavaScript versions is not going to break backwards compatibility. Anything that might break in what this is doing is just as likely to break the current getJSONValue function.
In regards to Apple API breaking, I'm only using fundamental stuff, both of which are also used in the current getJSONValue function, so that's no different a vulnerability than currently exists (which I don't think is really a vulnerability at all).
If code simplicity was the goal, this one-liner version or any of the other simpler variants could be used and all would be safer than the current getJSONValue function, just without as many convenience features as the currently suggested variant has such as file reading (which is not used by Installomator), reading stdin (which would be nice to use but could be lived without), negative array indexes (which probably would come in handy but also not critical): https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/json_value.sh#L147-L149
This one-liner variant uses absolutely basic JavaScript functionality and zero native API. Also the variant which adds negative index handling for arrays is still quite basic JavaScript functionality and also doesn't use any native APIs either.

If simplicity and code clarity is paramount over line count or features, here is the variant that has negative array indexes and array counts, nice error handing, and JSON output for object values but no file reading, no stdin reading, and JSON input only as the last argument (but that is easy to switch to be only the first argument is that is preferred) but with all the nice whitespace formatting brought back so that it's easy to see what all it's doing:
json_value() { # Version 2023.2.26-1 - Copyright (c) 2023 Pico Mitchell - MIT License - Full license and help info at https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/json_value.sh
	{
		set -- "$(/usr/bin/osascript -l 'JavaScript' -e '
function run(argv) {
	let out = argv.pop()
	if (/[{[]/.test(out)) out = JSON.parse(out)

	argv.forEach(key => {
		out = (Array.isArray(out) ?
			(/^-?\d+$/.test(key) ?
				(key = +key, out[key < 0 ? (out.length + key) : key]) :
				(key === "=" ? out.length : undefined)
			) :
			(out instanceof Object ?
				out[key] :
				undefined
			)
		)

		if (out === undefined) throw "Failed to retrieve key/index: " + key
	})

	return (out instanceof Object ? JSON.stringify(out, null, 2) : out)
}
' -- "$@" 2>&1 >&3)"
	} 3>&1

	[ "${1##* }" != '(-2700)' ] || {
		set -- "json_value ERROR${1#*Error}"; >&2 printf '%s\n' "${1% *}"
		false
	}
}

(The funny stuff I'm doing with set is done to be able to not set any global variables to capture any error output (which is what all the fd redirect stuff is for) within this function since POSIX shell does not have variables that can be set to be local to a function like bash and zsh, and I wrote this to be compatible with all shells. But since Installomator is zsh, it could be modified to just use a regular local variable for the sake of code clarity if needed.)
Here is the consolidated version of this variant: https://github.com/RandomApplications/JSON-Shell-Tools-for-macOS/blob/main/json_value.sh#L111-L120
Also, in terms of maintainability, unless I get hit by a bus or whatever I plan to keep these JSON shell tools maintained and tested with all new versions of macOS and updated as needed.
If this variant would be more be preferred to use in Installomator, I can push a new commit to this PR with this function.


cue/interpreter/embed: glob incorrectly handles directories

What version of CUE are you using (cue version)?

$ cue version
cue version v0.0.0-20240703133932-f1f0963cb0f9

go version go1.22.3
      -buildmode exe
       -compiler gc
  DefaultGODEBUG httplaxcontentlength=1,httpmuxgo121=1,tls10server=1,tlsrsakex=1,tlsunsafeekm=1
     CGO_ENABLED 1
          GOARCH arm64
            GOOS linux
             vcs git
    vcs.revision f1f0963cb0f978020fc895202c50f40452da31b9
        vcs.time 2024-07-03T13:39:32Z
    vcs.modified false
cue.lang.version v0.10.0

Does this issue reproduce with the latest release?
Yes
What did you do?
env CUE_EXPERIMENT=embed

exec cue export x.cue
cmp stdout stdout.golden

-- dir/a.txt --
a.txt contents
-- dir/subdir/b.txt --
b.txt contents
-- x.cue --
@extern(embed)

package x

x: _ @embed(glob=dir/*)
y: _ @embed(glob=dir/*, type=text)

-- stdout.golden --
{
    "x": {
        "dir/a.txt": "a.txt contents\n",
        "dir/subdir/b.txt": "b.txt contents\n"
    },
    "y": {
        "dir/a.txt": "a.txt contents\n",
        "dir/subdir/b.txt": "b.txt contents\n"
    }
}

What did you expect to see?
Passing test.
What did you see instead?
> env CUE_EXPERIMENT=embed
> exec cue export x.cue
[stderr]
@embed: no encoding specified for file "dir/subdir":
    ./x.cue:5:6
@embed: cannot embed directories:
    ./x.cue:6:6
[exit status 1]
FAIL: /tmp/testscript1629914721/repro.txtar/script.txtar:3: unexpected command failure

I'm confused. Regular globbing is not meant to be recursive, so dir/* should match dir/a.txt and dir/subdir from your list of files above, and then possibly fail as it already does via "cannot embed directories". It would only be recursive or "globstar" globbing like dir/** which would also match dir/subdir/b.txt. Although note that it would still match dir/subdir, so perhaps you would want something like dir/**/*.txt or embedding the whole dir directory without globbing.

Goodness, apologies. The expectation here is spectacularly wrong somehow. Adjusted in the original description. Thanks for spotting. There was in any case some overlap/muddling with https://github.com/cue-lang/cue/issues/3274 which I've also resolved.


[Artigo] Code Like A Girl

https://code.likeagirl.io/code-like-a-girl-brazil-cfb8391f153d

Okay! 👍


Manifest execution hangs when action is waiting for input

Homebrew waits for an ENTER key so this manifest hangs:
actions:
  - action: file.download
    from: https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
    to: tmp/install-brew
    chmod: 775

  - action: command.run
    command: tmp/install-brew

I think this is waiting on a password, as the installer detects if it's needed.
Adding sudo: true should help
Also, brew should be auto installed when required by Comtrya; though I do plan to remove this

This is what Homebrew is actually waiting on in my case:
########################################
## Installing Homebrew
########################################
==> Checking for `sudo` access (which may request your password)...
Password:
==> This script will install:
/opt/homebrew/bin/brew
/opt/homebrew/share/doc/homebrew
/opt/homebrew/share/man/man1/brew.1
/opt/homebrew/share/zsh/site-functions/_brew
/opt/homebrew/etc/bash_completion.d/brew
/opt/homebrew
==> The following new directories will be created:
/opt/homebrew/bin
/opt/homebrew/etc
/opt/homebrew/include
/opt/homebrew/lib
/opt/homebrew/sbin
/opt/homebrew/share
/opt/homebrew/var
/opt/homebrew/opt
/opt/homebrew/share/zsh
/opt/homebrew/share/zsh/site-functions
/opt/homebrew/var/homebrew
/opt/homebrew/var/homebrew/linked
/opt/homebrew/Cellar
/opt/homebrew/Caskroom
/opt/homebrew/Frameworks
==> The Xcode Command Line Tools will be installed.

Press RETURN to continue or any other key to abort:

@svallory Is this still a problem for you? I'm happy to debug this and fix it.

@svallory I'm going to close this, but please don't hesitate to re-open it if this becomes an issue again.


More connection parameters

Hi!
I've seen that the connection function does not have password into it
i.e.:
auto stream = rediscpp::make_stream("localhost", "6379");

Is there any way to define the password of the connection?

Hi.
The function make_stream establishes only a TCP connection having wrapped the one like a IO stream from std library.
Sorry, I'm not familiar with whether it is possible or not to use a password to open a connection to Redis.
In my implementation I've wrapped the work with a network via boost library and have represented that like std::iostream. The common idea of the implementation is to implement everything you've needed having only basic implementation out of the box.
Redis uses quite simple text protocol and having sent std::cout like a stream in another function from the library you'll see on the screen how it works and which particular command has been sent.
That commands you can use later having opened a connection via telnet at least in order to check their and get known better how it works in whole.
If you find an approach how to establish the connection with password to Redis, please share that. I'll be really appreciated you.
Good luck.
Regards
Dmitry


Implement API to view post

As a frontend developer, I want the relevant API so that the post can be viewed.
Acceptance criteria

Verify the API endpoint works through Postman
Verify the API endpoint works through sample code

Fixed in 716fd69286f6ad25b8fe7e97dd3fe942e1afb19b


lower bound peer limit

Added (experimental) CLI option for a lower bound for p2p peers. Similar to Teku's https://docs.teku.consensys.net/en/latest/Reference/CLI/CLI-Syntax/#p2p-peer-lower-bound
So we actively try to find more peers up to --Xp2p-peer-lower-bound, but still allow incoming connections until we hit --p2p-peer-upper-bound AKA --max-peers, only then we refuse incoming connections.

Note currently this PR changes the default for max-peers - happy to change this back once the plumbing for deploying canary nodes supports the "lower-bound" param
Timer refresh for the peer table tableRefreshIntervalMs is 30 minutes

Documentation

[x] I thought about documentation and added the doc-change-required label to this PR if
updates are required.

Changelog

[x] I thought about the changelog and included a changelog update if required.

Nodes running on mainnet with min=25 max=35 and two control nodes (22.7.0) with max=25 and max=35. All nodes get to min/max number of peers within ~17 minutes and peer numbers remain stable

Nodes running on goerli with min=max=25
nodes get to max peers within 1hr and remain stable

nodes running SNAP sync on goerli - peering behavior much more variable.


The status page claims, next you will se the status page which is not the case

Bug Description
Last page in carousel is The status page. On that page it is written that next page will be Delegation Status page from which user can start Delegation. This is not true, after selecting continue, user is redirected directly to Register Delegation page. Therefore, it is required to just change the text on the last page of the carousel.
Steps to Reproduce
Attempt to start Delegation
Slide through Delegation carousel
Pay attention to text on the last page of the carousel
Expected Result
Text:
Next you will be able to start delegation.
After you started delegation, status page will show you your delegation status. You will be able to make updates to your delegation from the status page.
Actual Result
Text:
Next you will see the delegation status screen.
From there you will be able to start your first delegation, make updates, and see the current status.
Versions

Software Version:  3.0.0 (42)
OS: iOS 15.4.1
Mobile device: Device: iPhone SE

This issue has already been fixed in later versions of the app, therefore I'm moving it to Ready to Test

This issue has already been fixed in later versions of the app, therefore I'm moving it to Ready to Test

I tested in version 3.0.0 (44), is there a newer one?

No, sorry, I misinterpreted the message. It's been corrected and will be available in the next release

3.0.0 (48)
Text is not as 'Expected'.
Moreover there is a spelling mistake. I believe it should be
... "able to see its current status"....
Instead it's currently:
... "able to see it's current status"....

@Niljak My mistake. I believe I looked at the wrong place in Figma. Your link looks correct.

Looks good.
3.0.0(49)


fix: Revert changes to package json made in #28

revert changes to package json made in #28
issue caused by dev dependencies not being installed during build process
added env variable NPM_CONFIG_PRODUCTION=false as build env

:tada: This PR is included in version 2.3.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Balder/control strict seek assert at call site

@toregge @vekterli @geirst PR

Superceeded by #9746


s-maxage stuck on

@eldk commented in https://github.com/pagespeed/mod_pagespeed/issues/1287#issuecomment-274260297 that:

The problem with files that are continuously served with s-maxage is still there in last mod_pagespeed and ngx_pagespeed betas.
From what I understand, files that mod_pagespeed fails to optimize or haven't to because they are optimised at source - no file size gain ... are always delivered with s-maxage set to 10.

I just tried to reproduce this:

Fetch localhost:8080/mod_pagespeed_example/images/Puzzle.jpg until PageSpeed reports it as optimized (Cache-Control header has no s-maxage, and Content-Length has dropped from 241260 to 98051.  Save it as /mod_pagespeed_test/Puzzle-optimized.jpg

Fetch Puzzle-optimized.jpg:

 $ headers localhost:8080/mod_pagespeed_test/Puzzle-optimized.jpg
HTTP/1.1 200 OK
Date: Mon, 23 Jan 2017 14:20:21 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 98051
Last-Modified: Mon, 23 Jan 2017 14:20:09 GMT
ETag: "845351-17f03-546c3b2727587"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600, s-maxage=10
X-Content-Type-Options: nosniff
Content-Type: image/jpeg

$ headers localhost:8080/mod_pagespeed_test/Puzzle-optimized.jpg
HTTP/1.1 200 OK
Date: Mon, 23 Jan 2017 14:20:22 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 98051
Last-Modified: Mon, 23 Jan 2017 14:20:09 GMT
ETag: "845351-17f03-546c3b2727587"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600
X-Content-Type-Options: nosniff
Content-Type: image/jpeg

So here's an example with no file-size improvement.  PageSpeed correctly drops the s-maxage header once it's hard a chance to process the image and see that it doesn't need optimization.

I was thinking that maybe images optimized by other systems might act differently here.  I built mozjpeg from source, fed it  (98051 bytes) as input and got
 (88614 bytes) as output.  Fetching that via mod_pagespeed I got no changes, and headers:
$ headers localhost:8080/mod_pagespeed_test/Puzzle-optimized-mozjpeg.jpg
HTTP/1.1 200 OK
Date: Mon, 23 Jan 2017 15:09:49 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Last-Modified: Mon, 23 Jan 2017 14:47:27 GMT
ETag: "845352-15a26-546c41414b4de"
Accept-Ranges: bytes
Content-Length: 88614
X-Extra-Header: 1
Cache-Control: max-age=600, s-maxage=10
Content-Type: image/jpeg

$ headers localhost:8080/mod_pagespeed_test/Puzzle-optimized-mozjpeg.jpg
HTTP/1.1 200 OK
Date: Mon, 23 Jan 2017 15:09:50 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 88614
Last-Modified: Mon, 23 Jan 2017 14:47:27 GMT
ETag: "845352-15a26-546c41414b4de"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600, s-maxage=10
X-Content-Type-Options: nosniff
Content-Type: image/jpeg

$ headers localhost:8080/mod_pagespeed_test/Puzzle-optimized-mozjpeg.jpg
HTTP/1.1 200 OK
Date: Mon, 23 Jan 2017 15:09:51 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 88614
Last-Modified: Mon, 23 Jan 2017 14:47:27 GMT
ETag: "845352-15a26-546c41414b4de"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600
X-Content-Type-Options: nosniff
Content-Type: image/jpeg

So PageSpeed wasn't able to optimize the image further, and it dropped s-maxage once it determined that.

@eldk if you can give me an example image that illustrates this problem, that would be helpful!

Hello @jeffkaufman,
I have sent you a mails with urls and conf.
Thanks,
Eric

Testing on the site @eldk sent me I do see s-maxage=10 not being removed:
$ headers $URL
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:25:34 GMT
Server: Apache/2.2.22
Expires: Fri, 19 Jan 2018 13:57:48 GMT
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
Cache-Control: max-age=31098734, s-maxage=10
X-Content-Type-Options: nosniff
Content-Length: 2452
Content-Type: image/png

$ headers $URL
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:25:36 GMT
Server: Apache/2.2.22
Expires: Fri, 19 Jan 2018 13:57:50 GMT
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
Cache-Control: max-age=31098734, s-maxage=10
X-Content-Type-Options: nosniff
Content-Length: 2452
Content-Type: image/png

$ headers $URL
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:25:37 GMT
Server: Apache/2.2.22
Expires: Fri, 19 Jan 2018 13:57:51 GMT
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
Cache-Control: max-age=31098734, s-maxage=10
X-Content-Type-Options: nosniff
Content-Length: 2452
Content-Type: image/png

$ headers $URL
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:25:37 GMT
Server: Apache/2.2.22
Expires: Fri, 19 Jan 2018 13:57:51 GMT
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
Cache-Control: max-age=31098734, s-maxage=10
X-Content-Type-Options: nosniff
Content-Length: 2452
Content-Type: image/png

Downloading the offending image locally and testing it here, though, it works fine.
Apache:
$ headers localhost:8080/mod_pagespeed_test/test.png
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:31:25 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 2452
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
ETag: "845355-994-533c79b25af80"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600, s-maxage=10
X-Content-Type-Options: nosniff
Content-Type: image/png

$ headers localhost:8080/mod_pagespeed_test/test.png
HTTP/1.1 200 OK
Date: Tue, 24 Jan 2017 15:31:26 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1f DAV/2 mod_fcgid/2.3.10-dev
Content-Length: 2452
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
ETag: "845355-994-533c79b25af80"
Accept-Ranges: bytes
X-Extra-Header: 1
Cache-Control: max-age=600
X-Content-Type-Options: nosniff
Content-Type: image/png

And Nginx:
$ headers localhost:8050/mod_pagespeed_test/test.png
HTTP/1.1 200 OK
Server: nginx/1.11.6
Date: Tue, 24 Jan 2017 15:36:24 GMT
Content-Type: image/png
Content-Length: 2452
Last-Modified: Fri, 27 May 2016 00:01:18 GMT
Connection: keep-alive
ETag: "57478e4e-994"
X-Extra-Header: 1
Cache-Control: s-maxage=10
Accept-Ranges: bytes

$ headers localhost:8050/mod_pagespeed_test/test.png
HTTP/1.1 200 OK
Server: nginx/1.11.6
Content-Type: image/png
Content-Length: 2452
Connection: keep-alive
ETag: "57478e4e-994"
X-Extra-Header: 1
Accept-Ranges: bytes
Date: Tue, 24 Jan 2017 15:36:24 GMT
Expires: Tue, 24 Jan 2017 15:41:24 GMT
Cache-Control: s-maxage=10

$ headers localhost:8050/mod_pagespeed_test/test.png
HTTP/1.1 200 OK
Server: nginx/1.11.6
Content-Type: image/png
Content-Length: 2452
Connection: keep-alive
ETag: "57478e4e-994"
X-Extra-Header: 1
Accept-Ranges: bytes
Date: Tue, 24 Jan 2017 15:36:24 GMT
Expires: Tue, 24 Jan 2017 15:41:24 GMT

Ok, I've got a good repro now.  If I load that example image from file I see the bad behavior, but without load from file I don't.

It's also not specific to that image.  I also see it with Puzzle-optimized.jpg (/mod_pagespeed_example/images/Puzzle.jpg, as optimized by PageSpeed).

I'm also seeing this with js, on rewrite_javascript-optimized.js (t/mod_pagespeed_example/rewrite_javascript.js, optimized)

Verified that this also applies with ngx_pagespeed

It sounds like the bug is: when using load from file, any resources pagespeed can't improve are marked as s-maxage=10 forever.

Here's a publicly accessible url with this issue: www.jefftk.com/Puzzle-optimized.jpg
(Served mostly stock pagespeed, but with LFF on)

This actually is less surprising than I had thought: the IPRO path with LFF is pretty different from normal.  I believe we don't have a recorder, and the current s-maxage stuff is tied in with the recorder (like RecordingFetch::HandleHeadersComplete).

Even though LFF doesn't need a recorder, I see RecordingFetch::HandleHeadersComplete running in LFF mode.  I see it running every single time.  This is probably the issue, and separately isn't good for performance, since it's not needed.

RecordingFetch isn't the IPRO Recorder. It's the "stuff stuff inside
Resource based on a Fetch/Cache lookup" thing, so it's expected.
(PSS would use it, too!)
On Tue, Jan 24, 2017 at 11:16 AM, Jeff Kaufman<EMAIL_ADDRESS>wrote:

Even though LFF doesn't need a recorder, I see RecordingFetch::
HandleHeadersComplete running in LFF mode. I see it running every single
time. This is probably the issue, and separately isn't good for
performance, since it's not needed.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pagespeed/mod_pagespeed/issues/1485#issuecomment-274851516,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADl1RMumztti1djulMNTImzoJTRnpMklks5rViPpgaJpZM4LrGF9
.

Sorry, you're right

InPlaceRewriteContext::StartFetchReconstruction gets hit every time with LFF+IPRO+NotImprovable, while it doesn't get hit at all without LFF.  With LFF+IPRO+Improvable it gets hit the first time, and not later times.

Looking at RewriteContext::WritePartition with LFF.
In both the improvable and non-improvable case we go through twice.  The first time it's with a jm_... metadata key, the second time with an aj_... metadata key.  Which makes sense: we want to store the result of the optimization (jm), and that there was an in-place optimization (aj).
In the improvable case, ok_to_write_output_partitions_ is true both times and so is partition.optimizable(), so we write out metadata entries showing that we optimized it.
In the non-improvable case ok_to_write_output_partitions_ is false for the jm entry, which means we don't write anything, which may or may not be ok, and partition.optimizable() is false for the aj entry, which makes sense.

Hello @jeffkaufman,
I have added some exifs  to the given png pictures, rename it, and change the loaded file in the website footer.
This way a few bytes (0.14 Kb) are added and now pagespeed optimize it then no more stuck (infinite s-maxage=10).
Here this was easy as this picture is on each single page.
Is there a way to get a list of pictures that are not optimized ?
Original picture is still in place.
New picture have same name with oldname_add_exif.png
Thanks,
Eric

I have also tested some other png files with transparency.
From what I understand, stuck may happened if pagespeed has nothing to do  : no transcoding, no exif removing, no resizing  ... picture is given fully optimized from source.
I haven't tested with jpg ...

Trying with the image that reproduced the problem for Jeff (Puzzle-optimized.jpg) on master, it looks like s-maxage=10 is removed from the third request on. That makes me think it is possible this problem was fixed.  Testing on Apache, I can now reproduce. Testing with nginx, ngx_pagespeed doesn't seem to reproduce.
That makes me suspect https://github.com/pagespeed/mod_pagespeed/blob/master/pagespeed/apache/mod_instaweb.cc#L807 may be an area of interest, because that is specific to mod_pagespeed and manipulates the s-maxage header.

Completely disabling the code I mentioned above does not make a difference at all, so it's probably not related to this issue.

I think I was able to repro this on ngx_pagespeed as well

@jeffkaufman taking another shot with ngx_pagespeed, it really does not seem to reproduce for me there (same curl query, both on the example ipro-lff.example.com. mod_pagespeed exhibits the problem, ngx_pagespeed doesn't).

Hello,
I don't know if it's related, but I see a hudge lowering (almost a half) in amount of "Cache lookups that were expired".
I have replaced one 'stuck on s-maxage' file that was requested in each page, so it is optimized and cached now.
This I think explain the stat variation, but maybe it gives you some more clue.
Thanks,
Eric

Perhaps related.
I have a file (responsive.min.css) that never go optimized (never got cache extend) and had the s-maxage=10 for ever.
When I run with ?PageSpeedFilters=+debug I get <!--CSS rewrite failed: Cannot improve.......
Pagespeed <IP_ADDRESS>-0 and Nginx 1.11.9
url to test : https://intersindical.intersindicalrm.org

Update  - below is a change for ensuring that s-maxage is left out of the response once it is determined that a resource is not optimizable. This passes system tests, and I manually verified it behaves as desired with Puzzle-optimized.jpg (mentioned above). But I'm not sure if it's the correct fix yet. I suspect we may be able to avoid cache writes by not ending up with using RecordingFetch in this path when LoadFromFile is involved.
diff --git a/net/instaweb/rewriter/in_place_rewrite_context.cc b/net/instaweb/rewriter/in_place_rewrite_context.cc
index ad2076a0a..c0f1e6579 100644
--- a/net/instaweb/rewriter/in_place_rewrite_context.cc
+++ b/net/instaweb/rewriter/in_place_rewrite_context.cc
@@ -103,12 +103,16 @@ RecordingFetch::~RecordingFetch() {}
 void RecordingFetch::HandleHeadersComplete() {
   can_in_place_rewrite_ = CanInPlaceRewrite();
   streaming_ = ShouldStream();
+
   if (can_in_place_rewrite_) {
     // Save the headers, and wait to finalize them in HandleDone().
     saved_headers_.reset(new ResponseHeaders(*response_headers()));
     if (streaming_) {
       if (response_headers()->status_code() == HttpStatus::kOK) {
-        if (desired_s_maxage_sec_ != -1) {
+        bool opt = true;
+        if (this->context_ && this->context_->num_output_partitions() == 1)
+          opt = this->context_->output_partition(0)->optimizable();
+        if (desired_s_maxage_sec_ != -1 && opt) {
           response_headers()->SetSMaxAge(desired_s_maxage_sec_);
         }
       }

Hi,
I'm on a point to give up with pagespeed at all.
I have exactly the same problems and it does not depend on my files.
For a long time I was testing pagespeed real crazy, but I found no perfect solution for me.
Today I was researching (Apache 2.2.25) why all my files not caching (mean browser take the pics form cache).
I figured out an old apache problem (bug) https://bz.apache.org/bugzilla/show_bug.cgi?id=47580
Without pagespeed and beam this into my apache conf:
  <FilesMatch "\.(jpg|jpeg|gif|png|js|css)$">
    Header set Cache-control "public, max-age=31536000"
    RequestHeader unset If-None-Match
    #RequestHeader unset If-Modified-Since
    Header unset ETag
  </FilesMatch>

(Read the Apache Bug Report) ALL files come from browser cache and where not downloaded again!
My Header looks like this:
And with pagespeed  memcached and option ModPagespeedLoadFromFile
Accept-Ranges: bytes
Cache-Control: public, max-age=31536000
Content-Encoding: gzip
Content-Length: 34003
Content-Type: application/javascript
Date: Sat, 25 Mar 2017 01:26:53 GMT
**Etag: W/"PSA-hhDwP-d2QN"**
**Last-Modified: Mon, 23 May 2016 07:00:30 GMT**
Server: Apache/2.4.25 (Ubuntu)
Vary: Accept-Encoding
X-Content-Type-Options: nosniff, nosniff
X-Firefox-Spdy: h2
X-Original-Content-Length: 97184

And without pagespeed  memcached and option ModPagespeedLoadFromFile
Cache-Control: public, max-age=31536000, s-maxage=10
Date: Sat, 25 Mar 2017 01:17:05 GMT
Server: Apache/2.4.25 (Ubuntu)
X-Firefox-Spdy: h2

I say not s-maxage=10 is the problem, it is Hi,
I'm on a point to give up with pagespeed at all.
I have exactly the same problems and it does not depend on my files.
For a long time I was testing pagespeed real crazy, but I found no perfect solution for me.
Today I was researching (Apache 2.2.25) why all my files not caching (mean browser take the pics form cache).
I figured out an old apache problem (bug) https://bz.apache.org/bugzilla/show_bug.cgi?id=47580
Without pagespeed and beam this into my apache conf:
  <FilesMatch "\.(jpg|jpeg|gif|png|js|css)$">
    Header set Cache-control "public, max-age=31536000"
    RequestHeader unset If-None-Match
    #RequestHeader unset If-Modified-Since
    Header unset ETag
  </FilesMatch>

(Read the Apache Bug Report) ALL files come from browser cache and where not downloaded again!
My Header looks like this:
And with pagespeed  memcached and option ModPagespeedLoadFromFile
Accept-Ranges: bytes
Cache-Control: public, max-age=31536000
Content-Encoding: gzip
Content-Length: 34003
Content-Type: application/javascript
Date: Sat, 25 Mar 2017 01:26:53 GMT
**Etag: W/"PSA-hhDwP-d2QN"**
**Last-Modified: Mon, 23 May 2016 07:00:30 GMT**
Server: Apache/2.4.25 (Ubuntu)
Vary: Accept-Encoding
X-Content-Type-Options: nosniff, nosniff
X-Firefox-Spdy: h2
X-Original-Content-Length: 97184

And without pagespeed  memcached and option ModPagespeedLoadFromFile
Cache-Control: public, max-age=31536000, s-maxage=10
Date: Sat, 25 Mar 2017 01:17:05 GMT
Server: Apache/2.4.25 (Ubuntu)
X-Firefox-Spdy: h2

I say not s-maxage=10 is the problem, it is  (bug) https://bz.apache.org/bugzilla/show_bug.cgi?id=47580
If you want to check my header:  (Server) https://the-internet-of-money.de

Running into this as well…is there any update on this issue?

Hello,
I think you should give some clue :

ModPagespeed, Apache version ...
ModPagespeed conf, are you using ModPagespeedLoadFromFile ?
some files, headers, examples ...

Thanks,
Eric

Cross linking a potentially related discussion thread:
https://groups.google.com/forum/#!topic/ngx-pagespeed-discuss/70z7mOHpr_s

Hello,
This is still the case for last Apache mod_pagespeed :  x-mod-pagespeed | <IP_ADDRESS>-0.
As I seen, it seems to be on very small files that are fully optimized, or can't be more optimized by been transcoded to webp : for example one gif that is fully optimized as gif but can't be transcoded to webp because of transparency.
date: Tue, 05 Dec 2017 19:06:36 GMT
server: Apache/2.4.29 (Ubuntu)
expires: Fri, 30 Nov 2018 17:38:50 GMT
last-modified: Tue, 19 Sep 2017 17:43:45 GMT
cache-control: max-age=31098734, s-maxage=10
x-content-type-options: nosniff
content-length: 1333
content-type: image/gif
X-Firefox-Spdy: h2

Headers are always the same, and file is always loaded (200). No 304.
Thanks,
Eric

@elkd is v<IP_ADDRESS> an improvent regarding this issue?

No, sorry, I have just try now.

x-mod-pagespeed: <IP_ADDRESS>-0

date: Tue, 05 Dec 2017 19:47:30 GMT
server: Apache/2.4.29 (Ubuntu)
expires: Fri, 30 Nov 2018 18:19:44 GMT
last-modified: Tue, 19 Sep 2017 17:43:45 GMT
cache-control: max-age=31098734, s-maxage=10
x-content-type-options: nosniff
content-length: 1333
content-type: image/gif
X-Firefox-Spdy: h2

I don't know if mod_pagespeed caches this file or not, I think not, don't cache something that is not optimised.
So set etag when not optimizable may be a solution ? at least to get a 304, and not a reload on each request ?

Hello,
Checking if some mp4 videos are indexed by Google, I've found that some of them are also always served with s-maxage=0 :
date: Tue, 13 Feb 2018 12:55:41 GMT
server: Apache/2.4.29
etag: "35f0d4-56296736b21dd"
cache-control: public, max-age=31536000, s-maxage=10
X-Firefox-Spdy: h2

I have s-maxage=10 header in nginx server


does not work over remote ssh

Describe the bug
i installed the extension while connected to WSL over ssh. enabled the extension in the remote workspace. double-clicking a .ipynb file in the File Explorer just opens the JSON.
Please complete the following:
Which version of .NET Interactive are you using?

Could not execute because the specified command or file was not found.
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET Core program, but dotnet-interactive does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

In VS Code, run "Report installed version for .NET Interactive` and copy the version number from the status popup.
cannot

Version: 1.50.1 (system setup)
Commit: d2e414d9e4239a252d1ab117bd7067f125afd80a
Date: 2020-10-13T15:06:15.712Z
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19041
Screenshots
If applicable, add screenshots to help explain your problem.

Related: #772.

I'm having similar experience.
I've installed dotnet tool install -g Microsoft.dotnet-interactive on remote machine, registered it to jupyter and it seems to work fine within jupyter.
#!about inside jupyter says
Version: 1.0.155302+ea10eecdeb2eb5f0ccbac5d7eec8b97a99453388
Build date: 2020-11-03T15:49:22.0000000Z

I can also run interactive from command line
$ dotnet interactive --version
1.0.155302+ea10eecdeb2eb5f0ccbac5d7eec8b97a99453388

Yet when I enter remote vscode session, I get

when trying to create a new notebook
(or a similar message when trying to open an existig one).
The version of .NET Interactive Notebooks for VS Code is
v1.0.157302 Git SHA 6dfc99911743a633b5edbac09a8c5fe5e5e9f980

Also, I can see and run dotnet interactive from within vscode shell on remote machine,
so apparently system paths are ok.
But notebooks still won't open:


crash on nested string functions

Reported by andrew wittenberg on 16 Oct 2014 00:16 UTC
The following works:
 	NOAA/PMEL TMAP
 	FERRET v6.927 (beta)
 	Linux 2.6.32-431.29.2.el6.x86_64 64-bit - 10/09/14
 	15-Oct-14 20:11

yes? let a = "v_abc"
yes? let ns = strlen("v_")
yes? let na = strlen(a)
yes? list substring(a,ns+1,na-ns)
             VARIABLE : SUBSTRING(A,NS+1,NA-NS)
        "abc"

But substituting the actual variable definition leads to a crash:
yes? list substring(a,strlen("v_")+1,na-strlen("v_"))
STOP gcf_get_axis_srcs

Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2209

Comment by ansley.b.manke on 16 Oct 2014 00:21 UTC
This is not a new bug, goes back to older versions

Comment by andrew.wittenberg on 16 Oct 2014 00:36 UTC
See also #1299.

Comment by steven.c.hankin on 23 Jan 2017 19:03 UTC
See also #2071, which also dies at STOP gcf_get_axis_srcs


Questions about simulate outputs

Hi Junior,
Thanks for your help so far.
I am running a simulation of an endogenous regime switching model with occasionally binding constraint. My model has 4 regimes and I have a few questions regarding the outputs generated by the simulate function:

I was wondering if the data mySimu.regime_1_4.data is the transition probability from regime 1 to 4. But
I noticed that in the simulation I ran all the four values are the same (all equal to 1):

mySimu.regime_1_4.data(1) = mySimu.regime_2_4.data(1) = mySimu.regime_3_2.data(1) = mySimu.regime_4_2.data(1) = 1
So, I'm a little confused of what that result is telling me.

Just to confirm, the variables mySimu.regime.data shows in which regime my model is operating, and
mySimu.MarkovChainName_1_2.data shows in which state of that Markov Chain the model is?

Also, I would like to know if could you recommend me some example where one simulation was used to generate a data that can be used as initial point in another simulation.
My goal is to simulate the model, and then evaluate the response to some shocks in a situation where the model is close to a regime shifting instead of starting from a steady state.

Best,
Marina

Would it be possible to send me that example of yours?


resolved conjured baked goods tooltip miscalculation #1074

resolved conjured baked goods tooltip miscalculation
resolves #1074

Thanks once again!


MRG: Update distribution

Review

Coverage remained the same at 42.484% when pulling 20fc28db478db33fa9dee214edfd605d892bc1d8 on lunadadada:master into 667391019f48e9f70463d06653ba02ff2376f65e on berkeley-stat222:master.

@lunadadada is this ready for merge or does it need review? If it's still in review it should be marked as "WIP" in the PR title instead of "MRG".
PRs with "MRG" will be merged ASAP.

@dylandaniels we have already reviewed it in our group. Do we need to ask other people to review for us? If not, then it is ready to merge.

@CenzhuoYao - it is MRG'd now


Arrow function given to Event::listen stops further propagating of the event

Ziggy version
2.0.3
Laravel version
10.46.0
Description
The arrow function given to the event listener at https://github.com/tighten/ziggy/blob/2.x/src/ZiggyServiceProvider.php#L20 returns boolean false. This makes the dispatcher stop further propagating of the event at https://github.com/laravel/framework/blob/10.x/src/Illuminate/Events/Dispatcher.php#L298 .
This potentially breaks other application functionality, in our case Laravel Telescope when using Octane. Telescope also listens to the Laravel\Octane\Events\RequestReceived event but the dispatcher never invokes listeners because the arrow function BladeRouteGenerator::$generated = false returns false. This makes Telescope not record any requests.
I think a fix would be to revert back to a "regular" function in the Event::listen() call in https://github.com/tighten/ziggy/blob/2.x/src/ZiggyServiceProvider.php#L20 so the function does not return false. If we all agree to that I'm willing to write a quick PR for that, let me know.
Ziggy call and context
Not applicable

Ziggy configuration
Not applicable

Route definition
Not applicable

Yikes, yeah that's not good. Thanks! Will get a fix in right now.

Great, thanks for the quick response! 👍🏻


Multiple Replicas: Process messages exactly once

Action Item
Currently, we run all of our Deployments of the stateless service in Keptn Core with a single replica.
However, during a rolling update, there is a timespan where K8S is spawning up the new pod before terminating the current one, hence two pods will run at the same time.
We need to make sure that we do not process messages multiple times because multiple replicas of a keptn integration are running.
Implementation Details
The implementation details will be based on the result of the research done in #4689
Acceptance Criteria

[ ] Message sent to a replicated keptn service is processed at most once.
[ ] Messages can still be processed by multiple distinct Keptn services reacting on the same event

Definition of Done

[ ] Feature implemented and reviewed
[ ] Integration test in place
[ ] Unit tests

Dependencies

[x] https://github.com/keptn/keptn/issues/4689

already implemented with: https://github.com/keptn/keptn/issues/4689

integration tests still needs to be implemented!


[Improvement] Rows in Gravitino UI are highlighed on rollover but no action can be done

What would you like to be improved?
In the metalake page, the catalog page and the tables pages rows highlight as you roll over them, but no user action can be performed. For instance, a user may expect the catalog details to show up when clicking on a catalog row.
How should we improve?
Provide a user action or disable highlighting.

Row highlighting is just to show users which line the focus is on, to prevent confusion when there are too many rows, and it's not necessarily a prompt that requires action.


fix issue #1632 - [closed]

In GitLab by @sokril on Sep 19, 2018, 09:16
Merges weinode -> dev

In GitLab by @wknet123 on Nov 13, 2019, 11:23
closed


Potential bugs in InstEntry.cpp InstTable::setupInstVec()

Dear SwerV-ISS team,
while formally modelling the ISS core for Onespin's C++ ISA checker module, several discrepancies between the formal ISA model and the SwerV InstTable as created during setupInstVec() have been found. The affected instructions are listed below. As far as I can test, eliminating these discrepancies does not have any effect on the program execution. This could point to the reason why they have not been detected earlier: As far as I can see, the decoding does not make direct use of the information available in the InstTable member of the Hart object. E.g. operand masks are available in the InstTable but are not being used during decode() to obtain the operands from the instruction bitset. I assume this is due to better performance and easier code writability. B ut nevertheless, duplicating information is always risky ;-)
Best regards,
Markus Kettern
onespin.com
List of discrepancies with my explanations / interpretations (line numbers may be slightly inaccurate):

InstEntry.cpp / 153: immTop20 = 0xffff << 12 this is only the top 16 bits, should be : immTop20 = 0xfffff << 12
InstEntry.cpp / 390: FENCE mask includes dummy variable (should possibly be ignored), as well as fm, is this expected? FENCE.I mask as well, is set to 0xffffffff, should probably be 0xffff. FENCE.I is named "fencei" - this is the only instruction where the dot is left out in the name string
InstEntry.cpp / 456 ADDIW imm wrongly added to code mask<PHONE_NUMBER>1100000111000001111111, should be<PHONE_NUMBER>11111)
InstEntry.cpp / 602ff: all "amo..." instructions appear to have wrong mask (only 4 lowest bits masked instead of full 7-bis opcode)
InstEntry.cpp / 833 FMV.X.W rd is 0 according to standard, is wrongls forced to be 01001 in code
InstEntry.cpp / 871 FMV.W.X mask wronlgy set to<PHONE_NUMBER>1100011100000001111111 (0xfff1c07f), should probably be<PHONE_NUMBER>1100000111000001111111 (0xfff0707f)
InstEntry.cpp / 956ff FDIV.D, FMIN.D, FMAX.D highest bit of rs2 set to 1 in code (is outside codeMask)
InstEntry.cpp / 962 FSQRT.D wrong value 1 in code (is inside codeMask)
InstEntry.cpp / 1025 FCLASS.D, FCLASS.S wrong code mask (looks like 7-bit rd register)
InstEntry.cpp / 1030 FCVT.W.D wrong code for funct7 (upper 7 bits): 1111001, should be 1100001 cf. RISC-V standard, p.134
InstEntry.cpp / 1076 FMV.D.X wrong code for upper 12 bits:<PHONE_NUMBER>00, should be<PHONE_NUMBER>00 cf. RISC-V standard, p.134
InstEntry.cpp / 1082 MRET, SRET, URET, WFI possible wrong bit in code (around bit 22), not able to verify in standard
InstEntry.cpp / general C.NOP is not encoded as a special case of C.ADDI
InstEntry.cpp / 1115 C.LW: typo in code "04000", should be "0x4000"
InstEntry.cpp / 1169 C.JAL, C.ADDIW top 3 bits are 0 in code but 001 in the standard
InstEntry.cpp / 1174 C.LI has three operands, yet in the standard, only IMM and RD are listed. Is this on purpose?
InstEntry.cpp / 1180 C.ADDI16SP wrong code, "110000000000110" (0x6006), should probably be "110000100000001" (0x6101)
InstEntry.cpp / 1330: C.ADD Mask for rs2 is "11111000000" (0x7c0), should be "1111100" (0x07c)
InstEntry.cpp / general: Enforcement of shamt[5] to be 0 by adding it to the instruction mask seems inconsistent between C.SRLI/C.SRAI/C.SLLI and their uncompressed counterparts

This is the generated log file with all detected discrepancies:
log.txt

Hi Markus,
All the issues you reported are valid.  I fixed all of them except c.nop.  The problem codes/masks are currently not used but it is good to get them right since they will eventually be used.  Many thanks for finding and reporting these issues.  Will release new code shortly.
Joe


Docs and style cleanup

I just cleaned up the docs in exredis.ex and adapted some of README.md to Elixir's style guide.

Nice, thanks!


mac productivity

[ ] make should build everything (once, not again if nothing changed) such as it's usable:
[ ] istioctl native
[ ] mixer, pilot,... native
[ ] docker images
[ ] optionally native proxy, ...
[ ] run tests locally / native
[ ] run tests on minikube
[ ] run test on a cluster

once we get some/all of this - check it doesn't regress through #576

part of it started in #3080

I think this has been solved by both mac compilation fix and https://github.com/istio/istio/blob/master/tests/e2e/README.md#using-a-local-vm


Mobs like to jump into lava

Mobs try to jump over lava that's on ground level (1 block high). I assume they try to jump over the obstacle  but it never works. Maybe let them recognize lava and not try to jump past it? They actually seem to just try to walk through it even

Thanks for reporting. I will investigate further at some point.

Having a hard time replicating - if you are still tracking this, would you be able to get some screenshots?

I tested the mod by itself and I don't believe it's this mod unless it's some interaction with another mod so I'll close it for now.


getting version error in Next.js 15

Closing for lack of detail. Feel free to create a new issue with a reproduction. Zod 3.24 was just released and sometimes changes to type signatures can cause build errors. Happy to help debug if you provide more info.


Add a "Title only" option for "Display items on lists"

I know we are a lot who only read the title before clicking or ditching a post. May people like me be happier without summaries.
A trivial "Title only" option for "Display items on lists" should be nice.

In preferences there is an option "Do not fetch the content of articles", the content can be read on the original website, maybe that can fit your needs.

My feeds list is a way lighter with this option enable.
However, I would like to fetch the content of the articles.

Ok, but I will not add an option for every possible use case. This software has a voluntary limited number of features.
However, it's very easy to change the default behavior on your own copy of Miniflux, in the template file, just remove the line that display the summary: https://github.com/miniflux/miniflux/blob/master/templates/item.php#L24 You can also do it with CSS just hide the element...

Ok, I understand. I will apply this workaround.


Adds support for tz offsets without minutes

Fixes #307 and doc changes to address #291

@crsmithdev Travis failures seem to be related to coverage in locale tests, not anything in this changeset.


Partial joints

Fixes https://github.com/ros-controls/ros2_controllers/issues/31
Fixes https://github.com/ros-controls/ros2_controllers/issues/37

Codecov Report

Merging #68 into master will decrease coverage by 0.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #68      +/-   ##
==========================================
- Coverage   33.12%   33.02%   -0.11%
==========================================
  Files          12       12
  Lines        1123     1293     +170
  Branches      740      857     +117
==========================================
+ Hits          372      427      +55
- Misses        103      119      +16
- Partials      648      747      +99

Flag
Coverage Δ

#unittests
33.02% <ø> (-0.11%)
:arrow_down:

Impacted Files
Coverage Δ

...include/joint_trajectory_controller/trajectory.hpp
42.85% <0.00%> (-23.81%)
:arrow_down:

...nt_state_controller/src/joint_state_controller.cpp
7.69% <0.00%> (-1.14%)
:arrow_down:

...ory_controller/test/test_trajectory_controller.cpp
21.15% <0.00%> (-0.87%)
:arrow_down:

...ory_controller/src/joint_trajectory_controller.cpp
43.86% <0.00%> (+2.17%)
:arrow_up:

Continue to review full report at Codecov.

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

@ddengster Could I get your take on these changes?


Automatic NAT rules vanish when upstream gateway is auto-detect

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
WAN IF is setup with static IPv4: Bug occurs when selecting upstream gateway = Auto-detect: All automatic outbound NAT rules disappear and IPv4 usage in public internet relying on NAT fails to work. Tested on latest 24.1.4_amd64. Defining the gateway manually as upstream gateway makes these rules to reappear and NAT works again.
To Reproduce

Set up WAN IF with static public IPv4
Set up an upstream gateway in System -> gateway
Set Outbound NAT to automatic
Define auto-detect as "IPv4 Upstream Gateway" for WAN IF
Check Outbound NAT page.
---> No rules displayed
---> No outgoing IPv4 traffic to public internet

Expected behavior
Automatic outbound NAT rules remain where they are.
Describe alternatives you considered
In step 4 use the defined gateway from step 2 instead of auto-detect. IPv4 outbound NAT works again and rules are visible.
Screenshots
N/A
Relevant log files
N/A - I don't know which files might be interesting, please let me know.
Additional context
Since auto-detect is recommended by the docs it should also work that way. See also (German) discussion https://forum.opnsense.org/index.php?topic=39528.0
Environment
Software version used and hardware type if relevant, e.g.:
OPNsense 24.1.4-amd64
FreeBSD 13.2-RELEASE-p10
OpenSSL 3.0.13
Intel(R) Celeron(R) CPU N3450 @ 1.10GHz (4 cores, 4 threads)

which part of the docs are we referring to here? changing this behavior will break most people setup, so fixing the docs (or the text in the gui) might be wiser here.

The docs state for the interface configuration

In addition outbound nat will be set up automatically when mode is set to Automatic or Hybrid

which is ok.
But in outbound NAT there is no word about that specific required setting in order to get automatic rules to work. And unfortunately - which I find most important - the web ui says

If this interface is a multi-WAN interface, select an existing gateway from the list. For single WAN interfaces a gateway must be created but set to auto-detect.

which would render automatic outbound NAT useless if followed in single WAN setups with static configuration.

help text and documentation could use some attention indeed, actually behavior not so much.


Trouble with VLC launch

New to Python, but not home automation.  Would love to use this...but I need some help...
My setup is:
-Running Win 7-32 bit.
-Python 3.7 installed per default install; environment variable added to path.
-Installed via a CMD window "pip install requests" & also "pip install beatifulsoup4 " <=verified good install.
-Added VLC to my path <=so it can work from any path
After modifying the "play-station.py" file on line number 37 to be:
os.system("vlc --play-and-stop '%s'" % t.stream_url) <= removed "c" on "cvlc", and kept VLC window
from :
os.system("cvlc --play-and-exit '%s'" % t.stream_url) <= cvlc is for Linux...right?
I get the following error message from VLC:
Your input can't be opened:
VLC is unable to open the MRL ''https://d29r7idq0wxsaz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m=m'. Check the log for details.
So, recapping...From a command prompt window, the script prompts me from my Amazon email, and also password.  That part works, and then it gives me the following out put (which looks like it is working):
Art: https://images-na.ssl-images-amazon.com/images/G/01/Gotham/Genre_Stations_U
K/PS0001_eudmvd_UKClassicSoul.jpg
Playing station Classic Soul...
Playing September by Earth Wind & Fire from Greatest Hits [Earth Wind & Fire]...
So, what is wrong with the music stream amazon is sending to my VLC player?
From my VLC log file:
main debug: resyncing on (null)'https://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8
main debug: (null)'https://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8 is at 0
main debug: creating new input thread
main debug: Creating an input for '(null)'https://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8'
main debug: requesting art for new input thread
main debug: using timeshift granularity of 50 MiB
main debug: using timeshift path: C:\Users\Smarty\AppData\Local\Temp
main debug: 'https://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m=m' gives access 'https' demux any' path d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m=m'
main debug: creating demux: access=''https' demux='any' location='d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m=m' file='\d29r7idq0wxsiz.cloudfront.net\DigitalMusicDeliveryService\HPS.m3u8'
main debug: looking for access_demux module matching "'https": 15 candidates
main debug: no access_demux modules matched
main debug: creating access: 'https://d29r7idq0wxsiz.cloudfront.net/DigitalMusicDeliveryService/HPS.m3u8?m=m
main debug:  (path: \d29r7idq0wxsiz.cloudfront.net\DigitalMusicDeliveryService\HPS.m3u8)
main debug: looking for access

Now you need to be logged in to access the audio files. This wasn't needed in the past.
This example isn't working anymore. You have to access this files with the cookie (with tokens).

Thank you very much danieldaeschle for your reply.  Because I am about at the limits of my knowledge/understanding with Python programming ....I am not sure I fully comprehend the full aspects of your reply.
My question:  How to I get the "token", and where and how do I use it?
I suspect that if it were an easy or simple fix, you would have updated this project or mentioned how to do it in your response.  Right?
Again - thank your for taking the time to reply :)

The access token is in the cookie file.
The problem is that if you want to use vlc to access the stream files, vlc doesnt use this cookie file and has no rights to access it.
I tried downloading this stream files and play then... But why? I can just merge this stream files and convert it to a mp3 file. Wow, i got it. Isn't that a security issue at amazon?
I reported it to amazon security. They told me that this is a known issue.
So, i think this library won't work in future because this will be completely fixed in future.
Actually you can just convert every song into an mp3 😂.
But because this is a vulnerabilty and reverse engineering is forbidden i can't tell you how i did this :(
What do you want todo with this library?

Here is my use case - I have touchscreens and Echo dots throughout the house (touch and voice input control).  When I am having a larger "party/get-together", I would like to be able to change amazon streaming radio stations via the touch screen, and not use voice control (too much ambient noise during the party).
Presently I have one of my dots set up to output to my amp (feeding whole house music), and I can control that dot via my I-phone...but it would be much nicer if I could change audio streams (to different pre-sets) via my touch panels (X-Lobby is my GUI, and PowerHome is my HA program that runs all the touchscreens) .
I have no desire to download and reconstruct any stream files....I would rather just have VLC play the incoming stream in a minimized instance that I can output to the whole house amp.  Based on your reply, it doesn't sound like it is possible anymore.
Nice security catch by the way!!!

Is there no way to send a "change song" from the gui?

...From the Amazon I-phone Alexa app, under the "Music/Video&Books" area, you can control individual echos/dots.   I believe you can also do this from your computer's browser (once logged into Amazon).
I was hoping that I could have my HA program (PowerHome) trigger off the touch screen press, and use this repo to call pre-defined Amazon streaming music stations.
I just wanted to keep everything "clean", and under the hood of my GUI.

Ok, i think you have to reverse engineer which api call is made on this action.
I can't help you at this time. I have no echo dot.

Now you need to be logged in to access the audio files. This wasn't needed in the past.

Nope, still working for me without logging in. What is interesting is that it only seems to be 22.05kHz:
[00007f7d8404f558] packetizer_mpeg4audio packetizer: AAC channels: 2 samplerate: 22050

Looking at the web interface, the old streaming URL's been downgraded. Amazon's switched to MPEG-DASH
Note: None of this is the reason @smarty125 has had a problem with VLC, AFAICT. That might just be a Windows problem. The example of passing it to VLC as an external player is just that. Ideally there'd be a play function in the library...

Extracting the DASH manifest and trying to play it in a browser results in a couple of errors:

DRM: No license server URL specified!

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://dfqzuzzcqflbd.cloudfront.net/**-f246469139/bbc62065-ec67-3280-9c8f-394873.mp4. (Reason: CORS request did not succeed

Jaffa,
So you say it is still  working for you?  Can you please describe your set-up and what you are playing the streams with?
While I prefer to use a window 7/10 environment with VLC, I could also attempt to switch my approach over to my Linux Sinology NAS environment (if that would help).

It hasn't worked on my windows too.
I found a bug to download all the music files. I reported that to amazon and they told me that they're still fixing it.
Maybe there will be some changes in the api soon.

@danieldaeschle - the old mechanism to get access to the stream data (the M3U playlist) was necessary for the library to get access to data that was needed to play the track in an open way.
I can't find any way of doing that in any reasonable quality now. The streams still exist, but are now atrocious quality. The Amazon Music web client now uses DASH, relying on in-browser DRM and the HTML5 Media Extensions to play the protected content. Playing that in an open source library will be nigh on impossible; or certainly in a library that exposes media data.
TBH, my own interest has diminished considerably, unless we can find a way of playing the tracks. I don't want to rip Amazon off, but the lack of a library to play songs was the driver; and they've effectively locked that down.

https://www.androidpolice.com/2019/01/02/googles-widevine-l3-drm-used-by-netflix-hulu-and-hbo-has-been-broken/
DRM can be hacked now 😆


SUBSTRING bug

substring should work like this
SUBSTRING(Description,0,120)
,but it works from 1
SUBSTRING(Description,1,120).
(I am using indexeddb database)

The numbering is 1 based, meaning that the first character in the expression is 1

According to https://docs.microsoft.com/en-us/sql/t-sql/functions/substring-transact-sql
What database are you normally using?

we are using in mssql, mysql, sqlite. I think it should handle substrings starting from 0, because it works on other engines.


Use DataStore

Create 2 datastores:

[ ] Settings
[ ] Cache

Cache will contain the GPS location and pedometer steps
Migration

[ ] GPS location + pedometer steps to cache
[ ] Remaining shared prefs to settings
[ ] Use data store on preference fragments (add Andromeda support if needed)
[ ] Port over shared preference migration or verify it works as is (and research what it would take to port over)

Andromeda

[x] Add datastore support (synchronous with cache - drop in replacement for shared prefs)
[x] Add bulk edit support to preferences
[x] Preference fragment support

Import / Export

[ ] Determine how to import / export datastores and add to Andromeda

After running some tests, I found that SharedPreferences is actually more performant than data store.
Tests run:

getAll (shared prefs is faster)
get single (shared prefs is faster)
get all, then get single (about equal)
Shared prefs get single is much faster than get all

Thus, given that shared prefs is already integrated into Trail Sense and has better support on preference fragments, I see no benefit of migrating. Instead, there may be benefits of creating a async wrapper around shared prefs to take pref loading off the main thread.