👨‍💻 Разработка и вклад в Flux

Присоединяйтесь к разработке! Этот раздел для разработчиков, которые хотят внести свой вклад.

📁 Структура исходного кода

source/
├── main.py                 # Основной исполняемый файл
├── config/                 # Настройки проекта
│   ├── settings.py        # Общие настройки
│   ├── URLS.txt           # Список URL
│   ├── URLS_base64.txt    # Base64 подписки
│   ├── whitelist-all.txt  # SNI домены
│   └── cidrwhitelist.txt  # CIDR адреса
├── fetchers/fetcher.py    # Загрузка конфигов
├── processors/config_processor.py  # Обработка
└── utils/                 # Вспомогательные модули
    ├── logger.py          # Логирование
    ├── file_utils.py      # Файловые операции
    └── github_handler.py  # GitHub API

✨ Новые функции и улучшения

Добавлена валидация: Функция is_valid_vpn_config_url() в модулях processors/config_processor.py и utils/file_utils.py проверяет, является ли строка действительной VPN конфигурацией по формату протокол://

Все функции обработки теперь используют валидацию, чтобы избежать включения неподходящих строк (текстовых комментариев) в итоговые файлы.

🚀 Запуск локально

# Клонирование репозитория
git clone https://github.com/username/flux
cd flux/source

# Установка зависимостей
pip install -r requirements.txt

# Настройка токена
export MY_TOKEN=<GITHUB_TOKEN>  # токен с правом repo

# Запуск генератора
python main.py  # конфиги появятся в ../githubmirror

Тестирование без загрузки:

python main.py --dry-run

Выполнит все операции, кроме загрузки в GitHub.

🤝 Внесение изменений

  1. Форкните репозиторий
  2. Создайте ветку: git checkout -b feature/новая-функция
  3. Внесите изменения
  4. Сделайте коммит: git commit -m 'Добавил новую функцию'
  5. Запушьте: git push origin feature/новая-функция
  6. Создайте Pull Request

🧪 Тестирование

Локальное тестирование

# Тестовый запуск
python main.py --dry-run

# Запуск тестов
python -m pytest tests/

# Конкретный тест
python -m pytest tests/test_fetchers.py

# С покрытием кода
python -m pytest --cov=src tests/

Шаблоны

📝 Issue:

**Описание проблемы**
**Шаги для воспроизведения**
**Ожидаемое поведение**
**Версия:** 1.0.0
**ОС:** Windows/Linux/Mac

🚀 Pull Request:

## Описание изменений
## Тип изменения
## Чеклист
- [ ] Код соответствует стилю
- [ ] Добавлены тесты
- [ ] Обновлена документация

📋 Требования

Компонент Версия Назначение
Python 3.8+ Основной язык
requests 2.28+ HTTP запросы
PyGithub 1.55+ GitHub API
python-dotenv 0.21+ Переменные окружения
colorama 0.4.6+ Цветной вывод

🎯 Архитектурные принципы

🧩 Модульность

Каждый компонент выполняет одну задачу

🧪 Тестируемость

Функции должны быть легко тестируемыми

⚡ Производительность

Параллельные операции, эффективные алгоритмы

🛡️ Устойчивость

Обработка ошибок внешних сервисов

📝 Документация

Код должен быть хорошо документирован

🔧 Поддерживаемость

Простота внесения изменений

📈 Дорожная карта

Q1

2026 Q1: Стабилизация

  • Улучшение обработки ошибок
  • Оптимизация производительности
  • Расширение тестового покрытия
Q2

2026 Q2: Новые функции

  • Поддержка новых протоколов
  • Улучшение фильтрации
  • API для разработчиков
Q3

2026 Q3: Расширение

  • Поддержка новых регионов
  • Улучшение документации
  • Интеграция с сервисами