doc: Database#busy_timeout= renders without its description (shadowed by alias_method in database.rb)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- ruby, sqlite
- Ambito
- documentation
Direzione di ricerca
Leggi ext/sqlite3/database.c e lib/sqlite3/database.rb:387, dove l’issue identifica il metodo e l’alias. Controlla come RDoc visualizza il metodo C quando è presente l’alias Ruby, quindi applica la modifica suggerita all’alias ed esegui bundle exec rdoc. Il lavoro è completo quando la voce generata per busy_timeout= include la sua descrizione e busy_timeout rimane documentato come suo alias.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The generated docs show Database#busy_timeout= with no description. Its rdoc comment in ext/sqlite3/database.c ("Indicates that if a request for a resource terminates because that resource is busy, …") is never rendered, on main too, so anything added to that comment is invisible in the published docs. #771 adds text there about holding the GVL and deferring interrupts, which is how this came up.
Cause
lib/sqlite3/database.rb:387:
alias_method :busy_timeout, :busy_timeout=
When RDoc (8.1.0 here) parses this, it creates an undocumented busy_timeout= entry for SQLite3::Database, and that entry takes the place of the C method's documentation.
Checked by running rdoc on subsets of the files:
Files given to rdoc |
busy_timeout= description rendered |
|---|---|
ext/sqlite3/database.c alone |
yes |
ext/sqlite3/database.c + lib/sqlite3/pragmas.rb |
yes |
ext/sqlite3/database.c + lib/sqlite3/database.rb |
no |
the whole repo (bundle exec rdoc, as rdoc.yml runs it) |
no |
ext/sqlite3/database.c + lib/sqlite3/database.rb without the alias_method line |
yes |
Suggested fix
Define the alias in C, next to the method, and drop the Ruby alias_method:
rb_define_method(cSqlite3Database, "busy_timeout=", set_busy_timeout, 1);
rb_define_alias(cSqlite3Database, "busy_timeout", "busy_timeout=");
With that change, the busy_timeout= description renders, and busy_timeout still appears as "Alias for: busy_timeout=". Runtime behaviour is unchanged, since both define the same alias on SQLite3::Database.
I haven't included this in #771 to keep that PR focused. Happy to open a separate PR if you'd like.
- Lingua principale
- Ruby
- Stelle
- 845
- Fork
- 224
- Merge medio
- 2g 1h
- PR unite (30g)
- 17
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sparklemotion/sqlite3-ruby
-
Windows native gem: SQLite's Sleep() resolves to Ruby's rb_w32_Sleep, releasing the GVL (and delivering interrupts) while SQLite holds the connection mutexForse già presa @mrhoribu l’ha presa 1 giorno fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
sparklemotion/sqlite3-ruby#766 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-more-info
Difficoltà 3/5 1-2 giorni Idoneità per principianti 42/100
sparklemotion/sqlite3-ruby#653 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
sparklemotion/sqlite3-ruby#639 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
sparklemotion/sqlite3-ruby#628 · 10 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
bug help-wanted platform/windows
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
sparklemotion/sqlite3-ruby#618 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di sparklemotion/sqlite3-ruby
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
rubys/roundhouse#1917 ·
-
Store credit application selects a payment method from another storeForse già presa @beobungbu l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
test_rescues_connection_reset_on_issue_comments_lookup fails on master and blocks every pull requestAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
zerocracy/judges-action#3142 ·
I maintainer di solito rispondono entro 2 giorni
-
Malformed encoded_filters causes a 500, and keeps failing with session persistenceForse già presa @officialasishkumar l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
avo-hq/avo#4986 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno