Trigger management

this PR is for the fetching of the current configuration and status of a feed trigger

@csantanapr @jasonpet

Can the READ response be extended to include the triggersLeft value?
Related to: https://github.com/apache/incubator-openwhisk/issues/1398

Not sure how valid issue #1398 is anymore.  That was created before we set infinite triggers as the default for alarms.  The READ simply reads from the database and the triggers left is not stored in the database.  It is an in-memory count on the provider itself.  We really do not want to be doing database writes on every trigger fire.  We could try to read from a provider endpoint to get this value.  However, this is not trivial now that we have multiple provider instances (as part of our redundancy and load balancing support).  We would have to compute the endpoint url to use (by getting the worker id from the db first).

@abaruni - the legacy alarms code created some trigger entries in the trigger database with a '' for the namespace.  It was not until the creation of the __OW_NAMESPACE variable that we always started using the resolved namespace.  In your current implementation the lookup for READ would always use the resolved namespace and would never work for user's with older triggers who have '' set for the namespace.  Please see how we handle DELETE and do the same thing for READ.

@jasonpet Thanks for explaining, I see the reasoning that this requirement is less valid with the infinity max triggers value.
If the "triggers left" values are only stored in memory, does that mean in the event of a provider crash it's going to lose all that state?

@jthomas - yes, on a crash we would lose state and the count would start back from the beginning (initial value of maxTriggers).  We are implementing a new alarms action that will fire until an end date and will then stop once that date has been reached.  This would be a more reliable option and give the user more control when creating a temporary alarms trigger.

Need to handle how to deal when an old trigger has a different format for dateChange,

Reviewed and tested most recent changes and they look good.


Enforce ES-Lint rules for cypress-test-suite

Hi, I think as we are progressing with tests we need some kind of rules and standard notations to prevent us from writing bad code.
Proposed solution

ES-Lint is pluggable and configurable linter tool for identifying and reporting on standard coding patterns in JavaScript. Cypress team has also created an ESLint extension for standard cypress rules https://github.com/cypress-io/eslint-plugin-cypress. I suggest incorporating ESLint for our cypress-test-suite
Alternatives considered

Prettier but it only formats and beautifies code rather than actually complaining about coding patterns.

@wetneb @fgiroud How does this sound?

@wetneb @fgiroud How does this sound?

There's JSHint too, but I think ESLint is the best choice.
I know @wetneb said he was happy to use different setups for testing and application code, but I have a strong preference for a single set of tools and standards for all of the project's Javascript code, so I'd like to see adopt ESLint project wide.

There's JSHint too, but I think ESLint is the best choice.
I know @wetneb said he was happy to use different setups for testing and application code, but I have a strong preference for a single set of tools and standards for all of the project's Javascript code, so I'd like to see adopt ESLint project wide.

I am good with ESLint
@tfmorris the thing is that OpenRefine code and Cypress tests does not use the same Javascript version.
OpenRefine is coded using plain old javascript, whereas tests are using ECMA script 2015, so it might create issues if we try to have  ESLint project wide.
Basically OpenRefine code will triggers millions of warning and errors, because it's pretty outdated syntax, we would need to disable so many rules, making the use of ESLint pointless

I am good with ESLint
@tfmorris the thing is that OpenRefine code and Cypress tests does not use the same Javascript version.
OpenRefine is coded using plain old javascript, whereas tests are using ECMA script 2015, so it might create issues if we try to have  ESLint project wide.
Basically OpenRefine code will triggers millions of warning and errors, because it's pretty outdated syntax, we would need to disable so many rules, making the use of ESLint pointless


Wait for destination app height to be higher than consensus proof's

height.

Closes: #2433
Description
For ConnOpenTry and ConnOpenAck wait for destination app height to be higher than consensus proof's.

PR author checklist:

[ ] Added changelog entry, using unclog.
[ ] Added tests: integration (for Hermes) or unit/mock tests (for modules).
[ ] Linked to GitHub issue.
[ ] Updated code comments and documentation (e.g., docs/).

Reviewer checklist:

[ ] Reviewed Files changed in the GitHub PR explorer.
[ ] Manually tested (in case integration/unit/mock tests are absent).

Opening this in draft until we understand if it can be fixed in ibc-go.


DocBlocks do not match, phpstan issues

Monolog version 2
When I try to create a StreamHandler or RotatingFileHandler like this, ...
$streamHandler = new \Monolog\Handler\StreamHandler('php://output', $level);
$rotatingFileHandler = new \Monolog\Handler\RotatingFileHandler($filename, 0, $level, true, 0777);

... then phpstan outputs the following errors:
 90     Parameter #3 $level of class Monolog\Handler\RotatingFileHandler
         constructor expects 100|200|250|300|400|500|550|600|string, int
         given.
 109    Parameter #2 $level of class Monolog\Handler\StreamHandler
         constructor expects 100|200|250|300|400|500|550|600|string, int
         given.

It appears to be a bug in the DocBlocks of Monolog. See here:

https://github.com/Seldaek/monolog/blob/2.3.2/src/Monolog/Handler/RotatingFileHandler.php#L46-L52
https://github.com/Seldaek/monolog/blob/2.3.2/src/Monolog/Handler/StreamHandler.php#L43-L50

The DocBlock does not match with the actual constructor parameters.
When I fix the DocBlock in RotatingFileHandler and StreamHandler manually, the phpstan errors are gone.
The RotatingFileHandler:
/**
 * @param string $filename The filename
 * @param int $maxFiles The maximal amount of files to keep (0 means unlimited)
 * @param int|string $level The minimum logging level at which this handler will be triggered
 * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
 * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
 * @param bool $useLocking Try to lock log file before doing any writes
 */
public function __construct(string $filename, int $maxFiles = 0, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false)

The StreamHandler:
/**
 * @param resource|string $stream If a missing path can't be created, an UnexpectedValueException will be thrown on first write
 * @param int|string $level The minimum logging level at which this handler will be triggered
 * @param bool $bubble Try to lock log file before doing any writes
 * @param int|null $filePermission Optional file permissions (default (0644) are only for owner read/write)
 * @param bool $useLocking Try to lock before doing any writes
 *
 * @throws \InvalidArgumentException If stream is not a resource or string
 */
public function __construct($stream, $level = Logger::DEBUG, bool $bubble = true, ?int $filePermission = null, bool $useLocking = false)

I would be able to create a PR to fix this DocBlocks.

The level is defined here https://github.com/Seldaek/monolog/blob/main/src/Monolog/Handler/AbstractHandler.php#L40
Imported here https://github.com/Seldaek/monolog/blob/main/src/Monolog/Handler/AbstractHandler.php#L23-L24
And the actual types are here:
https://github.com/Seldaek/monolog/blob/main/src/Monolog/Logger.php#L29-L30
Because yeah, we don't allow every int, so I thought it's kinda nice to exactly define what is allowed.
The ideal way would be for you to also import the type from Monolog\Logger and use it as param type, then it should resolve the phpstan errors.

Unfortunately, that didn't work for me. This probably has to do with the fact that I additionally set the level from a settings array in the constructor.
$this->level = (int)($settings['level'] ?? Logger::DEBUG);

I also define int and null in my method paramameter list for $level.
public function addFileHandler(string $filename, int $level = null): self

Parameter #3 $level of class Monolog\Handler\RotatingFileHandler constructor expects
100|200|250|300|400|500|550|600|'ALERT'|'alert'|'CRITICAL'|'critical'|'DEBUG'|
'debug'|'EMERGENCY'|'emergency'|'ERROR'|'error'|'INFO'|'info'|'NOTICE'|'notice'|'WARNING'|'warning', int given.

I also don't want to declare "mixed" as datatype, because I prefer strict types. I just want to allow int|null.
As a quick fix I had to add /** @phpstan-ignore-next-line */ everywhere I want to create a log handler.

Yeah you would need $this->level to be typed as a Level, and the param type you can define this using @phpstan-param Level|null $level. Then things should work IMO.


Turnary Operator Executes wrong/both paths with "--transform-object-keys true"

Using the "?" Turnary operator a function in the "dead" branch is being executed when it shouldn't be.
Expected Behavior
Expected only the one (correct) path to be executed.
Current Behavior
const isTrue = something => !!(something?.bob || something?.sally);
const throwsError = () => {
  throw new Error("Should not be here!");
};
const myFunction = () => {
  return isTrue() ? { my: "object", anotherParam: throwsError() } : "The only place we should be";
};

console.log(myFunction());

Throws error!
Steps to Reproduce

save above code. "test.js"
npx javascript-obfuscator test.js --transform-object-keys true
node test-obfuscated.js

Expected string "the only place we should be" but getting exception "Should not be here!".
FYI: Without the transform-object-keys option it seems to be working fine.
Your Environment

Obfuscator version used:  "2.12.0"
Node version used: v14.15.3

Hmm, this is a hard case to track.
Seems to find these cases we have to traverse up to all parent nodes of each ObjectExpression node until we found the host node of ObjectExpression. If we found ConditionalExpression or LogicalExpression node, then we have to traverse over ObjectExpression node and if we found CallExpression node, then this is our case.
But this is too many additional operations just to cover this case.

PR:
https://github.com/javascript-obfuscator/javascript-obfuscator/pull/951

Released as<EMAIL_ADDRESS>For more performance, i used the following logic:

If ObjectExpression contains CallExpression or NewExpression nodes at any place - transformation of this ObjectExpression will be completely ignored


Nice 215 blog listing build

Create a ValidateRouteParams function that can handle fetching stories with pagination.  Able to handle fetching listing pages for news articles, blog posts, etc.
Redirects to first list page if pagination is out of range
Returns error if results or results.total is undefined, or if results.total is 0 and results.stories array is empty
Handles splitting featuredstory on page 1 of results
Refactored StoryblokImage component to better handle storyblok images service options for optimisation
Updated Author component so we can use in FeaturedStory card or in a similar contained component.

NOTE:
While building listing pages we noticed some potential performance gains by updating background Images with storyblok image service options to optimise image sizes and loading times.  We also updated the StoryblokImage component to better handle some of the image service options so we can serve optimised images across components and pages that consume the StoryblokImage component.

This is great, happy to merge. Loads of good stuff here!
One thing that we might want to talk about (also for the tech debt pile though - it won't hold up the PR) is what constants we want to enforce when rendering images. For example, everything here has a quality of 80, which sounds sensible, but if we want to change this and test the results then we'll have to update it in quite a few places instead of in one single config setting.


Try ruff instead of flake8

Consider using ruff instead of flake8. Try it out, read a bit, compare, see if the project should switch.

It might have some overlap with e.g. isort also. It would take some work to figure out what is best.


ArrayWidget shouldn't allow creatable

If the ArrayWidget is used for "creatable terms", then there's a mixup between tokens, labels and values, which makes the creatable feature useless (basically, you can create the terms, they look fine in the edit view, but in the object they are saved with autogenerated tokens, which are meaningless as a value).
I think the proper way to go is, in case Creatable is needed, to point to TokenWidget and solidify that as the only option.
@giuliaghisini Am I correct, or am I missing something?

i agree, but we had this case https://github.com/collective/volto-form-block/blob/1cc2ad6558585eba3dcbca53475199a17ab97d94/src/components/Sidebar.jsx#L539
where we want enable user to set a simple list of terms. And ArrayWidget with creatable is right for us.. or do you have any other suggestion?

@giuliaghisini It's better to use the TokenWidget. I think the ArrayWidget should follow the same conventions as the TokenWidget (use the label of the created element as the "token"), and when that happens, what will be the difference to the TokenWidget? I think they're the same widget.

I think there is some general confusion with these widgets, maybe we should take stock of the situation and document the differences of these widgets somewhere (here https://docs.voltocms.com/ for example). In this specific case I don't even have a vocabulary associated with the widget, it's a pure and simple list of strings. I'll take a look to the TokenWidget

@giuliaghisini I've started to do that here https://docs.voltocms.com/recipes/widget/ and I've added a ton of stories for the widgets. https://docs.voltocms.com/storybook/?path=/story/widgets-array--creatable&globals=measureEnabled:false
Actually now looking at the array widget creatable story, it looks like the array widget does the right thing? Meh... I need to check what happened there, maybe it's backend widget configuration, frontend older version, I don't know.

exactly! i tested the token widget, it do the same of the array widget, but it needs a vocabulary. Array widget, on the other hand, doesn't need a vocabulary. And that's exactly my case: having a creatable array without an attached vocabulary.
Maybe, what we could do, is to unify array widget and token widget in a single widget..


ci: better practice by github actions

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

CI By GitHub Actions

What is the current behavior? (You can also link to an open issue here)

more concise logic yaml
add pnpm-lock.yaml for real install cache (many famous projects add pnpm-lock.yaml to git)

https://github.com/vitejs/vite/blob/main/pnpm-lock.yaml
https://github.com/vuejs/core/blob/main/pnpm-lock.yaml

add packageManager for pnpm/action-setup to set pnpm version
lint & build & codecov can be parallel
auto cache and install by pnpm/action-setup & actions/setup-node
remove pnpm install in ci of scripts, we had installed it in actions.

Just for a example, with pnpm-lock.yaml & cache.

install job log

What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Other information:

I see oasis has lint rules, but most of the code doesn't follow them.

#1508


[Confluence] Fix 404 when listing space pages

Description
Fixes not found errors when asking for the pages of a space.
Currently, just returning an empty page set since the cause of 404 is not available (if the cause is a space that became unreachable, it will be deleted later).
Risk
na
Deploy
na

Merging now to stop the errors in prod
PMRR


fix(core): fix require_literal_leading_dot flipped behavior (#7227)

What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Docs
[ ] New Binding issue #___
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[x] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[x] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[x] I have added a convincing reason for adding this feature, if necessary

Other information

I've actually merged from 1.x instead.


Add support for SAM4L

SVD files can be found https://www.keil.com/dd2/pack/ under Microchip SAM4 Series Device Support and Examples.

[ ] Make sure svd2rust generates correctly
[ ] Add each target to top-level Cargo.toml
[ ] Ensure doc.rs link is valid for each target mcu
[ ] Publish to crates.io
[ ] Ensure README.md and Cargo.toml have the correct target mcu

Checklist for SAM4L integration
SVD files can be found https://www.keil.com/dd2/pack/ under Microchip SAM4 Series Device Support and Examples.

[ ] Make sure svd2rust generates correctly
[ ] Add each target to top-level Cargo.toml
[ ] Ensure doc.rs link is valid for each target mcu
[ ] Publish to crates.io
[ ] Ensure README.md and Cargo.toml have the correct target mcu

Currently this is blocked on svd2rust failing to create valid output.   It creates duplicate methods that appear to be related to incorrect support for the 'derivedFrom' attribute (as on USART1).

Opened svd2rust issue rust-embedded/svd2rust#504


ckpt cannot set use_rgb == true

Thanks a lot for your perfect work!
I want to use your model to provide an initialized 3dgs, so I tried to set use_rgb == true. But this will lead the following error:

Could you upload an RGB-type model ? Or is there an approach to transfer an shs-3dgs to rgb-3dgs?

BTW, the colab may add one line to prevent error:
!pip install "jax[cuda12_local]==0.4.23" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

We haven't trained the model with rgb-3dgs. If you prefer to use only rgb, perhaps you can manually compute it from shs?
Thank you for the reminder, we will fix it later!


[FLINK-27971][tests][JUnit5 migration] flink-orc

What is the purpose of the change
Update the flink-formats/flink-orc module to AssertJ and JUnit 5 following the JUnit 5 Migration Guide
Brief change log

Removed dependences on JUnit 4, JUnit 5 Assertions and Hamcrest where possible.

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
I've verified that there are 62 tests run in this module before and after the refactoring.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive):no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

@flinkbot run azure


test only, ignore

Not for merging, just lets us see what inferrable predicates are out there in the wild

@typescript-bot test top200

Seems like a lot of these are explicitly annotated guards?


Add preliminary ServingRuntime support

What this PR does / why we need it:
This PR adds preliminary Serving Runtime support as outlined in this proposal document.
Example InferenceService will look like:
apiVersion: "serving.kserve.io/v1beta1"
kind: "InferenceService"
metadata:
  name: "sklearn-iris"
spec:
  predictor:
    model:
      framework:
        name: sklearn
        version: "0"
      # runtime: kserve-sklearnserver
      storageUri: "gs://kfserving-samples/models/sklearn/iris"
      env:
        - name: SOME_ENV_VAR
          value: foo
    minReplicas: 2
    maxReplicas: 3

Will be adding some tests shortly.
Followup PRs can be done to:

Adjust the InferenceService mutator to convert old schema into the new schema.
Add more default ClusterServingRuntimes

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #1816
Release note:

Add ClusterServingRuntime and ServingRuntime CRD support

@pvaneck The inferenceservices are registered with name "model" instead of inferenceservice name.

@Suresh-Nakkeran Thanks for pointing that out. Hmm, one way to fix that from the Isvc spec is under spec.predictor.model add:
      args:
        - --model_name=sklearn-iris

However, I realize that having to add this quite hampers the user experience.
Need to figure out a good way to automatically pass in the Isvc name to whatever arbitrary flag or env variable the runtime expects. the KFServer-based runtimes require that --model-name be passed in with the Isvc name. And I think MLServer requires that the MLSERVER_MODEL_NAME env var be set to the Isvc name.
Perhaps having some known placeholder/template variable be used (e.g. ${{ INFERENCESERVICE_NAME }} or ${{ metadata.name }}) in the ServingRuntime args/env that is processed and substituted with the InferenceService name. So args for the sklearn serving runtime might look something like:
args:
    - --model_name=${{ INFERENCESERVICE_NAME }}
    - --model_dir=/mnt/models
    - --http_port=8080

But that placeholder will eventually be replaced before passing off the container spec.
@yuzisun @njhill WDYT?

@pvaneck @yuzisun I just tried the below approach in my local that we can have default model name "model" in runtime. In Predictor reconcile, we can update model name where we update runtime container. The model name can also be part of environment.
// Update default model name with inferenceservice name in args and envs if it exists
isvcutils.UpdateModelName(container, isvc.ObjectMeta.Name)

func UpdateModelName(container *v1.Container, name string) {
	// update model name in args if exists
	args := container.Args
	for i, vv := range args {
		if strings.Contains(vv, "model_name") {
			args[i] = fmt.Sprintf("%s=%s", constants.ArgumentModelName, name)
			break
		}
	}

	// update model name in envs if exists
	envs := container.Env
	for i, vv := range envs {
		if vv.Name == constants.MLServerModelNameEnv {
			envs[i] = v1.EnvVar{Name: constants.MLServerModelNameEnv, Value: name}
		}
	}

	container.Args = args
	container.Env = envs
	return
}

@Suresh-Nakkeran That approach is a bit specific towards the KFServer and MLServer runtimes. Would like to keep it flexible enough to where a user can inject the inferenceservice name into the runtime even if the argument or env variable is named something else (i.e. not --model_name or MLSERVER_MODEL_NAME). This  is why I am leaning towards introducing a template variable that can be used in the ServingRuntime yaml. Though, I am open to other solutions.

/retest

seems like there is a race condition during installation, the ClusterServingRuntime crd is not ready yet when creating the serving runtimes.
unable to recognize "STDIN": no matches for kind "ClusterServingRuntime" in version "serving.kserve.io/v1alpha1"
unable to recognize "STDIN": no matches for kind "ClusterServingRuntime" in version "serving.kserve.io/v1alpha1"

@Suresh-Nakkeran That approach is a bit specific towards the KFServer and MLServer runtimes. Would like to keep it flexible enough to where a user can inject the inferenceservice name into the runtime even if the argument or env variable is named something else (i.e. not --model_name or MLSERVER_MODEL_NAME). This is why I am leaning towards introducing a template variable that can be used in the ServingRuntime yaml. Though, I am open to other solutions.

ye template approach(e.g go template) sounds good to me. @pvaneck, @Suresh-Nakkeran is working on a follow up PR after this is merged in, so I think he can help implement the template there.

ye template approach(e.g go template) sounds good to me. @pvaneck, @Suresh-Nakkeran is working on a follow up PR after this is merged in, so I think he can help implement the template there.

Sounds good. Can try to get this one in asap so follow-up PRs and enhancements can be performed in parallel. Trying to get the E2E tests to pass.
I believe a list of some of the to-dos are:

Add template variable support for enabling passing in isvc name to runtime container.
Add more default ClusterServingRuntimes
Adjust the InferenceService mutator to convert old schema into the new schema.
Add weight/priority to Framework/ModelType, and add associated logic?
Add E2E tests using new format
Eventually add default ClusterServingRuntimes as a part of the default installation (perhaps generate separate yaml file for default runtimes as including the runtimes in the main default install causes that race condition with the CRD not existing yet).

Also, wasn't quite sure where we landed with the Framework vs ModelType naming inside the ModelSpec. ModelMesh uses ModelType, but I currently still have it as Framework here. Does predictor.model.modelType make sense?

Need to figure out why E2E tests are failing with:
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Internal error occurred: failed calling webhook \"inferenceservice.kserve-webhook-server.defaulter\": Post \"https://kserve-we
bhook-server-service.kserve.svc:443/mutate-serving-kserve-io-v1beta1-inferenceservice?timeout=10s\": no endpoints available for service \"kserve-webhook-server-service\"","reason":"InternalError","details":{"causes":[{"message":"failed c
alling webhook \"inferenceservice.kserve-webhook-server.defaulter\": Post \"https://kserve-webhook-server-service.kserve.svc:443/mutate-serving-kserve-io-v1beta1-inferenceservice?timeout=10s\": no endpoints available for service \"kserve
-webhook-server-service\""}]},"code":500}

Need to figure out why E2E tests are failing with:
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Internal error occurred: failed calling webhook \"inferenceservice.kserve-webhook-server.defaulter\": Post \"https://kserve-we
bhook-server-service.kserve.svc:443/mutate-serving-kserve-io-v1beta1-inferenceservice?timeout=10s\": no endpoints available for service \"kserve-webhook-server-service\"","reason":"InternalError","details":{"causes":[{"message":"failed c
alling webhook \"inferenceservice.kserve-webhook-server.defaulter\": Post \"https://kserve-webhook-server-service.kserve.svc:443/mutate-serving-kserve-io-v1beta1-inferenceservice?timeout=10s\": no endpoints available for service \"kserve
-webhook-server-service\""}]},"code":500}

@pvaneck this is the crash stack from controller
E1122 09:46:23.242494       1 runtime.go:78] Observed a panic: runtime.boundsError{x:0, y:0, signed:true, code:0x0} (runtime error: index out of range [0] with length 0)
goroutine 511 [running]:
k8s.io/apimachinery/pkg/util/runtime.logPanic(0x1aff6e0, 0xc00116a540)
        /go/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/util/runtime/runtime.go:74 +0xa3
k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
        /go/pkg/mod/k8s.io/apimachinery@v0.19.2/pkg/util/runtime/runtime.go:48 +0x82
panic(0x1aff6e0, 0xc00116a540)
        /usr/local/go/src/runtime/panic.go:969 +0x166
github.com/kserve/kserve/pkg/controller/v1beta1/inferenceservice/components.(*Predictor).Reconcile(0xc001152940, 0xc0006b9800, 0x13, 0x2010a60)
        /go/src/github.com/kserve/kserve/pkg/controller/v1beta1/inferenceservice/components/predictor.go:171 +0x1b01
github.com/kserve/kserve/pkg/controller/v1beta1/inferenceservice.(*InferenceServiceReconciler).Reconcile(0xc000745f40, 0x2004c60, 0xc00086ce10, 0xc000a2a040, 0x12, 0xc000a2a020, 0
x14, 0xc00086ce10, 0x40941b, 0xc00084e000, ...)
        /go/src/github.com/kserve/kserve/pkg/controller/v1beta1/inferenceservice/controller.go:166 +0x622
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000a8fe00, 0x2004ba0, 0xc000cccb00, 0x1a4b5c0, 0xc0009e73e0)

Thanks @pvaneck ! This is awesome work !
/lgtm
/approve

We can follow up the work in https://github.com/kserve/kserve/issues/1924


docs: remove outdated update engines.node reference in 10.0.0 changelog

Checklist

[X] documentation is changed or added
[X] commit message follows commit guidelines

Description of change
docs: remove outdated update engines.node reference in 10.0.0 changelog
This PR is related to issue https://github.com/nodejs/node-gyp/issues/2937 and removes

update engines.node to ^14.17.0 || ^16.13.0 || >=18.0.0

from the CHANGELOG which is outdated and contradicts the previous correct line which states:

node-gyp now supports node ^16.14.0 || >=18.0.0

To complete the resolution of issue https://github.com/nodejs/node-gyp/issues/2937, the release notes node-gyp v10.0.0 need to be separately edited.

This follows on from the suggestion of @lukekarrys in https://github.com/nodejs/node-gyp/issues/2937#issuecomment-1791296115.
My editor automatically trims end-of-line trailing whitespace, so there are a few extra lines which are changed. If this is not OK I'm happy to push again without the whitespace changes.


Jasmine timeout when running protractor on headless server with Xvfb or vncserver

Hi
I get a timeout error when running my protractor tests on a headless server.
Initially I tried getting the tests to run in Jenkins, but then realised I could replicate my error outside of Jenkins when executing from shell.
When I run the tests on my dev machine, no problem.
As soon as I run them on headless server (using either Xvfb or vncserver to provide display), I get the Jasmine timeout error.
I've tried it with or without selenium (latter by setting directConnect: true in protractor config), same result.  I've tried setting the allScriptsTimeout and jasmineNodeOpts: {defaultTimeoutInterval: timeout_in_millis} timeouts, but all that happens then is that the test takes as long as the largest timeout value to fail.
I am running the tests on Ubuntu 14.04 LTS, protractor version 1.6.1.
Test and configuration is dead simple.  Names of files reflect that this was for debugging Jenkins test runs :D
== BEGIN protractor_jenkins.conf ==
exports.config = {
  directConnect: true,
  chromeDriver: '../node_modules/protractor/selenium/chromedriver',
  capabilities: {
        browserName: 'firefox'
  },

  specs: ['e2e/jenkins.spec.js']
 };

== END ==
== BEGIN jenkins.spec.js ==
/**
Dead simple test to debug test execution on headless server.
*/
describe('angularjs homepage', function() {
  it('should have a title', function() {
    browser.get('http://www.angularjs.org');
    expect(browser.getTitle()).toEqual('AngularJS — Superheroic JavaScript MVW Framework');
  });
});

== END ==
Test run like so:
export DISPLAY=:0 && Xvfb :0 -ac & ./node_modules/protractor/bin/protractor test/protractor_jenkins.conf
Error log to follow (stripped project name/paths from output):
== BEGIN error log ==
[launcher] Running 1 instances of WebDriver
browser.getTitle() : [object Object]
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
Protractor.get(http://www.angularjs.org/) - test for angular
node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:345:15)
    at [object Object].Protractor.executeAsyncScript_ (node_modules/protractor/lib/protractor.js:247:26)
    at [object Object].Protractor.get (node_modules/protractor/lib/protractor.js:467:8)
    at [object Object].<anonymous> (test/e2e/jenkins.spec.js:6:13)
    at node_modules/protractor/node_modules/jasminewd/index.js:94:14
    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)
    at [object Object].webdriver.promise.ControlFlow.runEventLoop_ (node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1518:8)
    at [object Object].wrapper [as _onTimeout] (timers.js:252:14)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
F

Failures:

  1) angularjs homepage should have a title
   Message:
     timeout: timed out after 30000 msec waiting for spec to complete

== END ==

Hey, @adtrsa!
Could this be the same problem of #1734?
Basically, it's a problem with Firefox 35 and the selenium webdriver.
If possible, I suggest you test it against Chrome or downgrade Firefox to 33~34.
By the way, looks like they fixed it already, but didn't release it yet.

Hi @ericmdantas
Thanks for the reply, appreciate it.
The Ubuntu installations I run the tests on (dev or CI server) should be identical; except the one is operating in headless mode with the tests using an Xvfb provided display for rendering the browser windows (in theory :D).
I think I had issues with Chrome running in headless mode (failing outright due to some other WebDriver issues) so I tried to get it working with Firefox first.  At least with Firefox it executes the tests,  but they all time out.
I will try your suggestion to downgrade Firefox and report back the results.

@ericmdantas So much for my assumption that my machines were using identical versions Firefox!  Turns out dev machine uses Firefox 33 and CI server uses 35.  So definitely going to do the downgrade now ;)

@adtrsa, haha, it's ok.
We better close this one and focus on #1734, since julie is tracking the modifications there.

Right, I thought the Firefox Selenium version should not be an issue since we are using the 'directConnect: true' option (bypassing Selenium).  However, I have just confirmed Firefox 35 is the culprit here, even in directConnect mode.  Upgraded my dev machine Firefox (less effort than downgrading the CI server FF) and now the tests break.
Thanks, closing issue.


Check for tenant and namespace for pulsar-admin functions list command

Currently, if you try to list functions using pulsar-admin functions list you simply get the long usage string back if you fail to specify the tenant or namespace. With this change the feedback is more useful.

@jerrypeng @srkukarni please review this PR?

@lucperkins do you mind rebasing this PR?

retest this please

retest this please

@aahmed-se This PR may be completely superfluous given recent changes to Pulsar Functions config validation. Please check with @jerrypeng before proceeding with this PR at all. Feel free to close if unnecessary.

Closed this PR due to inactivities. Will revisit it if the changes are needed.


VOL-2321: LDAP_ADMIN_PASSWORD now uses AWS Secrets Manager

Description
LDAP_ADMIN_PASSWORD now uses AWS Secrets Manager
Related issue: VOL-2321
Type of change

Feature (non-breaking change which adds functionality)

Checklist:

[x] I have performed a self-review of my own code
[x] I have added tests that prove my fix is effective or that my feature works

Note: Don't merge this yet, the @dvsa/secrets-manager package is not use published.

Note: Don't merge this yet, the @dvsa/secrets-manager package is not use published.
This is why CI/Tests are failing.

No longer applies. Package was re-published after the timeout, and now green build 😄


addon messing with 44 variables with empty envrc

using fish shell + starship, addon causes integrated terminals to fail to load.
This only happens with this addon, not with direnv in general. Not sure how to debug this even

This is in the addon logs, may have something to do with this?

FWIW it does work for me:

You'll have to give me a lot more to be able to help. Maybe… tell me a bit about your system? How did you install the software and how are you running it? Where are fish and starship located? Does it matter where the workspace with the empty .envrc is? How reproducible is this behavior?
I have no idea if I can help you but without more info I can't even start trying…
My 🔮 believes that nix is involved but I can't figure out how yet.
Also screenshots don't help without you describing why you included them, and are strictly worse than just posting the screenshotted text. Especially when the screenshots are severely cropped, like the extension output above. Which other environment variables were changed and how? Which internal direnv variables were changed?

Void Linux 6.1.21_1 #1 SMP PREEMPT_DYNAMIC Fri Mar 24 00:43:29 UTC 2023 x86_64 GNU/Linux

Starship and direnv both installed through xbps

The .envrc doesn't even have to exist, it always does it.

Full extension output on failure:
https://gist.github.com/endigma/7f135a9f002f33e0a1974b413acad068

Thanks. Those variables are consistent with what a nix shell defines, the extension unsetting them all seems really weird…
You wouldn't happen to have installed vscode with nix, or started it from a nix-shell?
Does the direnv: Reset and reload environment change anything?

I'm currently working, and reproducing this requires reloading the window which breaks live share. I'll do any experimentation later. No vscode nix, just normal systemwide nix afaik.

There's no rush, I'm about to go to sleep anyways :)

This probably had something to do with having both direnv extensions installed. :stuck_out_tongue:

Adding
echo "Hello"

to .envrc seems to prevent the issue from happening.

When it's working, starship reports I'm in impure / nix-shell, but the only package seems to be nix-shell.
> nix-shell-info
nix-shell

> which bash
/nix/store/pk3kkaafln68gzxawk57qp9m5h5285va-bash-interactive-5.2-p15/bin/bash

> which ls
/nix/store/lyicmql3ws929d7azr65h25b2hyakmb6-coreutils-9.1/bin/ls

> which cargo # something a default nix-shell wouldn't provide
/home/end/.cargo/bin/cargo

This is consistent with behavior when running, for example, nix-shell -p bash, except that there's no shell.nix anywhere in the parent directories and use nix is not mentioned in the envrc.

If I use direnv block to block the almost-empty .envrc, the nix-shell goes away and I'm left with a stock environment.
direnv: error /tmp/tmp.inFuqoP3N6/.envrc is blocked. Run `direnv allow` to approve its content
> which bash
/usr/bin/bash

I think this error is caused by any-nix-shell.  I use this with fish. Are you able to reproduce with this installed?

Sorry, I haven't found the time to try and reproduce this with any-nix-shell yet, but I agree that it seems to be caused by it.
Could you try running without it? Nix started shipping with some fish integration in $HOME/.nix-profile/etc/profile.d/nix.fish at some point.

I've had it disabled for a while, don't really use nix-shell anymore so it hasn't been a huge issue. It would be good to have this fixed though.


Issues with the build process:

I was able to generate the audio file and the individual frames, but I am experiencing difficulties with building the Visual Studio Code project. Would it be possible to obtain more information about the build process for the bnd file?

You can try to use experimental makefile project, link is in repo readme. It should be crossplatform and work as far as you have make thing working

it doesn't work because of the window.h dependency which other platforms do not have

You can try to remove dirent.h completely from the code so it works on Linux or whatever non-Windows OS you use

There's a new Python script converter, there's a link in readme. Try it


[US] Foreign-key Dropdown Selector and Display Fields

As a application user, I want my foreign key values to be displayed in an easy to understand fashion, so that I can configure my database quickly and easily.

MoSCoW
Risk
Story Points

Must have
High
8

Acceptance Criteria
Whenever a table has a column that is a foreign key, we want it to display the display field value of the table row it is referencing. In addition, setting a foreign key value in the modal should be a dropdown, with a list of the display fields of each row of the referenced table.
Risks
Mapping foreign keys to their display field values will be tricky, it may take some time to find the correct combination of API calls + VMD accessing
Pre-requisites

[x] Meet with the stakeholder to clarify the requirements
[x] Complete the requirements of this US

Tasks

[x] Implement the functionality to map the value of a foreign key in a table to its corressponding display field value in the referenced table
[x] Have the foreign key columns of tables display the display field value of the referenced table by default
[x] Develop a function to fetch all the display field values of a refereneced table, along with the primary keys, based on a foreign key column in the original table
[x] Create a dropdown that displays when editing or adding foreign-key columns, that lists all the display field values of the referenced table (selecting a display field value should set the foreign key to its correct value)

https://github.com/WillTrem/UInnovate/assets/92006009/25f83046-2216-4c3a-bd9e-b6490be1d33f


Slow Performance on Samsung S4 using GPU : PowerVR SGX544MP3 (Initial Load Apps : 7seconds, Action Button : 2 seconds)

Hi There,
Currently I have the same problem here.
I've already build flutter apk for release, this is from sample new project flutter increment floating button. But it seem to slow. for first load apps, it takes 7 seconds. for processing increment floating button it takes 3 seconds. Just from new sample project, I'm not customize the program yet.
Initializing gradle... 1.6s
Resolving dependencies... 4.5s
Running 'gradlew assembleRelease'...
Skipping AOT snapshot build. Fingerprint match.
Built build\app\outputs\apk\app-release.apk (7.9MB).

I've installed the same installer on Samsung S7, Samsung J3, HTC One it's work fine
same as native speed.
Samsung S7 edge using GPU : Adreno 530 - G9350, Mali-T880 MP12 - G935FD, G935F, G935W8 -> works fine
HTC One using GPU : Adreno 320 -> works fine
Samsung J3 using GPU : Mali-400, Mali-T720 - USA -> works fine
Xiaomi Redmi Note 4 using GPU : Adreno 506 -> works fine
Samsung S4 using GPU : PowerVR SGX544MP3 -> slow
ASUS Zenfone 5 using GPU : PowerVR SGX544MP2 -> the slowest
Thank You.

Can you clarify exactly what you are measuring?
See also https://github.com/flutter/flutter/issues/14036

Without more information here we've been unable to make additional progress. Closing the issue as no longer actionable, and significantly out of date.


calculation of Column width and other problems

Hello,
i am really new to Neat, so i am trying to use it for my upcoming projects.
But there are some problems.

1.The gutter between the yellow blocks need to be the same as main gutter.
How can i realize this.
2.And if i add to the yellow blocks  span-columns(6,block-collapse) they have to bet exact 50%,
but now they are 51.1788%;

With Neat you can't nest grids and use a span-columns(6) for your yellow blocks, considering their parent (the green box) is a 12-columns grid nested in your main grid (red one).
I guess it's what you do.
I suggest using a simple margin or padding for your yellow boxes equal to the Sass variable $gutter which contains the exact width of the gutter used by the grid.
Hope it helps

I did not understand it very well.
Can you give me an example.
Neat works at top level for grids?
So if i nest Grids it not really works fine.
But if i cant use span-columns for the yellow block, so how i can calculate the width?
width = (100% - maingutter) / 2 ?

Yes!
Here is a Pen http://codepen.io/mehlah/pen/rOoLGx?editors=110

Closing due to lack of response; @bunower feel free to let us know if you still are having issues.


CentOS focuses on CentOS Stream

https://blog.centos.org/2020/12/future-is-centos-stream/
This issue is not urgent.
CentOS changes their development plan for CentOS Stream.
We need to consider how to support CentOS Stream and how to support rpm for RHEL versions in the future.

FYI: CentOS 8 can migrate CentOS 8 Stream with the following commands:
root@centos-linux# dnf install centos-release-stream

root@centos-linux# dnf swap centos-{linux,stream}-repos

root@centos-linux# dnf distro-sync

root@centos-stream# cat /etc/centos-release
CentOS Stream release 8

ref: https://centos.org/distro-faq/#q7-how-do-i-migrate-my-centos-linux-8-installation-to-centos-stream

I'm not sure yet, but How about using UBI(Red Hat Universal Base Image)?
I mean that just using it to build with td-agent package.
It resolve to compatibility issue for RHEL.
https://catalog.redhat.com/software/containers/search?q=ubi8&p=1
ref. https://speakerdeck.com/moriwaka/ubi-faq

If CentOS stream keeps compatibility with RHEL at some extent, it may be ok only provide built  with CentOS stream.

We use rocky as a build image for RHEL. See #354


NetherPortals created above bedrock

Placing a relatively high netherportal in the overworld will spawn a netherportal above the bedrock in the nether.
16:04:24 [INFO] This server is running CraftBukkit version git-Bukkit-1.1-R6-24-g2b9a870-b2022jnks (MC: 1.2.3) (Implementing API version 1.2.3-R0.1-SNAPSHOT)
16:04:50 [INFO] [Multiverse-Core] [Multiverse-Core] Multiverse-Core Version: 2.4-b512
16:04:50 [INFO] [Multiverse-Core] [Multiverse-Core] Bukkit Version: git-Bukkit-1.1-R6-24-g2b9a870-b2022jnks (MC: 1.2.3)
16:04:50 [INFO] [Multiverse-Core] [Multiverse-Portals] Multiverse-Portals Version: 2.4-b518
16:04:50 [INFO] [Multiverse-Core] [Multiverse-NetherPortals] Multiverse-NetherPortals Version: 2.4-b514
16:06:16 [INFO] Plugins: Multiverse-Core, Multiverse-Portals, Multiverse-NetherPortals, Essentials

Ha. That's funny. This almost sounds like a vanilla bug caveat. I may be able to correct it in Multiverse-NetherPortals, but core doesn't didn't touch portal forming.

I tried to replicate this on a vanilla server but didn't get lucky; I didn't try too much, however (I was working on other things at the time). I can attempt to replicate this again and get back to you if you don't think it has anything to do with {Core,NetherPortals}.

Oh it could easily do with NetherPortals, but you filed this under Core. If you have NetherPortals installed, please close this one and file it there. Thanks!

Not a problem, we just do this to keep organized :)


When using the object form of mapDispatchToProps in typescript, type errors are thrown

My async action is similar to this:
export const changeSearch = (val: string) => (dispatch: Dispatch<any>) => {   dispatch(searchAction(val));   getSearchRes().then(res => {      const { totalNum, data } = res;      dispatch(saveSearchResAction({ totalNum, data }));   }); };
Then I use it in my component:
export default connect(   null,   { changeSearch } )(Search);
typeescript gives the error message:
The type "(val: string) => void" cannot be assigned to the type "(val: string) => (dispatch: Dispatch<any>) => void"
If mapDispatchToProps uses the form of a return function, it is normal.
(dispath: Dispatch) => ({ changeSearch: (val: string) => dispath<any>(changeSearch(val)) })
Is there any problem with the way I use it?

We don't maintain the types for React Redux. Please consult the support resources for DefinitelyTyped.


[Bug]: expect(sth).toMatch(rgx) and expect(sth).toBe(expect.stringContaining(rgx)) have inconsistent results

Version
27.5.1
Steps to reproduce
Just run this in any test file:
it('.stringMatching() is inconsistent with .toMatch()', () => {
  const UTCregex = /\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+|)(?:Z|[+\-]\d{2}:?\d{2})/;

  expect(UTCregex.test('2036-01-20T17:58:40.037+00:00')).toBeTruthy();
  expect('2036-01-20T17:58:40.037+00:00').toMatch(UTCregex);
  expect('2036-01-20T17:58:40.037+00:00').toBe(expect.stringMatching(UTCregex));
});

Expected behavior
All 3 expectations should be fulfilled, the test should be green.
Actual behavior
The last expectation fails with this:
Expected: StringMatching /\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+|)(?:Z|[+\-]\d{2}:?\d{2})/
Received: "2036-01-20T17:58:40.037+00:00"

Additional context
For some complex results we create an expectedObject, something like this:
const expectedObject = {
  id: expect.stringContaining('...'),
  date: expect.stringMatching(UTC_REGEX),
  // ...
}

There it is very useful to use expect.stringMatching(...) as we can get the difference of the complex object while we only need to write one expectation.
Environment
System:
    OS: macOS 12.3.1
    CPU: (8) x64 Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
  Binaries:
    Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
    Yarn: 1.22.17 - ~/.yarn/bin/yarn
    npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
  npmPackages:
    jest: ^27.5.1 => 27.5.1

The documentation over .stringMatching does not say anything about differences with expect().toMatch().

Seems unintentional. Wanna send a PR?

Seems unintentional. Wanna send a PR?
Sorry folks, making myself familiar with your codebase (it is so huge I did not even find where the actual source was for these two matchers) and understanding all your tests, your workflow, ask relevant questions to relevant people and all would mean about 2-3 days of work. I work in a tiny company where there is no budget for open source work and my work-life balance is also not so great.

@latobibor Did you try .toEqual() matcher instead of .toBe()? Works for me.
An example in documentation of expect.stringMatching() is also using .toEqual(). Hm.. Docs do not mention that .toBe() works in this case.

Source code of .stringMatching():
https://github.com/facebook/jest/blob/0208815654e54814c3a4477fb366a5f1e1d8b997/packages/expect/src/asymmetricMatchers.ts#L281
Source code of .toMatch():
https://github.com/facebook/jest/blob/a293b75310cfc209713df1d34d243eb258995316/packages/expect/src/matchers.ts#L826-L829


fix: little-endian conversion truncate

Closes #17
Add truncation for little-endian conversion

They are passed now:

@yunwei37 Do we need to get Codecov CI passed now?

You can change the bpf conformance checking test in ci (There will be bpf conformance running 2 times, one for checking and one for publishing the result)
Enable the check For bpf cobformance can affect the coverage


mp-build should try to log into Dockerhub when the docker registry is an empty string

Describe the bug
When running mp-build, the container registry field can't be left blank. However, a user can manually edit the config.json file and leave an empty string, which causes mp-build to log into the Docker hub and then fail.

Reproduction steps

edit the config.json file. Enter an empty string for docker_registry key value.

{
...
 "docker_registry": "",

}

run mp-build

Expected behavior
We should prompt the user to enter a registry.
Additional context
No response

Idea: don't write config.json until we've verified that the registry is valid


add "Getting help" section to README.rst (for #161)

Attempt to resolve #161
Live README.rst preview
Included references

Splash FAQ page on "Website is not rendering correctly" section
Scrapy contributing guide page on "Reporting bugs" section
Stack Overflow [scrapy-splash] tag page on "frequent" tab

Awesome, thanks @iAnanich!


Aggregation changes + shiny app improvements

added a modified aggreCAT function to calculate an aggregated mean rating and uncertainty (still a work in progress)
edited the data input file so the aggregated values are calculated there and we can use them in the shiny app
changes to shiny app including

adding a toggle option for plots that have aggregated means and uncertainty (it's not very good so it helps to be able to turn it off)

made separate tab for the journal predictions/merit values so they are comparable and more visible

added spider charts for comparison of 2 papers

other stuff to resolve conflicts

Looking good, thanks. Mentioned some  tweaks and next steps  in github comments and slack,


Undefined Variable Rule does not understand static class variables.

PHPMD version: 2.8.0
PHP Version: 7.2.25
Installation type: composer
Operating System / Distribution & Version: Debian 9.6

Current Behavior
The new feature "Undefined Variable Rule" introduced in https://github.com/phpmd/phpmd/pull/497
is not working with static class variables, such as
class CmsBlock
{
    protected static $cmsBlockBuffer = [];

    protected function getCmsBlockById(string $cmsBlockKey): array
    {
        if (isset(static::$cmsBlockBuffer[$cmsBlockKey])) {
            return static::$cmsBlockBuffer[$cmsBlockKey];
        }

        return static::$cmsBlockBuffer[$cmsBlockKey] = $this->findCmsBlockByKey($cmsBlockKey);
    }
}

PhpMd triggers error message Avoid using undefined variables such as '$cmsBlockBuffer' which will lead to PHP notices.
Expected Behavior
No error messages.
Steps To Reproduce:
Explain all the steps you did to create this bug so we can reproduce it.
Checks before submitting

[+] Be sure that there isn't already an issue about this. See: Issues list
[+] Be sure that there isn't already a pull request about this. See: Pull requests
[+] I have added every step to reproduce the bug.
[+] If possible I added relevant code examples.
[+] This issue is about 1 bug and nothing more.
[+] The issue has a descriptive title. For example:  "JSON rendering failed on Windows for filenames with space".

I ran some tests. All is fine as long as the static variable is not an array. So the probable cause is PDepend evaluate the $array[$key] before static::$array, so it looks for a local variable named $array instead of the static property static::$array. The fact that the error is not raised when wrapping the property in parentheses (static::$cmsBlockBuffer) tends to confirm this hypothesis.

Is there any update on this one?

I have a wide refactorization in progress because the new rules about variables revealed problems in the way we detect variables then detect if they are related to a read or write operation that are actually in PDepend for a very long time.
This should fix this error but it will take time.

the same problem:
PHPMD version: 2.8.2
PHP Version: 7.4.3
Installation type: composer

Hi @matweew @Axent96 and @dereuromark!
Could you please try to install "phpmd/phpmd": "dev-feature/issue-714-fix-self-and-static-properties-access" in your composer.json to test the fix #781 with your applications?
Thanks,

Hello @kylekatarnls .
any chance of this getting a patch (tag)? I guess not because it sounded like a lot of, possibly breaking, changes.

2.9.0 will only contain 1 new feature: Add rule for PHP's @ operator. Everything else in this version will be bugfixes. So you will just have to disable 1 rule to get the same features as in 2.8.2 as if 2.9.0 would have been a 2.8.3.

It says that in 2.9.0 it's fixed but I'm still getting the same error on static variables which are arrays when using 2.9.0 and PHP 7.3.22.

Hi @oneserv-heuser I get no error with PHPMD 2.9.0 and the code chunk given in this issue. Can you provide a chunk to reproduce your issue?

@kylekatarnls It happens when you have an array of objects and try to access a specific element and calling a function on it. Here is an simplified example:
class Test
{
    protected static $test;

    public function test(): void
    {
        self::$test[0]->getTest();
    }
}

Or is it intended behavior?

It's not. I see the difference with the initial issue, return self::$test[0]; does not trigger the error while return self::$test[0]->foo(); triggers it because the ->foo() is parsed before the self::.
I'm on it.

I have the same problem:
PHPMD version: 2.9.1
PHP Version: 7.4.9
Installation type: composer
 if (isset(self::$var[$cacheHash][$url])) {                 $models[$url] = self::$var[$cacheHash][$url]; }
<violation beginline="277" endline="277" rule="UndefinedVariable" ruleset="Clean Code Rules" priority="3">
  Avoid using undefined variables such as '$var' which will lead to PHP notices.
</violation>
<violation beginline="278" endline="278" rule="UndefinedVariable" ruleset="Clean Code Rules" priority="3">
  Avoid using undefined variables such as '$var' which will lead to PHP notices.
</violation>

@kylekatarnls Hello there!
I have similar problem with Symfony\Component\HttpFoundation\Response
There is
    public static $statusTexts = [
        100 => 'Continue',
        101 => 'Switching Protocols',
        102 => 'Processing',            // RFC2518

So I have error when use Response::$statusTexts[$statusCode].

Hi there!
Is there any news about this issue?

@a-menshchikov As you see it is reopened. @kylekatarnls is assigned but that was from before the reopening so I'm not sure he will pick it up. Feel free to create a PR to fix this or wait till someone else has the time to do it 😃

The difference between SomeClass::$var and SomeClass::$var['key'] is that collectPropertyPostfix in UndefinedVariable.php only recognize SomeClass::$var, so we need to handle ASTArrayIndexExpression too:
diff --git a/src/main/php/PHPMD/Rule/CleanCode/UndefinedVariable.php b/src/main/php/PHPMD/Rule/CleanCode/UndefinedVariable.php
index 510e0c2d..a8f0c3ed 100644
--- a/src/main/php/PHPMD/Rule/CleanCode/UndefinedVariable.php
+++ b/src/main/php/PHPMD/Rule/CleanCode/UndefinedVariable.php
@@ -18,6 +18,7 @@
 namespace PHPMD\Rule\CleanCode;

 use PDepend\Source\AST\ASTArray;
+use PDepend\Source\AST\ASTArrayIndexExpression;
 use PDepend\Source\AST\ASTClass;
 use PDepend\Source\AST\ASTPropertyPostfix;
 use PDepend\Source\AST\ASTUnaryExpression;
@@ -276,6 +277,8 @@ class UndefinedVariable extends AbstractLocalVariable implements FunctionAware,
             foreach ($property->getChildren() as $children) {
                 if ($children instanceof ASTVariable) {
                     $this->addVariableDefinition($children);
+                } elseif ($children instanceof ASTArrayIndexExpression) {
+                    $this->addVariableDefinition($children->getChild(0));
                 }
             }
         }

2022 and this issue is still not fixed in version 2.11.1

@mshamaseen the beauty of opensource is that everyone can contribute 😃 Feel free to create a PR with a fix and test.
It is 2022 and everyone is welcome to contribute and improve the tools that are provided for free. I love that because the maintainers doesn't have an unlimited amount of time, energy and motivation so they need to prioritize.

If this feature is important to you, you could also hire a freelancer to work on it

I totally understand, maintaining an opensource package is not an easy task and very time-consuming too, we are all thankful for this great opensource project and we are wishing for it to progress further.
on the other hand, what I don't understand is the upset from someone telling the users not to expect bugs to be fixed, I believe that everybody has the right to know about the status of an opensource project and whether it is maintained or not, people should understand that they need to hire freelancers for this project if they want it to be maintained before starting using it.

(working) workaround for Axent96's example:
$_var =& self::$var;
if (isset($_var[$cacheHash][$url])) { $models[$url] = $_var[$cacheHash][$url]; }

(define by reference is optional, in my case was necessary, in this case isn't)


Enable file downloads on WordPress

We're about to release automated file downloads this week so would be nice to enable this by default in the plugin similar to how we have external link clicks and 404 error pages enabled.

+1 for this one :)

thanks @jdevalk!

New WordPress plugin release is now out! See https://wordpress.org/plugins/plausible-analytics/
File downloads are now included alongside external link click and 404 error page tracking

I see props in the changelog, but apparently my work was not prop worthy? :)

Oops! You're totally right, @jdevalk! I'll add them now and commit it, so they'll appear in the next release (which should appear in a month or so)
I took over the development for this plugin at the beginning of last week, and since the plugin hasn't been updated in 2 years, I saw so many PRs and commits in the past week, I had no idea who to give props to anymore! ("Ik zag door de bomen het bos niet meer, zeg maar ;-))
Thanks for your efforts, @jdevalk!

Haha no problem at all @Dan0sz :)


DHE 2048-bit ClientKeyExchange is sending 257 as Pubkey Length instead of 256

Server: Win2008R2 IIS setup to use 2048-bit DHE
Client: TLS-Attacker
cipher suite used: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f)
$ java -jar TLS-Client.jar -connect <IP_ADDRESS>:443 -cipher TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
14:18:43 [main] INFO : DefaultWorkflowExecutor - Connecting to <IP_ADDRESS>:443
14:18:43 [main] INFO : SendAction - Sending messages (client): CLIENT_HELLO,
14:18:44 [main] INFO : ReceiveAction - Received Messages (client):
14:18:44 [main] INFO : SendAction - Sending messages (client): DH_CLIENT_KEY_EXCHANGE, CHANGE_CIPHER_SPEC, FINISHED,
14:18:45 [main] INFO : ReceiveAction - Received Messages (client):
When I looked at the packet capture, noticed that after client sent CKE, CCS, FINISHED, the server is sending TCP RST.
$ tshark -nr ./tls-attacker-test.cap
1   0.000000   <IP_ADDRESS> → <IP_ADDRESS>   TCP 74 40524 → 443 [SYN] Seq=0 Win=29200 Len=0 MSS=1460 SACK_PERM=1 TSval=1109457922 TSecr=0 WS=128
2   0.000605   <IP_ADDRESS> → <IP_ADDRESS>   TCP 74 443 → 40524 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=11378711 TSecr=1109457922
3   0.000633   <IP_ADDRESS> → <IP_ADDRESS>   TCP 66 40524 → 443 [ACK] Seq=1 Ack=1 Win=29312 Len=0 TSval=1109457923 TSecr=11378711
4   0.087310   <IP_ADDRESS> → <IP_ADDRESS>   TLSv1.2 191 Client Hello
5   0.093368   <IP_ADDRESS> → <IP_ADDRESS>   TCP 1514 [TCP segment of a reassembled PDU]
6   0.093400   <IP_ADDRESS> → <IP_ADDRESS>   TCP 66 40524 → 443 [ACK] Seq=126 Ack=1449 Win=32128 Len=0 TSval=1109458015 TSecr=11378720
7   0.093441   <IP_ADDRESS> → <IP_ADDRESS>   TLSv1.2 518 Server Hello, Certificate, Server Key Exchange, Server Hello Done
8   0.093452   <IP_ADDRESS> → <IP_ADDRESS>   TCP 66 40524 → 443 [ACK] Seq=126 Ack=1901 Win=35072 Len=0 TSval=1109458015 TSecr=11378720
9   1.091496   <IP_ADDRESS> → <IP_ADDRESS>   TLSv1.2 385 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
10   1.092379   <IP_ADDRESS> → <IP_ADDRESS>   TCP 60 443 → 40524 [RST, ACK] Seq=1901 Ack=445 Win=0 Len=0
Upon investigating the packet capture, I noticed that Client is sending 257 bytes as PubKey Length instead of 256 with a leading 0x00 in the pubkey.  May be it is failing because of that.
Handshake Protocol: Server Key Exchange
Handshake Type: Server Key Exchange (12)
Length: 1034
Diffie-Hellman Server Params
p Length: 256
p: ffffffffffffffffadf85458a2bb4a9aafdc5620273d3cf1...
g Length: 256
g:<PHONE_NUMBER>00000000000000000000000000000000000000...
Pubkey Length: 256
Pubkey: 006590943c1433140dae48a7cbb4a16182c4d17717738c87...
Signature Algorithm: rsa_pkcs1_sha1 (0x0201)
Signature Hash Algorithm Hash: SHA1 (2)
Signature Hash Algorithm Signature: RSA (1)
Signature Length: 256
Signature: 72923e13691ac70ea9102012f9eec224ccc10a5f377ac253...
TLSv1.2 Record Layer: Handshake Protocol: Client Key Exchange
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 263
Handshake Protocol: Client Key Exchange
Handshake Type: Client Key Exchange (16)
Length: 259
Diffie-Hellman Client Params
Pubkey Length: 257
Pubkey: 00b10b88e6e5a903d946bf6d7acedb6454a0a8fadd4db190...
In a 2048-bit DHE the pubkey size is 2048/8  = 256 bytes.  Then why ClientKeyExchange is sending 257 bytes (although the leading byte is 0x00)?   Is it a bug or I am missing something here?

Hey saravananmk,
thanks for the report. You correctly found a "bug" in TLS-Attacker. Its already fixed in the development version. TLS-Attacker currently 2.6 sends DHE CKE with leading 0x00. This is technically not a bug since the specification does not prohibit doing this, however some servers do not like this and therefore abort the handshake. You can fix this bug by applying the following fix to the DHClientKeyExchangePreparator:
-        msg.setPublicKey(clientPublicKey.toByteArray());
+        msg.setPublicKey(ArrayConverter.bigIntegerToByteArray(clientPublicKey));

Thanks for reporting this!


Generic mechanism for switch commands

It sounds like now might be the time to implement the more general Switch-command option/closure thing we discussed in #784 and #508. This is due to to #755.
While designing this, I'd suggest to keep in mind that we would like to use this as a mechanism for keeping a compromise of the front-end HIL REST API server from being able to run arbitrary commands against or get the credentials for the switch.

My original thought was to basically do JSON rpc:
http://www.jsonrpc.org/specification
The 10,000 foot view is:
{
    "jsonrpc": "2.0",
    "method": "modify_port",
    "params": {
        "channel": "vlan/native",
        "network_id": null,
        "port": "gi1/0/4"
    },
    "id": 1
}

There's a response object that looks pretty similar, but has either "result" or "error" instead of "params". "id" is used to correlate requests and responses. Leaving off "id" indicates not wanting the result.
One thing that makes this a little awkward in the current context is that we're doing things queued rather than synchronously (which was the whole point in the daemon in the first place).
Thoughts? We can use this space to brainstorm. We should pin down a specific set of requirements. This  came out of the observation that we seemed to be drifting towards a generic mechanism for making calls to the network daemon, and wanted to do so in a principled fashion, but we haven't really dug too much into discussions of what it should look like.

We should pin down a specific set of requirements.

To answer this question, we should figure out things we can't do with the current implementation (or difficult to do)

We want to be able to do more things with the switch at this point (instead of just doing modify-port and revert-port).
ability to do switch ops based on ports (not necessarily nics).
if switch raises an error, we can't really handle it.

One thing that makes this a little awkward in the current context is that we're doing things queued rather than synchronously (which was the whole point in the daemon in the first place).

if the networking daemon is running on a single thread wouldn't the requests be automatically queued?

I am inclined to simply add a few more columns to the networking action table. Those columns can hold a UUID and the status (success, error, in progress). The APIs that perform network action can return the UUID for it. And then there'll be a new API to query the status of the networking operation using the UUID that was returned. This seems pretty simple to implement. This was suggested by @knikolla
To answer my questions I raised above.

We can add more valid switch operations in addition to modify-port and revert-port.
With this, we are still stuck with doing operations based on nic, and not port. But now that I think of it, there will be (or at least, shouldn't be) no free ports registered in HIL. Every port must be connected to a nic, otherwise it's useless for HIL.
If the status turns out to be error, then we don't make the database change. The user would see that their node had no change in networks, and they can confirm that using the new API to see that their last call errored out.

Quoting Naved Ansari (2017-12-13 10:53:31)

I am inclined to simply add a few more columns to the networking action
table. Those columns can hold a UUID and the status (success, error, in
progress). The APIs that perform network action can return the UUID for
it. And then there'll be a new API to query the status of the
networking operation using the UUID that was returned. This seems
pretty simple to implement. This was suggested by [1]@knikolla

This is roughly what I'd had in mind, and I think it's a good idea.
Much of the discussion here is about moving towards de-coupling the
network daemon from the api server, but I don't think this proposal will
set us back on that at all.

2. With this, we are still stuck with doing operations based on nic,
   and not port. But now that I think of it, there will be (or at
   least, shouldn't be) no free ports registered in HIL. Every port
   must be connected to a nic, otherwise it's useless for HIL.

The motivation for the switch was for port_revert, which an
administrator may want to call during setup. They can probably do this
after attaching a NIC, but it would be a natural thing to want to do it
right away. I don't feel terribly strongly about this though.


Rename --error-kwarg-hash-without-splat to --ruby3-keyword-args

Motivation
Per @jez comments on #3608, --ruby3-keyword-args is probably a better name for this flag, since down the road there may be other errors we'll want to add than just "you have to use ** on a keyword arg hash passed positionally", and we won't want to add a separate enable flag for each of those.
Test plan
See included automated tests.

We have a policy of testing changes to Sorbet against Stripe's codebase before
merging them. I've kicked off a test run for the current PR.  When the build
finishes, I'll share with you whether or how it failed. Thanks!
Stripe employees can see the build result here:
→ https://go/builds/bui_IKWFiXt8CoXeq0


Fixed #35784 -- Extended HttpResponseRedirectBase to preserve the original HTTP method with status codes 307 and 308.

Trac ticket number
ticket-35784
Branch description
Other than 301 and 302 response codes for redirects, there is also 307 and 308.
Currently, Django is unaware of these.
Let's add two new HTTP response classes for 307 and 308 and enhance django.shortcuts.redirect with a new keyword argument preserve_method that, in combination with the existing permanent, decides which of the four redirect classes to use.
Note: this idea came during DjangoCon US 2024 as a side effect of my talk "The art of (not) redirecting".
Checklist

[x] This PR targets the main branch.
[x] The commit message is written in past tense, mentions the ticket number, and ends with a period.
[x] I have checked the "Has patch" ticket flag in the Trac system.
[x] I have added or updated relevant tests.
[x] I have added or updated relevant docs, including release notes if applicable.
[x] I have attached screenshots in both light and dark modes for any UI changes.

@sarahboyce I think preserve alone is not enough. What else could it be. Would preserve_verb be any better?

Thanks for all the suggestions, will work on the changes soon.

@sarahboyce I think preserve alone is not enough. What else could it be. Would preserve_verb be any better?

preserve_request maybe? Long ones might be preserve_request_method preserve_method_and_body
I wasn't sure what method this meant on first reading but I do understand having now reviewed it

Alright, I'll go with the verbose preserve_request_method for now.

@nessita I would gladly accept all your suggestions, as I don't really have anything to argue regarding docs. Would you like to wait for someone else's feedback?

@nessita I would gladly accept all your suggestions, as I don't really have anything to argue regarding docs. Would you like to wait for someone else's feedback?

I have all these applied locally so I can push them, no worries! Thanks.

Thank you everyone!


Make replay a service in preparation for consolidating with search & scrollback

Move the replay code as is with minimal changes making it a service similar to search & scrollback.
This is in preparation for cleaning up and consolidating the code between the three to reduce duplicate code and so they're consistent. See also https://github.com/42wim/matterircd/pull/553 for work on making search consistent.

Merging this created an unexpected problem for me: I cannot join private channels any more

Merging this created an unexpected problem for me: I cannot join private channels any more

Is it because of this change or stock 0.28.0 per #578?

I am using current master branch, with a few of the open PRs on top. This bug appears only when I apply this change. See b823f51 vs 37d8c1a


Reformat markdown-content page for better visual organization

See the content/comment here: https://github.com/withastro/docs/pull/668#issue-1249627394
Specifically, we should start by replacing bullet points with headers (level 4) and see whether that fixes both the ability to scan the contents better, and also that some of these items are long enough that they could now do with multiple paragraphs to visually space out all the content. (And that's harder to manage within a bullet point.)
If that's not the instant solution, then we just figure out how to make the page nicer to read.  :)
This should NOT be marked as a minor change when it happens, so that it triggers our "Languages need updating" Issue.

Also leaving a note re: maybe improving (or adding) an example for <Content /> since a common use case is mapping through an array of posts, like from this Discord thread: https://discord.com/channels/830184174198718474/983477899971666012/983495572512206889
(code would be stripped down for our example)
---
export async function getStaticPaths() {
  const posts = await Astro.glob('../../../../../content/**/*.md')

  return posts.map((post) => {
    const filePath = post.file.split('/')
    const filename = filePath[filePath.length - 1].slice(0, -3)
    const date = new Date(post.frontmatter.date)
    const formattedMonth = ("0" + (date.getMonth() + 1)).slice(-2)
    return {
      params: {
year: date.getFullYear(), month: formattedMonth, slug: filename },
      props: { post, date: post.frontmatter.date },
    };
  });
}
const { year, month, slug } = Astro.params;
const {post, date} = Astro.props
---

{year}

{month}

{slug}

{date}

<post.Content/>


Add config and launch directories to recommended package layout

These two directories seem common enough, and already a convention,
that we should consider adding them to the recommended package layout.
Pinging @ros2/team in case there are any objections.

Other common directories are "scripts", "bin", and "env_hook", though I'm not sure if we want to recommend anything about those.

Other common directories are "scripts", "bin", and "env_hook", though I'm not sure if we want to recommend anything about those.

I would 👎 scripts (though I don't feel strongly), 👍 bin and env_hook.

@Mergifyio backport rolling


feat: validate counters

Please read contributing guidelines and remove this line.

Benchmark results
Metrics with a significant change:

circuit_witness_generation_time_in_ms (root-parity): 295 (+51%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
740
740
740

l1_rollup_calldata_gas
6,668
6,680
6,680

l1_rollup_execution_gas
586,800
586,812
586,812

l2_block_processing_time_in_ms
1,329 (-3%)
5,047 (-1%)
10,047 (-1%)

l2_block_building_time_in_ms
22,607 (-1%)
89,999
181,523 (+1%)

l2_block_rollup_simulation_time_in_ms
22,464 (-1%)
89,510
180,569 (+1%)

l2_block_public_tx_process_time_in_ms
8,874 (-1%)
35,420 (+1%)
72,378 (+3%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
15,508
28,622

node_database_size_in_bytes
22,913,104
39,526,480

pxe_database_size_in_bytes
29,868
59,425

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes
circuit_witness_generation_time_in_ms
circuit_proving_time_in_ms
circuit_proof_size_in_bytes

private-kernel-init
112 (+5%)
16,772
33,766
N/A
N/A
N/A

private-kernel-inner
313 (+3%)
57,607
33,766
N/A
N/A
N/A

private-kernel-ordering
690
213,464
48,421
N/A
N/A
N/A

base-parity
7.61 (+2%)
128
64.0
287 (-3%)
13,835 (+3%)
2,208

root-parity
49.0 (+1%)
27,064
64.0
:warning: 295 (+51%)
188,231 (+4%)
2,720

base-rollup
658
111,094
925
7,891 (+4%)
167,038 (+4%)
3,104

root-rollup
64.2 (+1%)
11,454
789
198 (+7%)
17,224 (+4%)
3,424

public-kernel-app-logic
123 (+2%)
61,017
51,751
336 (-12%)
422 (+1%)
65,344

public-kernel-tail
442 (+1%)
166,458
7,691
469 (-1%)
420 (-1%)
10,112

public-kernel-setup
102 (+1%)
61,017
51,751
313 (+8%)
384 (+1%)
65,344

public-kernel-teardown
105 (+1%)
61,017
51,751
272 (+3%)
359 (+3%)
65,344

merge-rollup
6.42 (-1%)
2,696
925
117 (+5%)
2,490 (+3%)
3,104

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
11.1 (-1%)
18.0 (-2%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.7
31.8
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.644 (-1%)
0.553 (-2%)
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
51.7
80.1 (-2%)
259 (-2%)
504
990
1,953 (-1%)
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
95.9
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.529
0.495 (-1%)
0.470 (-2%)
0.470
0.469
0.467 (-1%)
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
61.7
118 (-2%)
369 (-3%)
740
1,468
2,920 (-1%)
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
106
208
692
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.539
0.532 (-1%)
0.501 (-3%)
0.509
0.507 (-1%)
0.508 (-1%)
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
67.0

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
108

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.587

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
51,016
1,046,607

Transaction size based on fee payment method
| Metric |  |
| - |  |
Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes
2 new note hashes

tx_pxe_processing_time_ms
2,196 (+2%)
1,924 (+1%)
5,166

Metric
0 public data writes
1 public data writes
2 public data writes
4 public data writes
8 public data writes

tx_sequencer_processing_time_ms
673 (+3%)
897 (+1%)
970
1,803 (+3%)
1,154


[requests][util] Move most part of requests to httputil or netutil

Currently, what it mainly does is provide a non default http transport and client, which is not related to a handy wrapper around net/http.
Optional

[ ] enrich the interface for requests, might consider something like

https://github.com/hashicorp/go-getter

[x] util for using unix domain socket

Fixed in #96


Correct contact us link on 500 and 404 error page

What is the context of this PR?
Fixed the broken 'contact us' link on the 404 and 500 error pages.
How to review
Check that the new link directs you to the contact us page on the Census website when you are on a 404 or 500 error page.

 Incorrect contact-us link on 500 and 404 error page


Add Cyrptocurrency to BoxBilling/FOSSBilling [Feature Request]

Add cryptocurrency support (like Bitcoin) to FOSSBilling.
It Would be Nice to have.

https://github.com/FOSSBilling/FOSSBilling/issues/41


Add support for Anchor dropdown items

This is to add anchor support to dropdown menu items in reference to #76. I am not sure I did the Types correctly as I am not an expert in TS by any means - but this feature would be very useful to me. (and others hopefully)

Thank you! @saturnonearth


Cancel the function of transcript when a room is encrypted

When a room is encrypted, the message should not be recorded, so the transcript function should be canceled in this situation.
But it should remain when users don't choose OTR encryption.

We won't be able to see transcripts (chat log) for encrypted message? :)
I am not getting why? I mean why we dont want to see chat logs of OTR chat?

OTR means Off The Record ... so encrypted messages should not be recorded in chat history.
However, We could log it and give user a option enable chat log or not. But for security concern at first I prefer we could disable chat history when encryption starts.

When I use Pidgin and Psi+ in a 1-1 private and encrypted chat, they will log chat history too but encrypt the chat log use my private key.
But for group chat, what key should we use to encrypt the chat history?


A11y_Azure Tools Storage Explorer_Signing into Azure Storage_Toggle Explorer Pane - Tree View_ScreenReader: When the voiceover focus lands on one of the 'Storage Accounts' such as 'locals and attached', the user has to press 'Control + Option + Space' two successive times to expand.

GitHubTags: #A11yMAS;#A11yTCS;#A11ySev2;#BM_AzureToolsStorageExplorer_May2022;#Azure Tools Storage Explorer;#MAC;#FTP;#DesktopApp;#WCAG4.2.9;#Voiceover;#AINotInScope;
Environment Details:
Application Name: Azure Tools Storage Explorer
Application Version: 1.24.0
Mac Version: macOS Monterey 12.3.1
Screen Reader: Voiceover
Repro Steps:

Please do not close this bug. This bug should only be closed by TCS, C+AI Accessibility tester after verification of the fix.
Launch Azure Tools Storage Explorer.
Sign in to Azure.
Tab to 'Explorer' pane tree view.
Tab to any of the 'Storage Accounts' such as 'Locals and attached'.
Turn on voiceover and try to expand.

Actual:
When the voiceover focus lands on one of the 'Storage Accounts' such as 'locals and attached', the user has to press 'Control + Option + Space' two successive times to expand.
Expected:
When the voiceover focus lands on one of the 'Storage Accounts' such as 'locals and attached', the user should press 'Control + Option + Space' 1 times to expand.
User Impact:
Screen reader users will face difficulty if they have to use multiple keyboard strokes to activate the control. It is not recommended.
Attachment:

@MRayermannMSFT, Here the issue is with screen reader and not with the normal keyboard usage. It works fine for a normal keyboard user and not for the screen reader user.

I've been able to reproduce this issue on a relatively simple tree in an HTML file running in Edge. The problem seems to crop up once I introduce the aria-expanded attributes. That is, VoiceOver only starts saying "0 items enclosed" when aria-expanded is defined. Otherwise VoiceOver says nothing about the number of child items.
However, I'm pretty darn sure we're implementing the tree correctly. NVDA, for reference, seems to get the number of child items right just fine.

Item 1

Item 2

Item 3

Item 4

Item 5

Item 5

I'll take this to accessibility hours just to make sure we're doing this right.

I'm not entirely sure why this is happening. But since the user only needs to press Spacebar to expand/collapse, I'll take this to offices hours to check whether we need to do anything.

Spoke with Ryan Shugart and Scott O'Hara at Accessibility office hours. This is due to the fact that Apple and VoiceOver don't support tree semantics; trees simply don't exist in Apple systems.  Therefore, there's nothing we can do to fix this.

Closing this bug as per above comment received.


Non-administrators users cannot use Azure CLI extensions installed with --system option

Describe the bug
Non-administrators (Users group) other than the administrator who installed an extension cannot use the extension installed with --system option introduced at Azure CLI version 2.6.0.
To Reproduce

Install Azure CLI 2.6.0.
Run command prompt as administrator.
Install an extension with --system option. (ex. az extension add --name azure-devops --system)
Switch to another user who is not in the Administrators group.
Run any command provided by the extension installed by the step 3. (ex. az devops -h) Then, you’ll see that Azure CLI could not find the extension.
Check access permission for extension directory and its sub directory. Then, you’ll see that permissions for sub directories of extensions’ directories are missing as below.

C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure-cli-extensions\azure-devops>icacls .
. NT SERVICE\TrustedInstaller:(I)(F)
NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(RX)  -- sub directories does not inherit this permission, and uses cannot access files Azure CLI need to access.
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(RX)
APPLICATION PACKAGE AUTHORITY\ALL RESTRICTED APPLICATION PACKAGES:(I)(OI)(CI)(IO)(GR,GE)
C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure-cli-extensions\azure-devops\azext_devops>icacls .
. NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
DESKTOP-KMBUKNF\Administrator:(OI)(CI)(F)
Expected behavior
Non-administrators (Users group) other than the administrator who installed an extension can use the extension installed with --system option.
Also, I think that sub directories of extensions’ directories should inherit permission from parent directory (extension directory).
Environment summary
Azure CLI 2.6.0 on windows 10
Additional context
Workaround I found so far
Grant permissions to the following folders under C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Lib\site-packages\azure-cli-extensions\azure-devops.

azext_devops
azure_devops-0.18.0.dist-info
Properties -> Security tab -> Advanced -> Enable inheritance -> Press OK button
Again, run any command provided by the extension installed by the step 3. (ex. az devops -h) You can see that the command was executed successfully.

@fengzhou-msft please take a look


left sidebar: Add cursor pointer change on hover to Streams icons.

Fix regression in #6437

Merged!  Thanks @synicalsyntax @tommyip for the quick fix and quick testing!


Improve and correct status for function, sources, sinks

Modifications

Cleanup function status.  Create own class instead of using protobuf
Create classes for source and sink status
Refactor code to so that source and sink can get status in their own manner

This serves only a beginning to separate out sources and sinks from functions.  Much more refactoring can be done.

Not sure why github isn't showing renaming (and few changes) of FunctionsImpl -> FunctionsImplBase as a simple diff.  Perhaps this can help:
http://www.mergely.com/vNtCDbvV/

@jerrypeng as for choosing which fields to have in the status for sinks and sources, can we deferred that to discussion and a future PR.  We can cleanup and add the fields we want after a discussion.

@jerrypeng sounds good.


fix MFA trusted device login /cas service access denied

CAS configuration: MFA trust device enabled
Error case: user login to https:///cas directly without redirection from any server, after entering username/password, user receives "Unauthorized Service" error instead of presenting MFA (or bypass if the device is trusted). This is inconvenient for testing, which testers normally logins https:///cas directly.
Cause: RegisteredServiceAccessStrategyAuditableEnforcer.java throws CODE_UNAUTHZ_SERVICE if registeredService is null (which is the case if user logins to https:///cas directly). This PR corrects this problem by not throwing CODE_UNAUTHZ_SERVICE if registeredService is null.
I am not sure if there is any security implications in this fix, because I am not sure if there is any other cases that registeredService is null.

Thanks for the patch. This cannot be accepted. The check for the registered-service is a critical security measure and cannot be removed. If this is in fact an issue, please provide a sample overlay that duplicates the problem without manual instructions.

Yes, this is an actual issue, as mentioned above. Attached the overlay, although it uses LDAP and redis, I believe the issue is reproducible for any authentication backends and storage.
Use case: login https://(hostname)/cas directly, and user will get Unauthorized Service exception if MFA trusted device enabled.
cas-overlay-template-6.1-example.tar.gz

Sorry, I forgot to delete my overlay classes in previous overlay tar.gz file. Here is the correct one.
cas-overlay-template-6.1-example.zip

discussion followed in https://groups.google.com/a/apereo.org/forum/#!topic/cas-dev/RQaPKNdz-o0

I have further simplified the overlay that does not require any external authentication and storage. Using builtin casuser:Mellon also triggers this error.
cas-overlay-template-6.1-example.tar.gz


SC - Added Post Filtering

Checks the tags, previously implemented, in order to select which type of posts you'd like to see.
Only works with new tags implementation.

shitty


VinaySajip.PythonLauncher version <IP_ADDRESS>

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I think I did that right, at least from looking at the example given, but I also have a pretty good idea I may have messed something up because the validate function actually crashes winget

Not completely sure what ive done wrong so I think I'm just going to wait for someone who does