Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

save() increments SEQUENCE by default - wrong for sync and copy use cases

Chiusa
#739 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
api

Direzione di ricerca

Start at CalendarObjectResource.save(), where increase_seqno defaults to True, then check the other save paths the issue names (add_event(), save_object()) for whether they forward the flag. The issue leaves the choice open: flip the default with a deprecation period, or keep it and document it. Get a maintainer decision before coding. Done means the chosen behaviour is applied consistently across the save paths and covered by tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Disclaimer: AI-generated text below the line, generated by Claude Opus 5.5 (Claude Code), from the prompt:

https://github.com/pycalendar/calendaring-sync/pull/19 [and the design notes of the calendaring library] - please file the issues mentioned in that pull request


CalendarObjectResource.save() has increase_seqno=True as default, so every save of an object that has a SEQUENCE property bumps it.

RFC 5545 §3.8.7.4 has the organizer increment SEQUENCE for significant revisions, and RFC 5546 uses it to order scheduling messages. A sync engine or a copy/migrate tool that writes an object it read elsewhere is not making a revision: it must store the data unchanged, or the two sides diverge and every sync round bumps the number again. Cosmetic edits (fixing a typo in a description) arguably don't warrant a bump either.

Callers can pass increase_seqno=False, but the default surprises anyone who expects save() to save what they have.

Options:

  • flip the default to False (breaking, would need a deprecation period), or
  • keep it, but document it prominently and make sure every save path (add_event(), save_object(), …) passes the flag through.

Found by calendaring-sync, which must disable it in its adapter: https://github.com/pycalendar/calendaring-sync/pull/19
Related discussion on implicit changes to objects: https://github.com/python-caldav/caldav/issues/613

Lingua principale
Python
Stelle
412
Fork
113
Merge medio
1g 2h
PR unite (30g)
41

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di python-caldav/caldav

Tutte le issue di python-caldav/caldav

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.