Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Sep 11, 2025

This PR adds a comprehensive .github/copilot-instructions.md file that provides detailed guidance for GitHub Copilot coding agents working with the scylla-bench codebase.

Key Features

The instructions include:

  • Complete build and test workflows with validated commands and timing expectations
  • Critical timing information with explicit "NEVER CANCEL" warnings for long-running operations:
    • Build: 20-25 seconds (first time), 3-5 seconds (subsequent)
    • Tests: 30-40 seconds for full suite
    • TestContainers: 25-35 seconds per test
  • Comprehensive mode descriptions for all scylla-bench benchmarking modes:
    • write - Insert new data using INSERT statements for populating databases
    • read - Read existing data using SELECT statements for testing read performance
    • counter_update - Update counter columns for testing counter performance
    • counter_read - Read counter values for verifying counter operations
    • scan - Perform full table scans using token range queries
  • Comprehensive testing requirements covering:
    • Mandatory unit tests with t.Parallel() for all new features
    • Integration tests using TestContainers with real ScyllaDB instances
    • Race detection with -race flag (enabled in make test)
    • Test structure requirements and execution commands
  • Manual validation scenarios for ensuring proper benchmarking functionality
  • Troubleshooting guide for known issues and common problems

Important Safeguards

The instructions emphasize critical requirements:

  • ScyllaDB gocql fork dependency: Warns against using go install directly, which bypasses the replace directive and breaks shard-awareness
  • Docker requirements for TestContainers integration testing
  • Known linting issues with golangci-lint dependency conflicts
  • Proper timeout settings to prevent premature cancellation of builds and tests

Validation

All commands and scenarios in the instructions have been thoroughly tested:

  • Build process validation with clean/rebuild cycles
  • Complete test suite execution including memory leak tests
  • TestContainers integration with ScyllaDB containers
  • Binary functionality verification
  • Code formatting and field alignment tools

The instructions follow the imperative tone requirement and provide exhaustive detail to ensure GitHub Copilot agents can work effectively with minimal trial-and-error.

Fixes #212.

Warning

https://api.github.com/repos/scylladb/gocql/releases

  • Triggering command: ./build/scylla-bench -version (http block)
  • Triggering command: ./build/scylla-bench -version-json (http block)
  • i6a5h9l1kl.execute-api.us-east-1.amazonaws.com
    • Triggering command: /opt/scylladb/scripts/../python3/bin/python3 /opt/scylladb/python3/bin/../libexec/python3.13.bin -s /opt/scylladb/scripts/libexec/scylla-housekeeping --uuid-file /var/lib/scylla-housekeeping/housekeeping.uuid --repo-files /etc/apt/sources.list.d/scylla*.list -q version --mode cr (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…ands and timing

Co-authored-by: fruch <340979+fruch@users.noreply.github.com>
@Copilot Copilot AI changed the title [WIP] ✨ Set up Copilot instructions Add comprehensive GitHub Copilot instructions for scylla-bench development Sep 11, 2025
@Copilot Copilot AI requested a review from fruch September 11, 2025 14:57
Copilot finished work on behalf of fruch September 11, 2025 14:57
@fruch
Copy link
Contributor

fruch commented Sep 16, 2025

@soyacz @CodeLieutenant

what do you say, good enough as a starter one ?

@fruch fruch marked this pull request as ready for review September 16, 2025 07:40
@CodeLieutenant
Copy link
Contributor

@soyacz @CodeLieutenant

what do you say, good enough as a starter one ?

I'm ok with it, we can improve it as we go

I just want one thing to have it there, what each mode is doing so that is knows the context

@copilot add to the instructions the modes for scylla-bench, and a small description what they are doing, so that the context exists, also ensure that every feature that is implemented needs Unit and Integration tests, Integration tests must be done against real scylladb using testcontainers, all tests must be t.Parallel() and run with -race flag.

…e flag and t.Parallel()

Co-authored-by: CodeLieutenant <33778979+CodeLieutenant@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Sep 16, 2025

@soyacz @CodeLieutenant

what do you say, good enough as a starter one ?
...

Added comprehensive mode descriptions and testing requirements as requested:

Modes Section: Added detailed descriptions for all 5 scylla-bench modes (write, read, counter_update, counter_read, scan) with their specific purposes and usage patterns.

Testing Requirements: Added comprehensive testing requirements covering:

  • Mandatory t.Parallel() for all test functions
  • Race detection with -race flag (confirmed it's already enabled in make test)
  • TestContainers integration tests against real ScyllaDB instances
  • Test structure requirements and execution commands

All requirements are now documented with examples and proper emphasis on mandatory practices.

Commit: d141898

@CodeLieutenant CodeLieutenant merged commit 3af6613 into master Sep 16, 2025
2 checks passed
@CodeLieutenant CodeLieutenant deleted the copilot/fix-212 branch September 16, 2025 09:04
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.

✨ Set up Copilot instructions

4 participants