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