Skip to content

Conversation

@Nimra-Fayaz
Copy link
Contributor

This PR adds a comprehensive CONTRIBUTING.md file that provides clear guidelines for new contributors to the PyNumDiff project.

Changes

  • Added CONTRIBUTING.md with the following sections:
    • Development setup instructions
    • Code style guidelines (PEP 8, pylint)
    • Testing guidelines (pytest)
    • Pull request process
    • Bug reporting templates
    • Feature proposal templates
    • Commit message conventions

Benefits

  • Makes it easier for new contributors to get started
  • Provides consistent contribution guidelines
  • Reduces maintainer workload by answering common questions upfront
  • Improves code quality through clear standards

This addresses issue #169.

Checklist

@Nimra-Fayaz
Copy link
Contributor Author

Hi @florisvb! 👋

This PR adds the CONTRIBUTING.md file as requested in issue #169. I've created comprehensive guidelines that cover:

Development Setup - Step-by-step instructions for setting up the development environment
Code Style - PEP 8 guidelines and pylint usage
Testing - pytest guidelines and CI information
Pull Request Process - Complete workflow from fork to PR submission
Bug Reporting - Template and guidelines for reporting issues
Feature Proposals - Template for suggesting new features
Commit Conventions - Conventional commit message format

The guidelines are based on the existing project structure and tools. I've made sure to reference the actual tools used in the project (pytest, pylint, GitHub Actions, etc.).

I'm open to any feedback or suggestions for improvements. Please let me know if you'd like me to adjust anything!

Add comprehensive contributing guidelines covering:
- Development setup instructions
- Code style guidelines (PEP 8, pylint)
- Testing guidelines (pytest)
- Pull request process
- Bug reporting templates
- Feature proposal templates
- Commit message conventions

This addresses issue florisvb#169 and provides clear guidance for new
contributors to get started with the project.

Fixes florisvb#169
@Nimra-Fayaz Nimra-Fayaz force-pushed the docs/add-contributing-guidelines branch from 7c95e34 to b03bdaf Compare November 14, 2025 10:16
CONTRIBUTING.md Outdated
@@ -0,0 +1,393 @@
# Contributing to PyNumDiff

Thank you for your interest in contributing to PyNumDiff! This document provides guidelines and instructions for contributing to the project. Following these guidelines helps communicate that you respect the time of the developers managing and developing this open-source project.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol, I wouldn't emphasize our need for respect. Anyone taking an interest is enough for us. Makes us sound a bit jilted and stiff, although maybe there's some deep truth to that for academics.

Copy link
Collaborator

@pavelkomarov pavelkomarov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the add! It's almost too over detailed in places, so I've added some comments to suggest ways I think it can be slimmed down.

CONTRIBUTING.md Outdated

## Code of Conduct

This project adheres to a code of conduct that all contributors are expected to follow. Please be respectful and constructive in all interactions.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again the emphasis on respect is weird to me.

CONTRIBUTING.md Outdated
- [Commit Message Conventions](#commit-message-conventions)
- [Questions?](#questions)

## Code of Conduct
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd nix this whole short subsection.

CONTRIBUTING.md Outdated

## How Can I Contribute?

### Reporting Bugs
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These little stub sections that just link the user to other reporting bugs and suggesting enhancements sections seem redundant to me.

CONTRIBUTING.md Outdated

### Prerequisites

- Python 3.7 or higher
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd maybe recommend 3.11 or higher.


5. **Install the package in development mode**:
```bash
pip install -e .
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. I like the emphasis on editable installs. They are the way to go.

CONTRIBUTING.md Outdated
### PR Guidelines

- Keep PRs focused on a single issue or feature
- Keep PRs reasonably sized (if large, consider breaking into smaller PRs)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not always do this, but I'm dictator and had a lot I needed to change. Yes, bite sized, more focused chunks are easier to get through review quickly.

CONTRIBUTING.md Outdated

### Commit Message Format

We follow a conventional commit message format:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't been doing this. It's some trouble, and sometimes I just want to commit now. But I do endorse long, descriptive commit messages. Just they can be free-form.

<footer>
```

### Types
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to be quite this specific. This project isn't so large that we're doing triage on PRs or anything. I'd say this lexicon of types can go away, and we can allow authors to write whatever they want in their commit messages.

CONTRIBUTING.md Outdated
- `test`: Adding or updating tests
- `chore`: Maintenance tasks (dependencies, build config, etc.)

### Examples
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't think we need this example.

CONTRIBUTING.md Outdated
Updated README with clearer installation steps for Windows users.
```

### Guidelines
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't think we need guidelines. I'm mildly anarchic about it.

@florisvb
Copy link
Owner

florisvb commented Nov 14, 2025 via email

- Remove formal language and emphasis on respect
- Remove Code of Conduct section
- Remove redundant How Can I Contribute stub section
- Update Python version requirement to 3.11
- Simplify commit message guidelines to free-form style
- Update PR guidelines to be less prescriptive
- Relax code style guidelines to focus on matching existing code
- Update code quality section to note JOSS submission requirements
- Add information about test file organization
- Update line length guidelines to reflect actual practice
@Nimra-Fayaz
Copy link
Contributor Author

Hi @pavelkomarov and @florisvb,

I've updated CONTRIBUTING.md based on your feedback.

The document is now more concise and less prescriptive, matching the project's current practices. Please let me know if you'd like any other adjustments.

Thanks for the feedback.

@pavelkomarov pavelkomarov merged commit 3c89776 into florisvb:master Nov 19, 2025
1 check passed
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.

3 participants