Bump version 0.1.0 → 0.1.2. CHANGELOG mis à jour avec les ajouts, corrections et issues connues.
4.8 KiB
4.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.1.2] - 2026-09-10
Added
- Authentification QR code / token (
PRONOTE_AUTH_MODE=qr_token) : alternative au modepasswordpour les instances Pronote utilisant HubEduConnect/EduConnect où l'authentification par mot de passe échoue (CAPTCHA, MFA, flux SAML modifié).- Enrôlement initial via QR code (
pronotepy.qrcode_login) - Persistance du token rotatif dans
.pronote_auth_state.json(permissions0600, écriture atomique, symlink-safe) - Login subsequent via
pronotepy.token_loginavec token persisté - Notification XMPP actionnable en cas d'échec de rotation (
PronoteAuthRotationError) - Persistance du token après chaque opération de données réussie et dans le chemin d'erreur (refresh pronotepy)
_is_pronotepy_configured()mode-aware :qr_tokenne requiert quePRONOTE_URL- Redaction des secrets explicites (token, PIN, jeton QR) dans tous les logs
- Enrôlement initial via QR code (
- Nouvelles variables d'environnement :
PRONOTE_AUTH_MODE,PRONOTE_QR_CODE_FILE,PRONOTE_QR_PIN - Documentation : section "Contrat d'authentification QR code / token" dans
AGENTS.md, section QR code dans le wikiGuidePronote
Fixed
PRONOTE_URLignoré à cause du double préfixeenv_prefix(renommagepronote_url→urldansPronoteSettings)PRONOTE_ENTrendu optionnel pour les connexions pronotepy directes.env.examplecorrigé (eleve.html→parent.html)
Changed
- Wiki
GuidePronoteenrichi : section "Quand l'ENT est obligatoire" (EduConnect/HubEduConnect), exemple Bordeaux AGENTS.md: ajout de la section §13 "Versionnage et releases"
Known Issues
- #20 — Triple authentification pronotepy (double INIT + refresh) lors d'un run
- #21 — Erreur pronotepy 20 « La page a expiré ! (11) » sur
get_informations
Tests
- 694 tests passés, couverture 94.93%
- 35 nouveaux tests QR/token : config, auth_state, client, propagation, intégration end-to-end
[0.1.0] - 2026-09-08
Initial release covering milestones M1 through M15.
Added
- M1 (Scaffolding): Python project structure with
pyproject.toml, and tooling configuration forruff,mypy,bandit, andpre-commit. - M2 (Configuration & secrets): Pydantic Settings for configuration management,
SecretStrfor sensitive fields, and redaction utilities (redact_url,redact_secrets,redact_exception) withRedactingFormatterfor logging. - M3 (Data models): 16 Pydantic models and 6 enums across 10 modules, including frozen contracts and mutable work results.
- M4 (Pronote sources): iCal fetch and parse,
pronotepy.ParentClientintegration, automatic fallback logic forauto,ical, andpronotepymodes, and error redaction for sensitive data. - M5 (Blog RSS):
feedparser-based RSS client with GUID deduplication, HTTP cache support (ETag/If-Modified-Since), andBlogRSSStatepersistence. - M6 (Theoretical agenda): JSON provider with week parity (even/odd), school holidays calendar, and deterministic IDs for events.
- M7 (CalDAV sync): Differential synchronization by UID,
X-PRONOTE-SYNC-MANAGEDmarker for managed events, idempotent operations, preserved cancelled events, and dry-run support. - M8 (Agenda diff):
AgendaComparatorwith deterministic matching, and generation ofAgendaDiff/AgendaChangeobjects for tracking differences. - M9 (AI synthesis):
SynthesisProviderprotocol, OpenAI provider, optionallitellmprovider, andopenai-compatibleprovider with degraded mode (returnsNoneon failure). - M10 (XMPP channel):
XmppChannelusingslixmpp, formatted messages (synthesis, homeworks, changes, messages, blog), and error handling that returnsFalseon failure. - M11 (Pipeline orchestration):
PipelineRunneras composition root, 7 pipeline steps, degraded error handling, dry-run mode, and iCal reuse within a single run. - M12 (CLI entry point):
pronote-synccommand with--dry-runand--log-leveloptions, redacted error display, and safe traceback in DEBUG mode. - M13 (Tests & coverage): 636 tests with 95.67% coverage, test fixtures (
pronote-4e.ics,pronote-6e.ics), sharedconftest.py, and secret non-leak tests. - M14 (Deployment): systemd service and timer (daily at 18:00), logrotate configuration (daily, rotate 7, compress),
check_secrets.pypre-deployment scanner, and exploitation guide. - M15 (Documentation): README, README.LLM.md (AI agent setup guide), MIT LICENSE, CHANGELOG, and Gitea Actions CI/CD reference for LXC/VPS (Debian/CentOS).
- Other: MIT License. Gitea Actions CI/CD reference for LXC/VPS (Debian/CentOS) is planned and optional, not delivered in this release.