Always use bundle and rake commands, not any third-party packaging tools.
- Install dependencies for all subprojects:
rake bundle - Run unit and client tests:
rake test:client - Run YAML API tests:
rake test:yaml - See all available test tasks:
rake -T
rake test:client must pass before you commit code.
Integration tests require Elasticsearch running on localhost:9200. They are skipped automatically if no server is available, so a failing integration test in CI always means a real failure.
This repo contains two subprojects, each with its own Gemfile and Rakefile:
- elasticsearch/ - main gem (client, transport, DSL)
- elasticsearch-api/ - generated API layer and YAML test runner
Top-level Rakefile and rake_tasks/ orchestrate tasks across all subprojects.
- Run
rake bundleto install dependencies in all subprojects. - Make changes to files in the relevant subproject.
- Run
rake test:clientto verify unit tests pass. - If your change touches API behaviour, also run
rake test:yaml.
If a specific action you learned to do better will be useful to other agents doing the same task in the future, but may not be needed for all agent-related tasks, create or update skills in .github/skills/.
If you learned something that will be useful to any contributor to this project, update AGENTS.md.