Add CONTRIBUTING.md with project guidelines
This commit is contained in:
parent
104a7d57b2
commit
40c9ee5c0d
1 changed files with 142 additions and 0 deletions
142
CONTRIBUTING.md
Normal file
142
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,142 @@
|
|||
# Contributing to doi2dataset
|
||||
|
||||
Thank you for your interest in contributing to **doi2dataset**! We welcome contributions from the community and appreciate your help in making this project better.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. **Fork** the repository on GitLab
|
||||
2. **Clone** your fork locally:
|
||||
```bash
|
||||
git clone https://git.uni-due.de/your-username/doi2dataset.git
|
||||
cd doi2dataset
|
||||
```
|
||||
3. **Install** development dependencies:
|
||||
```bash
|
||||
pip install -r requirements-dev.txt
|
||||
```
|
||||
4. **Make** your changes
|
||||
5. **Test** your changes (see [Testing](#testing) below)
|
||||
6. **Submit** a pull request
|
||||
|
||||
## How to Contribute
|
||||
|
||||
### Reporting Issues
|
||||
|
||||
- Use the GitLab issue tracker to report bugs or request features
|
||||
- Provide clear descriptions and steps to reproduce issues
|
||||
- Include relevant system information and error messages
|
||||
|
||||
### Code Contributions
|
||||
|
||||
- Create a new branch for your feature or bug fix
|
||||
- Write clear, descriptive commit messages
|
||||
- Follow the existing code style and conventions
|
||||
- Add tests for new functionality
|
||||
- Update documentation as needed
|
||||
- Ensure all tests pass before submitting
|
||||
|
||||
### Documentation
|
||||
|
||||
- Documentation is built using Sphinx and deployed automatically
|
||||
- Source files are in `docs/source/`
|
||||
- See the [full documentation](https://doi2dataset-66f763.gitpages.uni) for more details
|
||||
|
||||
## Development Setup
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Python 3.7+
|
||||
- pip
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://git.uni-due.de/your-username/doi2dataset.git
|
||||
cd doi2dataset
|
||||
|
||||
# Install development dependencies
|
||||
pip install -r requirements-dev.txt
|
||||
|
||||
# Install documentation dependencies (optional)
|
||||
pip install -r requirements-doc.txt
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
We use pytest for testing with comprehensive coverage of core functionalities.
|
||||
|
||||
### Running Tests
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
pytest
|
||||
|
||||
# Run with coverage
|
||||
pytest --cov=.
|
||||
|
||||
# Generate HTML coverage report
|
||||
pytest --cov=. --cov-report=html
|
||||
```
|
||||
|
||||
### Test Structure
|
||||
|
||||
Tests are organized into several files covering:
|
||||
- Core functionality (DOI validation, name processing)
|
||||
- API integration (mock responses)
|
||||
- Citation building
|
||||
- Metadata processing
|
||||
- License processing
|
||||
- Publication utilities
|
||||
|
||||
## Code Style
|
||||
|
||||
- Follow existing code conventions
|
||||
- Write clear, descriptive variable and function names
|
||||
- Add docstrings for public functions and classes
|
||||
- Use type hints where appropriate
|
||||
- Keep functions focused and modular
|
||||
|
||||
## Documentation
|
||||
|
||||
### Building Documentation Locally
|
||||
|
||||
```bash
|
||||
# Build current branch documentation
|
||||
cd docs
|
||||
make html
|
||||
|
||||
# Build multiversion documentation
|
||||
cd docs
|
||||
make multiversion
|
||||
```
|
||||
|
||||
The documentation supports multiple versions and is automatically deployed via GitLab CI/CD.
|
||||
|
||||
## Submitting Changes
|
||||
|
||||
1. **Create a branch** from `main` for your changes
|
||||
2. **Make your changes** with appropriate tests
|
||||
3. **Ensure all tests pass**
|
||||
4. **Update documentation** if needed
|
||||
5. **Submit a merge request** with:
|
||||
- Clear description of changes
|
||||
- Reference to related issues
|
||||
- List of testing performed
|
||||
|
||||
## Need Help?
|
||||
|
||||
For detailed information about contributing, building documentation, testing, and development setup, please refer to our comprehensive [Contributing Guide](https://doi2dataset-66f763.gitpages.uni/contributing.html) in the documentation.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
Please be respectful and constructive in all interactions. We aim to maintain a welcoming environment for all contributors.
|
||||
|
||||
## Questions?
|
||||
|
||||
If you have questions about contributing, feel free to:
|
||||
- Open an issue for discussion
|
||||
- Check the existing documentation
|
||||
- Contact the maintainers
|
||||
|
||||
Thank you for contributing to doi2dataset! 🚀
|
Loading…
Add table
Add a link
Reference in a new issue