Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove aggregation deprecations #2138

Merged
merged 1 commit into from
Jan 3, 2023
Merged

Conversation

franmomu
Copy link
Contributor

I would go a step further (in another PR) and remove setters or make them private for mandatory data passed in the constructor like setBucketsPath() or setScript().

Copy link
Owner

@ruflin ruflin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like how this simplifies the code base. Left 2 high level comments to have some discussion.

{
parent::__construct($name);

if (null !== $bucketsPath) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one we did not deprecate.

One thing I've seen in the past is that an object was created when the bucketPath did not exist yet and was set at a later stage (just an example). Is this a use case we want to support or on this scenario we except the object to be created when all info is available?

Copy link
Contributor Author

@franmomu franmomu Dec 29, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I would deprecate them in 7.x.

When working with ES, these parameters are required:

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-script-aggregation.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-selector-aggregation.html

Since they are required, I think it makes sense to not be able to create a BucketScript instance with invalid data.

IMHO we should avoid supporting those scenarios where these classes can contain invalid data (in some of them we can even mark them as immutable), it simplifies the code and ease the maintenance since these objects would always be in a valid state.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets call this a decision that all required params have to be set when creating an object.

Can you open a PR against 7.x with a deprecation?

{
parent::__construct($name);

if (null !== $bucketsPath) {
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. Do we need to deprecate it in 7.x branch if we go down this path?

@ruflin ruflin merged commit 96d21ee into ruflin:8.x Jan 3, 2023
@ruflin
Copy link
Owner

ruflin commented Jan 3, 2023

As discussed above, would be great to open PR's against 7.x with the deprecations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants