Using Python 3.12.0 for `dev/run` gives these warnings:
```
❯ dev/run -a adm:pass --with-haproxy --no-eval REMSHID=1 dev/remsh
/Users/jay/repos/couchdb/dev/run:534: SyntaxWarning: invalid escape sequence '\d'
JAVA_VERSION_RE = re.compile('"(\d+\.\d+).*"')
/Users/jay/repos/couchdb/dev/run:686: SyntaxWarning: invalid escape sequence '\['
"^\[httpd\]$",
/Users/jay/repos/couchdb/dev/run:694: SyntaxWarning: invalid escape sequence '\['
"^\[native_query_servers\]$",
```
This changes the strings in question to "raw" format, and eliminates
the warnings.
In `16-index-selectors-test.IndexSelectorText.test_uses_partial_index_with_non_indexable_selector`,
the parametrization of the `create_text_index()` is incorrect. It
passes `["location"]` as a set of fields to index, but that is
actually taken as an analyzer. It is probably a result of
copy-and-pasting over from the `json` index creation above where
the first parameter to the corresponding function is the list of
fields.
* Reset _users db before and after use to avoid polluting other tests.
* Use a common reset db and "wait for auth cache" helper function
* Since we're testing chttpd auth don't bother also setting httpd
authentication_db, that just stops and resets the local port httpd listener,
but we're not testing backend auth.
* Use a retry in login for security db to avoid flakiness
dev: provide better error message on `make` missing before `run`
The `./dev/run` script requires a boot script to be compiled
which assumes a completed build of the source tree. If this did
not happen, the script fails to work and CouchDB cannot be started
up.
The failure of the boot script's compilation by itself does not
necessarily help to understand the reason, so enhance it with a
suggestion for the user.
fba94d6...
by
Nick Vatamaniuc <email address hidden>
Provide a way to the developers to deploy and launch the Clouseau
search module more easily, therefore making it more accessible.
This can help with running the Search-based Elixir tests as well as
the Mango `text` search tests. This could allow us to catch more
bugs ahead of time and might even inspire more improvements in the
area.
The extension is designed in a way to make it simple to integrate
with the CI — only the Java environment of the proper version needs
to be deployed, everything else could be managed from this
repository. Such as bumping the version of Clouseau or fine-tuning
the configuration parameters.
This is an opt-in feature on two levels. First, one has to tell
`./configure --enable-clouseau` to instantiate Clouseau locally.
This will create the `clouseau` sub-directory that holds the
contents of the Clouseau distribution of the specified version,
which currently defaults to 2.22.0 (the latest). If an older
version is needed, use the `--clouseau-version` flag.
Then the `mango-test` and `elixir-search` targets will try to use
Clouseau automatically just to make it easy to use in the old way.
However, the `dev/run` script will not do the same. It requires
the `--with-clouseau` flag to be passed for that. That is because
the developer may not necessarily want to launch Clouseau ad hoc,
even if it is available.
With this, note that `elixir-search` is added to the `check` target.
In lack of a configured Clouseau instance, it will become a no-op
and a warning is emitted.