Skip to content

Commit 3d16930

Browse files
Copilotckenst
andauthored
Set up Copilot instructions for repository (#835)
* Initial plan * Add Copilot instructions file for repository guidance Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com> * Improve Copilot instructions accuracy based on code review Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: ckenst <6896787+ckenst@users.noreply.github.com>
1 parent 98f714f commit 3d16930

1 file changed

Lines changed: 170 additions & 0 deletions

File tree

.github/copilot-instructions.md

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# GitHub Copilot Instructions for TestingConferences.org
2+
3+
## Project Overview
4+
5+
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.
6+
7+
## Repository Structure
8+
9+
- `_data/` - Contains YAML files with conference data
10+
- `current.yml` - Upcoming conferences and workshops
11+
- `past.yml` - Past conferences with optional video playlists
12+
- `_layouts/` - Jekyll layout templates
13+
- `_includes/` - Reusable Jekyll components
14+
- `_posts/` - Blog posts and news
15+
- `_sass/` - Sass stylesheets
16+
- `devops/` - Docker setup scripts for local development
17+
- `.circleci/` - CI/CD configuration
18+
19+
## Build and Test Commands
20+
21+
### Local Development (Docker)
22+
23+
```bash
24+
# Setup (starts Docker container and opens browser)
25+
./devops/setup.sh
26+
27+
# Teardown (stops Docker container)
28+
./devops/teardown.sh
29+
```
30+
31+
### CI/CD Build (CircleCI)
32+
33+
```bash
34+
# Install dependencies
35+
gem install bundler
36+
bundle install
37+
38+
# Build site
39+
bundle exec jekyll build --verbose
40+
41+
# Test (validates HTML and links)
42+
bundle exec htmlproofer ./_site --check-html --disable-external
43+
```
44+
45+
## Data Schema Guidelines
46+
47+
### Conference Entry Format
48+
49+
When adding or updating conferences in `_data/current.yml` or `_data/past.yml`:
50+
51+
**Required Fields:**
52+
53+
- `name` - Full conference name with year
54+
- Include abbreviations in parentheses when commonly used
55+
- Examples: `Automation Guild 2026`, `Workshop on Performance and Reliability (WOPR) 2026`
56+
- `location` - City, state/country, and whether online
57+
- `dates` - Event dates (use quotes if complex format)
58+
- `url` - Conference website with `?utm_source=testingconferences` tracking
59+
60+
**Optional Fields:**
61+
62+
- `twitter` - Twitter handle WITHOUT @ symbol
63+
- `status` - Current status (CFP open/closed, registration status, etc.)
64+
- Can include HTML links: `<a href="..." target="_blank">Registration is Open</a>`
65+
- `video_playlist` - (past.yml only) Link to conference presentation videos
66+
67+
**Important Rules:**
68+
69+
1. Order in YAML files determines display order - insert events in correct chronological position
70+
2. If conference name contains colon (:), wrap in quotes: `"test:fest 2026"`
71+
3. No marketing videos in video_playlist - only actual presentation/talk recordings
72+
4. Only include conferences specifically focused on software testing
73+
74+
### Example Entry
75+
76+
```yaml
77+
- name: Automation Guild 2026
78+
location: Online
79+
dates: "February 9-13, 2026"
80+
url: https://testguild.com/ag-2026/?utm_source=testingconferences
81+
twitter: testguilds
82+
status: <a href="https://testguild.com/register/?utm_source=testingconferences" target="_blank">Registration is Open</a>
83+
```
84+
85+
## Code Style and Conventions
86+
87+
- **YAML Files**: Follow existing indentation (2 spaces)
88+
- **Markdown**: Use standard markdown formatting
89+
- **HTML**: Semantic HTML5, accessibility-friendly
90+
- **Links**: Always add `?utm_source=testingconferences` to conference URLs for tracking
91+
- **External Links**: Use `target="_blank"` when appropriate
92+
93+
## Testing Standards
94+
95+
- Always run `bundle exec htmlproofer` after making changes to validate HTML
96+
- Check that Jekyll builds successfully with `bundle exec jekyll build`
97+
- Test locally with Docker before submitting PRs
98+
- All external links should be valid and not broken
99+
100+
## Contributing Guidelines
101+
102+
### Pull Request Workflow
103+
104+
1. Fork the repository and create a branch from `main`
105+
2. Make changes following the data schema
106+
3. Test locally using Docker setup
107+
4. Ensure CircleCI build passes
108+
5. Submit PR with clear description
109+
110+
### Conference Eligibility
111+
112+
Only include conferences/workshops specifically for software testing. Per the README:
113+
114+
- Focus is a goal - only conferences that are specifically for software testing are listed
115+
- If a conference covers software testing but is not specifically for testers, it is excluded
116+
- Good heuristic: conference name includes "Test", "Testing", "Quality", "Automation", or is otherwise clearly focused on testing (e.g., "Robocon", "Automation Guild")
117+
- Conference describes itself as specifically for software testers
118+
119+
## Common Tasks
120+
121+
### Adding a New Conference
122+
123+
1. Check if conference already exists in `_data/current.yml`
124+
2. Add entry following the data schema above
125+
3. Insert in correct chronological order
126+
4. Include all required fields and relevant optional fields
127+
5. Run local build to test
128+
6. Submit PR
129+
130+
### Moving Conference to Past List
131+
132+
1. Remove entry from `_data/current.yml`
133+
2. Add to `_data/past.yml` in chronological order
134+
3. Optionally add `video_playlist` if available
135+
4. Update status if needed
136+
137+
### Updating Conference Information
138+
139+
1. Locate conference in appropriate YAML file
140+
2. Update relevant fields
141+
3. Ensure format compliance
142+
4. Test build locally
143+
144+
## Dependencies
145+
146+
Per the Gemfile and CircleCI config:
147+
148+
- **Ruby**: 3.1 (cimg/ruby:3.1)
149+
- **Bundler**: 2.4.17
150+
- **Jekyll**: >= 3.10.0
151+
- **GitHub Pages**: >= 232
152+
- **html-proofer**: ~> 3.19.4
153+
- **Docker**: Required for local development
154+
155+
## Security and Best Practices
156+
157+
- Never commit sensitive data or credentials
158+
- Validate all external URLs before adding
159+
- Use HTML escaping for user-provided content
160+
- Keep dependencies updated per Gemfile
161+
- Follow Jekyll security best practices
162+
163+
## Notes for Copilot
164+
165+
- **Minimal Changes**: Make surgical, precise changes to YAML files
166+
- **Preserve Formatting**: Maintain existing indentation and structure
167+
- **Validate Schema**: Always check against the data schema before modifying
168+
- **Test First**: Understand existing build/test process before changes
169+
- **Documentation**: Update README/CONTRIBUTING if making structural changes
170+
- **Focus**: This project is specifically about testing conferences - don't include general tech conferences

0 commit comments

Comments
 (0)