iilyak opened a new pull request, #5309:
URL: https://github.com/apache/couchdb/pull/5309

   ## Overview
   
   This PR serves as a code documentation since we don't run type checks during 
CI. It doesn't modify existing code just adding type specs.
    
   ## Testing recommendations
   
   Since we don't run dyalizer during CI and given the fact that it fails on 
main. There is no good way to test correctness of the spec other than comparing 
the output of dilayzer on main and on the current branch.
   
   on *main* branch
   
   ```
   couchdb on *main* 
   ❯ make
   ...
   couchdb on *main*
   ❯ make dialyze apps=dreyfus
   ==> dreyfus (build-plt)
   WARN:  ''build-plt'' command does not apply to directory 
/Users/iilyak/Code/couchdb/rel
   WARN:  ''build-plt'' command does not apply to directory 
/Users/iilyak/Code/couchdb
   ==> dreyfus (dialyze)
   src/dreyfus_bookmark.erl:61:29: Record construction
             #shard{name :: '_', ref :: '_', opts :: '_'} violates the declared 
type of field opts ::
             'undefined' | [any()]
   src/dreyfus_httpd.erl:59:21: The pattern
             {'ok', Bookmark0, TotalHits, Hits0} can never match the type
             {'error', _} | {'ok', _, _, _, _, _}
   src/dreyfus_index.erl:110:1: The inferred return type of init/1
            ('ok') has nothing in common with
             'ignore' |
             {'ok', _} |
             {'stop', _} |
             {'ok', _,
              'hibernate' | 'infinity' |
              non_neg_integer() |
              {'continue', _}}, which is the expected return type for the 
callback of the gen_server behaviour
   src/dreyfus_index.erl:152:36: The created fun has no local return
   src/dreyfus_index.erl:231:36: The created fun has no local return
   src/dreyfus_index_updater.erl:23:1: Function update/2 has no local return
   ERROR: dialyze failed while processing 
/Users/iilyak/Code/couchdb/src/dreyfus: rebar_abort
   make: *** [dialyze] Error 1
   ```
   
   on *add-specs-to-clouseau_rpc* branch
   
   ```
   couchdb on *add-specs-to-clouseau_rpc* 
   ❯ make
   ...
   couchdb on *add-specs-to-clouseau_rpc*
   ❯ make dialyze apps=dreyfus
   ==> dreyfus (build-plt)
   WARN:  ''build-plt'' command does not apply to directory 
/Users/iilyak/Code/couchdb/rel
   WARN:  ''build-plt'' command does not apply to directory 
/Users/iilyak/Code/couchdb
   ==> dreyfus (dialyze)
   src/dreyfus_bookmark.erl:61:29: Record construction
             #shard{name :: '_', ref :: '_', opts :: '_'} violates the declared 
type of field opts ::
             'undefined' | [any()]
   src/dreyfus_httpd.erl:59:21: The pattern
             {'ok', Bookmark0, TotalHits, Hits0} can never match the type
             {'error', _} | {'ok', _, _, _, _, _}
   src/dreyfus_index.erl:110:1: The inferred return type of init/1
            ('ok') has nothing in common with
             'ignore' |
             {'ok', _} |
             {'stop', _} |
             {'ok', _,
              'hibernate' | 'infinity' |
              non_neg_integer() |
              {'continue', _}}, which is the expected return type for the 
callback of the gen_server behaviour
   src/dreyfus_index.erl:152:36: The created fun has no local return
   src/dreyfus_index.erl:231:36: The created fun has no local return
   src/dreyfus_index.erl:297:17: The variable Error can never match since 
previous clauses completely covered the type
             {'ok', non_neg_integer()}
   src/dreyfus_index_updater.erl:23:1: Function update/2 has no local return
   ERROR: dialyze failed while processing 
/Users/iilyak/Code/couchdb/src/dreyfus: rebar_abort
   make: *** [dialyze] Error 1
   ```
   
   ## Related Issues or Pull Requests
   
   <!-- If your changes affect multiple components in different
        repositories please put links to those issues or pull requests here.  
-->
   
   ## Checklist
   
   - [ ] Code is written and works correctly
   - [ ] Changes are covered by tests
   - [ ] Any new configurable parameters are documented in 
`rel/overlay/etc/default.ini`
   - [ ] Documentation changes were made in the `src/docs` folder
   - [ ] Documentation changes were backported (separated PR) to affected 
branches
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@couchdb.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to