doc: Database#busy_timeout= renders without its description (shadowed by alias_method in database.rb)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- ruby, sqlite
- Domaine
- documentation
Piste de recherche
Lis ext/sqlite3/database.c et lib/sqlite3/database.rb:387, où l’issue indique la méthode et l’alias. Vérifie comment RDoc affiche la méthode C lorsque l’alias Ruby est présent, puis applique le changement d’alias suggéré et exécute bundle exec rdoc. Le travail est terminé lorsque l’entrée générée pour busy_timeout= inclut sa description et que busy_timeout reste documenté comme son alias.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Ruby
- Étoiles
- 845
- Forks
- 224
- Merge moyen
- 2 j 1 h
- PR mergées (30 j)
- 17
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues 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 mutexPeut-être pris @mrhoribu l’a pris il y a 1 jour. Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
sparklemotion/sqlite3-ruby#766 ·
Les mainteneurs répondent en général sous 1 jour
-
needs-more-info
Difficulté 3/5 1-2 jours Accessibilité débutants 42/100
sparklemotion/sqlite3-ruby#653 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
sparklemotion/sqlite3-ruby#639 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
sparklemotion/sqlite3-ruby#628 · 10 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
bug help-wanted platform/windows
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
sparklemotion/sqlite3-ruby#618 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de sparklemotion/sqlite3-ruby
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
rubys/roundhouse#1917 ·
-
Store credit application selects a payment method from another storePeut-être pris @beobungbu l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
test_rescues_connection_reset_on_issue_comments_lookup fails on master and blocks every pull requestOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100
zerocracy/judges-action#3142 ·
Les mainteneurs répondent en général sous 2 jours
-
Malformed encoded_filters causes a 500, and keeps failing with session persistencePeut-être pris @officialasishkumar l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
avo-hq/avo#4986 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour