doc: Database#busy_timeout= renders without its description (shadowed by alias_method in database.rb)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- ruby, sqlite
- Área
- documentation
Línea de trabajo
Lee ext/sqlite3/database.c y lib/sqlite3/database.rb:387, donde el issue identifica el método y el alias. Comprueba cómo muestra RDoc el método C cuando está presente el alias Ruby, aplica después el cambio de alias sugerido y ejecuta bundle exec rdoc. El trabajo estará listo cuando la entrada generada para busy_timeout= incluya su descripción y busy_timeout siga documentado como su alias.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Ruby
- Estrellas
- 845
- Forks
- 224
- Merge medio
- 2 d 1 h
- PR fusionados (30 d)
- 17
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de 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 mutexPosiblemente ocupada @mrhoribu la tomó hace 1 día. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
sparklemotion/sqlite3-ruby#766 ·
Los mantenedores suelen responder en 1 día
-
needs-more-info
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
sparklemotion/sqlite3-ruby#653 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
sparklemotion/sqlite3-ruby#639 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
sparklemotion/sqlite3-ruby#628 · 10 comentarios · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
bug help-wanted platform/windows
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
sparklemotion/sqlite3-ruby#618 ·
Los mantenedores suelen responder en 1 día
Todos los issues de sparklemotion/sqlite3-ruby
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
rubys/roundhouse#1917 ·
-
Store credit application selects a payment method from another storePosiblemente ocupada @beobungbu la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
test_rescues_connection_reset_on_issue_comments_lookup fails on master and blocks every pull requestAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
zerocracy/judges-action#3142 ·
Los mantenedores suelen responder en 2 días
-
Malformed encoded_filters causes a 500, and keeps failing with session persistencePosiblemente ocupada @officialasishkumar la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
avo-hq/avo#4986 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día