Skip to content

Commit a599200

Browse files
authored
docs: rewrite CONTRIBUTING.md as concise entry point (#2)
Replace the detailed project management guide with a short, approachable document that links to the diracx docs site for detailed guides. Add section on review workflow expectations including automatic draft conversion and daily PR digests.
1 parent eab297d commit a599200

1 file changed

Lines changed: 21 additions & 221 deletions

File tree

CONTRIBUTING.md

Lines changed: 21 additions & 221 deletions
Original file line numberDiff line numberDiff line change
@@ -1,232 +1,32 @@
1-
# Contributing to DiracGrid
1+
# Contributing to DIRACGrid
22

3-
Thank you for your interest in contributing to DIRAC-related projects! This document outlines the workflow and guidelines for contributing to our projects.
3+
Thanks for your interest in contributing! This guide will help you get started.
44

5-
## Table of Contents
5+
## Getting started
66

7-
- [Issue Workflow](#issue-workflow)
8-
- [Creating Issues](#creating-issues)
9-
- [Labels and Organization](#labels-and-organization)
10-
- [Development Process](#development-process)
11-
- [Pull Request Process](#pull-request-process)
12-
- [For Maintainers](#for-maintainers)
7+
The [DiracX contributing guide](https://diracx.diracgrid.org/en/latest/dev/how-to/contribute/) covers the full development workflow, including setting up your environment, making changes, and submitting pull requests. The [getting started tutorial](https://diracx.diracgrid.org/en/latest/dev/tutorials/getting-started/) walks through setting up a local development environment.
138

14-
## Issue Workflow
9+
If you're looking for something to work on, check out issues labelled ["good first issue"](https://github.com/search?q=org%3ADIRACGrid+label%3A%22good+first+issue%22+state%3Aopen&type=Issues).
1510

16-
Our issue workflow follows a structured process from idea to completion using GitHub Projects:
11+
## Quick reference
1712

18-
```mermaid
19-
stateDiagram-v2
20-
[*] --> Idea
13+
- **Commits**: Use [Conventional Commits](https://www.conventionalcommits.org/) format (`feat:`, `fix:`, `docs:`, etc.)
14+
- **Branches**: Name your branch descriptively, e.g. `feat/add-widget` or `fix/login-error`
15+
- **PRs**: Reference the related issue in your PR description (`Closes #123`)
2116

22-
Idea --> IssueCreated : Anyone creates GitHub issue
17+
## What to expect from reviews
2318

24-
IssueCreated --> NeedsTriage : Auto-added to Project
19+
PRs are reviewed by project maintainers. Here's how the process works:
2520

26-
NeedsTriage --> NeedsDesign : Complex/risky, needs architect input
27-
NeedsTriage --> Triaged : Valid issue, needs refinement
21+
1. Open your PR and mark it as **Ready for review** when it's complete.
22+
2. A reviewer will be assigned and will review your changes.
23+
3. If a reviewer requests changes, the PR is **automatically converted to a draft**. This signals that it's back in your hands.
24+
4. Address the feedback, push your updates, and mark the PR as **Ready for review** again.
25+
5. A **daily digest** of open PRs is posted to ensure nothing gets forgotten.
2826

29-
NeedsDesign --> Triaged : Architect provides design doc/ADR
27+
## More information
3028

31-
Triaged --> ReadyForSprint : Clear scope + acceptance criteria + estimate
32-
33-
ReadyForSprint --> InSprint : Selected during sprint planning
34-
35-
InSprint --> InProgress : Contributor starts work
36-
37-
InProgress --> InReview : PR opened
38-
39-
InReview --> InProgress : Changes requested in review
40-
InReview --> Done : PR approved and merged
41-
42-
Done --> [*]
43-
```
44-
45-
### Workflow States
46-
47-
**Note**: We use GitHub Projects to manage workflow. Issues are tracked through Project Status fields, not labels.
48-
49-
#### 1. **Idea → Issue Created**
50-
Anyone can create a GitHub issue using our issue templates:
51-
- **Bug Report**: For reporting bugs or unexpected behavior
52-
- **Feature Request**: For suggesting new features or enhancements
53-
54-
#### 2. **Needs Triage** (Project Status)
55-
- New issues are automatically added to the Project with Status = "Needs triage"
56-
- Maintainers review the issue to:
57-
- Confirm it's valid and not a duplicate
58-
- Set appropriate fields:
59-
- **Area** (epic): pilot, core, wf-mgmt, data-mgmt, resource-mgmt, deployment, obs-analytics, ui
60-
- **Priority** label: priority:critical, priority:high, priority:medium, priority:low
61-
- **Type** label: bug, enhancement, documentation, question
62-
- Determine if it needs design work or can go to backlog
63-
64-
#### 3. **Needs Design** (Project Status)
65-
- Applied to complex or risky issues that require architectural input
66-
- An architect or senior developer will:
67-
- Create a design document or Architecture Decision Record (ADR)
68-
- Outline the technical approach
69-
- Identify potential risks or trade-offs
70-
- Once design is complete, status moves to "Triaged"
71-
72-
#### 4. **Triaged** (Project Status)
73-
- Issue is valid and understood but needs refinement
74-
- During refinement/grooming:
75-
- Add clear acceptance criteria
76-
- Add story point estimate using the **Story Points** field
77-
- Clarify any open questions
78-
- Once refined, status moves to "Ready for sprint"
79-
80-
#### 5. **Ready for Sprint** (Project Status)
81-
- Issue has clear scope, acceptance criteria, and story point estimate
82-
- Ready to be selected during sprint planning
83-
- Only maintainers can move issues to this status
84-
85-
#### 6. **In Sprint** (Project Status)
86-
- Issue is assigned to a specific sprint using the **Sprint** field
87-
- Selected during sprint planning meeting
88-
- Developer may be assigned at this stage
89-
90-
#### 7. **In Progress** (Project Status)
91-
- Developer has started work on the issue
92-
- Typically indicated by an open PR or assignment to a developer
93-
- Issue should be linked to the PR
94-
95-
#### 8. **In Review** (Project Status)
96-
- Pull request has been opened
97-
- Awaiting code review from maintainers
98-
- May loop back to "In Progress" if changes are requested
99-
100-
#### 9. **Done** (Project Status)
101-
- PR has been approved and merged
102-
- Issue is automatically closed (if properly linked in PR)
103-
104-
## Creating Issues
105-
106-
### Bug Reports
107-
108-
When creating a bug report, please include:
109-
- **Clear description** of the bug
110-
- **Confirmation** that you've searched for duplicates
111-
- **Steps to reproduce** the issue
112-
- **Expected vs. actual behavior**
113-
- **Environment details** (OS, version, etc.)
114-
- **Log output** if available
115-
116-
### Feature Requests
117-
118-
When requesting a feature, please provide:
119-
- **User story** format (As a [user], I want [goal], so that [benefit])
120-
- **Description** of the proposed feature
121-
- **Definition of Done** - what criteria must be met?
122-
- **Related or blocking issues**
123-
124-
## Development Process
125-
126-
### 1. Fork and Clone
127-
128-
For external contributors:
129-
```bash
130-
# Fork the repository on GitHub, then clone your fork
131-
git clone https://github.com/YOUR-USERNAME/REPO-NAME.git
132-
cd REPO-NAME
133-
git remote add upstream https://github.com/DiracGrid/REPO-NAME.git
134-
```
135-
136-
### 2. Create a Branch
137-
138-
```bash
139-
git checkout -b feat_descriptive-name
140-
# or
141-
git checkout -b fix_bug-description
142-
```
143-
144-
### 3. Make Changes
145-
146-
- Write clean, maintainable code
147-
- Follow the project's coding standards
148-
- Add tests for new functionality
149-
- Update documentation as needed
150-
151-
### 4. Commit Your Changes
152-
153-
```bash
154-
git add .
155-
git commit -m "fix: brief description of changes"
156-
```
157-
158-
Ideally, follow conventional commit format:
159-
- `feat:` - New feature
160-
- `fix:` - Bug fix
161-
- `docs:` - Documentation changes
162-
- `test:` - Test additions or changes
163-
- `refactor:` - Code refactoring
164-
- `chore:` - Maintenance tasks
165-
166-
### 5. Keep Your Branch Updated
167-
168-
```bash
169-
git fetch upstream
170-
git rebase upstream/main
171-
```
172-
173-
## Pull Request Process
174-
175-
### 1. Push Your Changes
176-
177-
```bash
178-
git push origin your-branch-name
179-
```
180-
181-
### 2. Open a Pull Request
182-
183-
- Go to the repository on GitHub
184-
- Click "New Pull Request"
185-
- Select your branch
186-
- Fill out the PR template with:
187-
- Summary of changes
188-
- Link to related issue(s)
189-
- Testing performed
190-
191-
### 3. Code Review
192-
193-
- Address reviewer feedback promptly
194-
- Make requested changes in new commits
195-
- Push updates to your branch
196-
- The PR will automatically update
197-
198-
### 4. Merge
199-
200-
- Once approved, a maintainer will merge your PR
201-
- The related issue will automatically close (if properly linked)
202-
- Your branch can be deleted after merge
203-
204-
## Best Practices
205-
206-
### Code Quality
207-
208-
- Write self-documenting code with clear variable/function names
209-
- Add comments where logic is complex or non-obvious
210-
- Keep functions small and focused on a single responsibility
211-
- Write unit tests for new functionality
212-
213-
### Communication
214-
215-
- Be respectful and constructive in all interactions
216-
- Ask questions if requirements are unclear
217-
- Keep issue discussions focused and on-topic
218-
- Update issues if you encounter blockers or need help
219-
220-
### Issue Management
221-
222-
- Link PRs to issues using keywords (`Closes #456`)
223-
- Assign yourself to an issue if you start working on it
224-
- If you can't complete an issue, unassign yourself and comment
225-
226-
## Getting Help
227-
228-
- **Questions**: Open a discussion
229-
- **Documentation**: Check the repository's README, [DIRAC documentation](https://dirac.diracgrid.org/en/latest/) and [DiracX documentation](https://diracx.diracgrid.org/)
230-
- **Community**: Join our community channels
231-
232-
Thank you for contributing!
29+
- [Contributing guide](https://diracx.diracgrid.org/en/latest/dev/how-to/contribute/) -- full development workflow
30+
- [Coding conventions](https://diracx.diracgrid.org/en/latest/dev/reference/coding-conventions/) -- style and standards
31+
- [Issue triage process](https://diracx.diracgrid.org/en/latest/dev/reference/issue-triage/) -- how issues are tracked and prioritised
32+
- [DiracX documentation](https://diracx.diracgrid.org/en/latest/) -- full documentation site

0 commit comments

Comments
 (0)