From 3a48df922816db024dc5ca80c5280c88c769b9e8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 21:29:26 +0000 Subject: [PATCH 1/3] Initial plan From 238e283845969dd934c144588cf03bd6348e0e08 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 21:32:53 +0000 Subject: [PATCH 2/3] Add Copilot instructions file for repository guidance Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com> --- .github/copilot-instructions.md | 165 ++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..9f4fab6d --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,165 @@ +# GitHub Copilot Instructions for TestingConferences.org + +## Project Overview + +TestingConferences.org is a community-driven website that lists software testing conferences and workshops. It's built with Jekyll (Ruby-based static site generator) and deployed as a GitHub Pages site. + +## Repository Structure + +- `_data/` - Contains YAML files with conference data + - `current.yml` - Upcoming conferences and workshops + - `past.yml` - Past conferences with optional video playlists +- `_layouts/` - Jekyll layout templates +- `_includes/` - Reusable Jekyll components +- `_posts/` - Blog posts and news +- `_sass/` - Sass stylesheets +- `devops/` - Docker setup scripts for local development +- `.circleci/` - CI/CD configuration + +## Build and Test Commands + +### Local Development (Docker) + +```bash +# Setup (starts Docker container and opens browser) +./devops/setup.sh + +# Teardown (stops Docker container) +./devops/teardown.sh +``` + +### CI/CD Build (CircleCI) + +```bash +# Install dependencies +gem install bundler +bundle install + +# Build site +bundle exec jekyll build --verbose + +# Test (validates HTML and links) +bundle exec htmlproofer ./_site --check-html --disable-external +``` + +## Data Schema Guidelines + +### Conference Entry Format + +When adding or updating conferences in `_data/current.yml` or `_data/past.yml`: + +**Required Fields:** + +- `name` - Full conference name with year (include abbreviation if applicable) + - Example: `Workshop on Performance and Reliability (WOPR) 2026` +- `location` - City, state/country, and whether online +- `dates` - Event dates (use quotes if complex format) +- `url` - Conference website with `?utm_source=testingconferences` tracking + +**Optional Fields:** + +- `twitter` - Twitter handle WITHOUT @ symbol +- `status` - Current status (CFP open/closed, registration status, etc.) + - Can include HTML links: `Registration is Open` +- `video_playlist` - (past.yml only) Link to conference presentation videos + +**Important Rules:** + +1. Order in YAML files determines display order - insert events in correct chronological position +2. If conference name contains colon (:), wrap in quotes: `"test:fest 2026"` +3. No marketing videos in video_playlist - only actual presentation/talk recordings +4. Only include conferences specifically focused on software testing + +### Example Entry + +```yaml +- name: Automation Guild 2026 + location: Online + dates: "February 9-13, 2026" + url: https://testguild.com/ag-2026/?utm_source=testingconferences + twitter: testguilds + status: Registration is Open +``` + +## Code Style and Conventions + +- **YAML Files**: Follow existing indentation (2 spaces) +- **Markdown**: Use standard markdown formatting +- **HTML**: Semantic HTML5, accessibility-friendly +- **Links**: Always add `?utm_source=testingconferences` to conference URLs for tracking +- **External Links**: Use `target="_blank"` when appropriate + +## Testing Standards + +- Always run `bundle exec htmlproofer` after making changes to validate HTML +- Check that Jekyll builds successfully with `bundle exec jekyll build` +- Test locally with Docker before submitting PRs +- All external links should be valid and not broken + +## Contributing Guidelines + +### Pull Request Workflow + +1. Fork the repository and create a branch from `main` +2. Make changes following the data schema +3. Test locally using Docker setup +4. Ensure CircleCI build passes +5. Submit PR with clear description + +### Conference Eligibility + +Only include conferences/workshops specifically for software testing. Use this heuristic: + +- Conference name includes "Test", "Testing", or "Quality" +- Conference describes itself as specifically for software testers +- Focus is on testing, not general software development + +## Common Tasks + +### Adding a New Conference + +1. Check if conference already exists in `_data/current.yml` +2. Add entry following the data schema above +3. Insert in correct chronological order +4. Include all required fields and relevant optional fields +5. Run local build to test +6. Submit PR + +### Moving Conference to Past List + +1. Remove entry from `_data/current.yml` +2. Add to `_data/past.yml` in chronological order +3. Optionally add `video_playlist` if available +4. Update status if needed + +### Updating Conference Information + +1. Locate conference in appropriate YAML file +2. Update relevant fields +3. Ensure format compliance +4. Test build locally + +## Dependencies + +- **Ruby**: 3.1+ (see CircleCI config) +- **Bundler**: 2.4.17 +- **Jekyll**: 3.10.0+ +- **GitHub Pages**: 232+ +- **Docker**: Required for local development + +## Security and Best Practices + +- Never commit sensitive data or credentials +- Validate all external URLs before adding +- Use HTML escaping for user-provided content +- Keep dependencies updated per Gemfile +- Follow Jekyll security best practices + +## Notes for Copilot + +- **Minimal Changes**: Make surgical, precise changes to YAML files +- **Preserve Formatting**: Maintain existing indentation and structure +- **Validate Schema**: Always check against the data schema before modifying +- **Test First**: Understand existing build/test process before changes +- **Documentation**: Update README/CONTRIBUTING if making structural changes +- **Focus**: This project is specifically about testing conferences - don't include general tech conferences From 30db66bdd8735d3500ede67d2a923d11ae456c84 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 21:34:39 +0000 Subject: [PATCH 3/3] Improve Copilot instructions accuracy based on code review Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com> --- .github/copilot-instructions.md | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 9f4fab6d..45c52462 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -50,8 +50,9 @@ When adding or updating conferences in `_data/current.yml` or `_data/past.yml`: **Required Fields:** -- `name` - Full conference name with year (include abbreviation if applicable) - - Example: `Workshop on Performance and Reliability (WOPR) 2026` +- `name` - Full conference name with year + - Include abbreviations in parentheses when commonly used + - Examples: `Automation Guild 2026`, `Workshop on Performance and Reliability (WOPR) 2026` - `location` - City, state/country, and whether online - `dates` - Event dates (use quotes if complex format) - `url` - Conference website with `?utm_source=testingconferences` tracking @@ -108,11 +109,12 @@ When adding or updating conferences in `_data/current.yml` or `_data/past.yml`: ### Conference Eligibility -Only include conferences/workshops specifically for software testing. Use this heuristic: +Only include conferences/workshops specifically for software testing. Per the README: -- Conference name includes "Test", "Testing", or "Quality" +- Focus is a goal - only conferences that are specifically for software testing are listed +- If a conference covers software testing but is not specifically for testers, it is excluded +- Good heuristic: conference name includes "Test", "Testing", "Quality", "Automation", or is otherwise clearly focused on testing (e.g., "Robocon", "Automation Guild") - Conference describes itself as specifically for software testers -- Focus is on testing, not general software development ## Common Tasks @@ -141,10 +143,13 @@ Only include conferences/workshops specifically for software testing. Use this h ## Dependencies -- **Ruby**: 3.1+ (see CircleCI config) +Per the Gemfile and CircleCI config: + +- **Ruby**: 3.1 (cimg/ruby:3.1) - **Bundler**: 2.4.17 -- **Jekyll**: 3.10.0+ -- **GitHub Pages**: 232+ +- **Jekyll**: >= 3.10.0 +- **GitHub Pages**: >= 232 +- **html-proofer**: ~> 3.19.4 - **Docker**: Required for local development ## Security and Best Practices