Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ While README.md and CONTRIBUTING.md are mainly written for humans, this file is
- Always apply the Apache License to new source files
- All versions must be delcared in `gradle/libs.versions.toml`, never build.gradle files
- Try first declaring a dependency without a version (the version might already be in a BOM); and if fails to resolve _then_ specify a version
- The build may complain with "Dependency analysis found issues.", a category like "usedUndeclaredArtifacts", and a dependency list. Declare or undeclare these dependencies, as the category will imply. The special 'permit*' configurations are a choice of last resort.
- Always run `gradlew updateLicenses resolveAndLockAll collectJarInfos --write-locks` after adding or changing a dependency. See `dev-docs/gradle-help/dependencies.txt` for more info

## Build and Development Workflow
Expand All @@ -21,6 +20,8 @@ While README.md and CONTRIBUTING.md are mainly written for humans, this file is
- Use the project's custom `EnvUtils` to read system properties. It auto converts env.var SOLR_FOO_BAR to system property solr.foo.bar
- Be careful to not add non-essential logging! If you add slf4j log calls, make sure to wrap debug/trace level calls in `logger.isXxxEnabled()` clause
- Validate user input. For file paths, always call `myCoreContainer.assertPathAllowed(myPath)` before using
- Never use fully-qualified-names when an import statement will resolve ambiguity.
- SolrJ & "api" modules should use the latest Java 17 language features as appropriate. Other modules can use Java 21.

## Running Tests

Expand Down Expand Up @@ -57,6 +58,13 @@ While README.md and CONTRIBUTING.md are mainly written for humans, this file is
- To scaffold a new changelog entry, run `gradlew writeChangelog` (JIRA) or `gradlew writeChangeLogPr` (no JIRA), and then edit the new file located in `changelog/unreleased/`.
- Do not add a changelog entry before a JIRA issue or a Github PR is assigned, as one is required.

## Issue Tracking (JIRA)

Solr issues are tracked at https://issues.apache.org/jira (project key `SOLR`). The anonymous REST API works; no auth or scraping needed:

- Search: `curl "https://issues.apache.org/jira/rest/api/2/search?jql=<url-encoded JQL>&fields=summary,status,resolution&maxResults=10"` with JQL like `project=SOLR AND text~"some phrase" ORDER BY updated DESC`
- Single issue (with comments): `curl "https://issues.apache.org/jira/rest/api/2/issue/SOLR-12345?fields=summary,description,comment"`

## Security

For security findings, follow the project's threat model:
Expand Down
Loading