123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# Contributing to Proxy-Core
|
||
|
||
Спасибо за интерес к проекту! Мы рады любому вкладу.
|
||
|
||
## 🤝 Как внести вклад
|
||
|
||
### Сообщить об ошибке
|
||
|
||
1. Проверьте, что проблема еще не была описана в [Issues](https://github.com/houseassassin/proxy-core/issues)
|
||
2. Создайте новый Issue с подробным описанием:
|
||
- Версия ОС
|
||
- Версия скрипта
|
||
- Шаги для воспроизведения
|
||
- Ожидаемое поведение
|
||
- Фактическое поведение
|
||
- Логи ошибок
|
||
|
||
### Предложить улучшение
|
||
|
||
1. Создайте Issue с описанием предложения
|
||
2. Объясните, почему это улучшение будет полезно
|
||
3. Приведите примеры использования
|
||
|
||
### Отправить Pull Request
|
||
|
||
1. Fork репозитория
|
||
2. Создайте ветку для вашей функции (`git checkout -b feature/amazing-feature`)
|
||
3. Внесите изменения
|
||
4. Протестируйте на чистой системе
|
||
5. Commit изменений (`git commit -m 'Add amazing feature'`)
|
||
6. Push в ветку (`git push origin feature/amazing-feature`)
|
||
7. Откройте Pull Request
|
||
|
||
## 📝 Стандарты кода
|
||
|
||
### Bash скрипты
|
||
|
||
- Используйте `set -euo pipefail` в начале скриптов
|
||
- Добавляйте комментарии к сложным участкам
|
||
- Используйте функции для повторяющегося кода
|
||
- Проверяйте код с помощью `shellcheck`
|
||
- Используйте понятные имена переменных
|
||
|
||
### Форматирование
|
||
|
||
```bash
|
||
# Хорошо
|
||
function install_package() {
|
||
local package_name="$1"
|
||
log "Installing $package_name..."
|
||
apt-get install -y "$package_name"
|
||
}
|
||
|
||
# Плохо
|
||
function inst() {
|
||
apt-get install -y $1
|
||
}
|
||
```
|
||
|
||
### Обработка ошибок
|
||
|
||
```bash
|
||
# Всегда проверяйте результат выполнения
|
||
if ! command -v docker &> /dev/null; then
|
||
error "Docker not found"
|
||
return 1
|
||
fi
|
||
|
||
# Используйте trap для очистки
|
||
trap cleanup EXIT
|
||
```
|
||
|
||
## 🧪 Тестирование
|
||
|
||
Перед отправкой PR протестируйте на:
|
||
- Ubuntu 22.04
|
||
- Debian 12
|
||
- CentOS 9 (если возможно)
|
||
|
||
Проверьте:
|
||
- Установку с нуля
|
||
- Обновление существующей установки
|
||
- Удаление компонентов
|
||
- Работу всех функций меню
|
||
|
||
## 📚 Документация
|
||
|
||
При добавлении новых функций:
|
||
- Обновите README.md
|
||
- Добавьте примеры использования
|
||
- Опишите требования
|
||
- Добавьте раздел в Troubleshooting (если нужно)
|
||
|
||
## 🎨 Стиль коммитов
|
||
|
||
Используйте понятные сообщения коммитов:
|
||
|
||
```
|
||
feat: добавлена поддержка Shadowsocks
|
||
fix: исправлена ошибка установки Docker
|
||
docs: обновлена документация по WireGuard
|
||
refactor: улучшена функция генерации паролей
|
||
test: добавлены тесты для SSL сертификатов
|
||
```
|
||
|
||
## 🔍 Code Review
|
||
|
||
Все PR проходят review. Будьте готовы:
|
||
- Ответить на вопросы
|
||
- Внести изменения по замечаниям
|
||
- Обновить документацию
|
||
|
||
## 📜 Лицензия
|
||
|
||
Отправляя PR, вы соглашаетесь с лицензией MIT проекта.
|
||
|
||
## 💬 Вопросы?
|
||
|
||
- Создайте Issue
|
||
- Напишите в Telegram: [@houseassassin](https://t.me/houseassassin)
|
||
|
||
Спасибо за вклад в Proxy-Core! 🚀
|