Skip to content

Conversation

yrodiere
Copy link
Member

@yrodiere yrodiere commented Nov 5, 2019

Based on #5202 , which should be merged first. => Done

  1. Remove the "elasticsearch" prefix for the "query-loading" and "automatic-indexing" properties, which are not specific to Elasticsearch or to a backend in particular. This is consistent with what we already do for "default-backend" and "background-failure-handler".
  2. Clearly separate the configuration of the default backend in the documentation by moving it to a separate section.
  3. Move the "default-backend" property to the "additional backends" section of the documentation, since it's only useful in that case.

Please have a look at the documentation before/after to make your mind about this changeset.
Run this:

./mvnw clean install -DskipTests -pl docs,extensions/hibernate-search-elasticsearch/runtime,extensions/hibernate-search-elasticsearch/deployment -am && xdg-open docs/target/generated-docs/hibernate-search-elasticsearch.html

And compare the structure of the documentation with what we already have here.

…ibernate Search extension config

For consistency, because we already do this for:

* default-backend
* background-failure-handler

So we may as well do it for these, too:

* query-loading.cache-lookup.strategy
* query-loading.fetch-size
* automatic-indexing.synchronization.strategy
* automatic-indexing.enable-dirty-check
… section in the Hibernate Search extension config

Because having it at the very top of the property list in the
documentation is quite confusing, considering it's really not something
the average user will need.
… Search configuration

For consistency with the runtime configuration.
@yrodiere yrodiere force-pushed the hsearch-doc-structure branch from ee79a83 to 973815d Compare November 6, 2019 07:23
@yrodiere
Copy link
Member Author

yrodiere commented Nov 6, 2019

Rebased on master just now.

Copy link
Member

@Sanne Sanne left a comment

Choose a reason for hiding this comment

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

Great, thanks! Merging..

@Sanne Sanne added this to the 1.1.0 milestone Nov 7, 2019
@Sanne Sanne added the backport? label Nov 7, 2019
@Sanne Sanne merged commit 76b515a into quarkusio:master Nov 7, 2019
@gsmet gsmet removed the backport? label Nov 13, 2019
@gsmet
Copy link
Member

gsmet commented Nov 13, 2019

Please let me review the Search PRs before merging them.

quarkus.hibernate-search.elasticsearch.index-defaults.lifecycle.required-status=yellow <9>
quarkus.hibernate-search.elasticsearch.index-defaults.lifecycle.strategy=drop-and-create <7>
quarkus.hibernate-search.elasticsearch.index-defaults.lifecycle.required-status=yellow <8>
quarkus.hibernate-search.automatic-indexing.synchronization.strategy=searchable <9>
Copy link
Member

Choose a reason for hiding this comment

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

TBH, I'm not totally sold on this change. It makes the configuration all weird.

I'm also surprised it's not something you can configure per backend in Search.

Copy link
Member Author

Choose a reason for hiding this comment

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

Synchronization is about:

  1. Whether to force a refresh on the backend side before considering indexing "done" (committed vs. searchable).
  2. Whether we wait for indexing to be "done" after a transaction, or we just proceed without one works are queued (queued vs. committed/searchable).

Number 1 could theoretically be configured per backend, or even per index, though I don't really see the point.
Number 2 definitely cannot.

Maybe at some point we could split that into two separate configuration options, number 1 being configurable per backend while number 2 would not. However, that would introduce nonsensical combinations (do not wait for indexing to be "done", but force a refresh before considering it's "done"...). I also think it would make it even harder to explain the whole concept, but maybe that's just me.

Copy link
Member

Choose a reason for hiding this comment

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

What bugs me a bit tbh is having this property outside of the elasticsearch context.

The other ones we had there were for advanced configurations. Here the default configuration looks a bit asymmetrical.

@gsmet
Copy link
Member

gsmet commented Nov 13, 2019

This is a breaking change, we should be careful about that, I removed the backport tag, I don't want to do that just after a CR.

@Sanne
Copy link
Member

Sanne commented Nov 13, 2019

@gsmet the general attitude so far has been that breaking changes have to be backported before the final - not the opposite.

Please let me review the Search PRs before merging them.

hu? now that's confusing

@gsmet
Copy link
Member

gsmet commented Nov 13, 2019

You don't backport breaking changes between a CR and a final, or you do another CR. We don't plan to do another CR so... At least, that's how I learned to do things :).

hu? now that's confusing

why is it? This one has breaking changes that needs to be carefully thought out and I'm the one who worked on it initially.

Having it merged silently without adding noteworthy-feature was an issue as it could break users application/testing. This configuration knob is important.

@Sanne
Copy link
Member

Sanne commented Nov 13, 2019

why is it? This one has breaking changes that needs to be carefully thought out and I'm the one who worked on it initially.

because the PR is sent to the team, and we're one team - everyone trying to help.

Mind you, I'm happy to follow your suggestion but I suspect tomorrow someone else will merge this, trespassing your territory again.

If you'd like to change the structure, I would support you. I already hinted at this: there's a lot of noise trying to follow ALL changes for everyone, I don't see that scaling.

But also I regularly get my PRs reviewed (and even merged) by people out of the same expert zone; one needs to learn accepting that a PR is not a draft, it's a bitter-sweet situation as I'm also not happy that lots of stuff I hoped would be done differently got merged before I could even have look.

It's a consequence of the current process; if you want to "own" all changes on an extension, you'll have to make this clear upfront as I can't see this stopping. Or ask Yoann to work with you on your own fork.

@gsmet
Copy link
Member

gsmet commented Nov 13, 2019

When there is a breaking change, the maintainer of the extension should at least have a look at the PR.

Another PR was merged on the HV extension while I was away without giving me a chance to review it while I explicitly asked to (I assigned it to me and posted a comment about it). The PR broke CI and then people are asking me to fix that.

I'm not talking about simple/obvious bugfixes or documentation fixes. This PR breaks the compatibility for a configuration property that is probably used by all the persons using this extension (as it's strictly needed to have tests working reliably).

And there was a child PR on the quickstarts that you didn't merge (quarkusio/quarkus-quickstarts#359) so it broke the quickstarts for several days and I was the one people pinged about it.

I'm not asking for hard rules, just some common courtesy so that a person familiar with an extension has a look before merging something structuring. And this change is.

Typically, I wouldn't merge anything not obvious on the Spring-compatibility extensions without asking Georgios to have a look first.

@Sanne
Copy link
Member

Sanne commented Nov 13, 2019

Another PR was merged on the HV extension while I was away without giving me a chance to review it

Yes that's what I'm referring to. I'm concerned as well, and think we need to change the process.

Comments on github won't do the trick, as you've seen on the other PRs.

@yrodiere yrodiere deleted the hsearch-doc-structure branch May 17, 2021 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants