Thank you for your interest in contributing to EUR-UN projects! This document provides guidelines and standards for contributing to any repository within our organization.
- Code of Conduct
- Getting Started
- Workflow
- Coding Standards
- Commit Conventions
- Pull Request Guidelines
- Issue Reporting
- Language & Documentation
- License
All contributors are expected to adhere to our Code of Conduct. Please read it before participating.
- Fork the target repository to your own GitHub account.
- Clone your fork locally:
git clone https://github.com/<your-username>/<repo-name>.git cd <repo-name>
- Add upstream remote to stay in sync:
git remote add upstream https://github.com/EUR-UN/<repo-name>.git
- Install dependencies as documented in the project's README.
We use the Fork & Pull Request model.
fork → clone → branch → commit → push → pull request → review → merge
| Prefix | Purpose | Example |
|---|---|---|
feature/ |
New feature | feature/add-mqtt-auth |
fix/ |
Bug fix | fix/cert-renewal-crash |
docs/ |
Documentation only | docs/update-api-reference |
refactor/ |
Code refactoring | refactor/extract-parser |
test/ |
Adding or updating tests | test/add-unit-tests |
chore/ |
Maintenance tasks | chore/update-dependencies |
git fetch upstream
git checkout master
git merge upstream/master
git push origin master- Write clean, readable code with meaningful variable and function names.
- Follow the existing code style of the project you are contributing to.
- Add comments for complex logic — but prefer self-documenting code.
| Language | Formatter / Linter | Style Guide |
|---|---|---|
| Python | black, ruff / flake8 |
PEP 8 |
| Go | gofmt, golangci-lint |
Effective Go |
| TypeScript | prettier, eslint |
Airbnb / project config |
| Shell | shellcheck |
Google Shell Style Guide |
| VHDL | — | IEEE Std 1076-2008 conventions |
- Clear output cells before committing (unless output is necessary for demonstration).
- Keep cells focused — one logical step per cell.
- Include markdown cells to explain methodology.
We follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer(s)]
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation changes |
style |
Formatting, missing semicolons, etc. (no code change) |
refactor |
Code change that neither fixes a bug nor adds a feature |
test |
Adding or updating tests |
chore |
Build process or auxiliary tool changes |
perf |
Performance improvements |
ci |
CI configuration changes |
feat(monitor): add Telegram push notification support
fix(cert): resolve renewal timeout on slow networks
docs(readme): add Chinese translation for installation section
- One PR = One logical change. Keep PRs focused and reviewable.
- Fill out the PR template — describe what changed and why.
- Reference related issues using
Closes #123orFixes #456. - Ensure all checks pass — CI, lint, and tests must be green.
- Be responsive to review feedback.
- Squash commits if requested during review.
<type>(<scope>): <concise description>
Example: feat(api): add webhook retry mechanism
Please include:
- Environment: OS, language/runtime version, relevant tool versions
- Steps to reproduce: Minimal, reproducible steps
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Logs/screenshots: If applicable
Please include:
- Problem statement: What problem does this solve?
- Proposed solution: How should it work?
- Alternatives considered: What other approaches did you consider?
We maintain multilingual documentation (English / 中文 / Français) across most projects. When contributing documentation:
- Write the primary version in English.
- Add Chinese translations where the project already has bilingual docs.
- Add French translations where applicable.
- For Czech-specific tools, include Czech terminology where appropriate.
By contributing to any EUR-UN repository, you agree that your contributions will be licensed under the same license as the project (typically MIT or GPL-3.0). See each project's LICENSE file.
Thank you for helping make EUR-UN better! If you have questions, reach out at [email protected].