Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scorecard (work in progress). #1344

Merged
merged 3 commits into from
Jan 4, 2019
Merged

Scorecard (work in progress). #1344

merged 3 commits into from
Jan 4, 2019

Conversation

pq
Copy link
Member

@pq pq commented Jan 4, 2019

WIP but at a reasonable checkpoint. Ultimately this may generate a publishable report (or inform badging) but for now it dumps a table that can be used for informal scoring.

/cc @bwilkerson @srawlins

fyi @devoncarew


Sample run:

name fix flutter user flutter repo pedantic stagehand status bug refs
always_declare_return_types
always_put_control_body_on_new_line
always_put_required_named_parameters_first
always_require_non_null_named_parameters 💡
always_specify_types
annotate_overrides 💡
avoid_annotating_with_dynamic 💡 #1162
avoid_bool_literals_in_conditional_expressions
avoid_types_on_closure_parameters 💡 #1099
avoid_as
avoid_catching_errors
avoid_catches_without_on_clauses
avoid_classes_with_only_static_members
avoid_double_and_int_checks
avoid_empty_else 💡
avoid_field_initializers_in_const_classes
avoid_function_literals_in_foreach_calls
avoid_implementing_value_types
avoid_init_to_null 💡
avoid_js_rounded_ints
avoid_null_checks_in_equality_operators
avoid_positional_boolean_parameters
avoid_private_typedef_functions
avoid_relative_lib_imports
avoid_renaming_method_parameters
avoid_returning_null
avoid_returning_null_for_future
avoid_returning_null_for_void
avoid_return_types_on_setters 💡
avoid_returning_this
avoid_setters_without_getters
avoid_shadowing_type_parameters
avoid_single_cascade_in_expression_statements
avoid_slow_async_io
avoid_types_as_parameter_names
avoid_unused_constructor_parameters
avoid_void_async
await_only_futures 💡
camel_case_types
cancel_subscriptions
cascade_invocations #1023, #806, #787
close_sinks
comment_references
control_flow_in_finally
constant_identifier_names
curly_braces_in_flow_control_structures
directives_ordering
empty_catches 💡
empty_constructor_bodies 💡
empty_statements 💡
file_names
flutter_style_todos
hash_and_equals
implementation_imports #1175
invariant_booleans experimental #1321, #914, #811, #720, #674
iterable_contains_unrelated_type #1003
join_return_with_assignment
library_names
library_prefixes
lines_longer_than_80_chars
list_remove_unrelated_type
literal_only_boolean_expressions
no_adjacent_strings_in_list
no_duplicate_case_values
non_constant_identifier_names 💡
null_closures
one_member_abstracts #990
omit_local_variable_types #1006
only_throw_errors
overridden_fields
package_api_docs #213
package_prefixed_library_names
parameter_assignments
prefer_adjacent_string_concatenation #1191
prefer_bool_in_asserts deprecated
prefer_collection_literals 💡
prefer_conditional_assignment 💡
prefer_const_constructors
prefer_const_constructors_in_immutables
prefer_const_declarations 💡
prefer_const_literals_to_create_immutables
prefer_asserts_in_initializer_lists
prefer_constructors_over_static_methods
prefer_contains
prefer_equal_for_default_values
prefer_expression_function_bodies
prefer_final_fields 💡
prefer_final_locals 💡 #1342
prefer_foreach
prefer_function_declarations_over_variables
prefer_generic_function_type_aliases
prefer_initializing_formals
prefer_int_literals
prefer_interpolation_to_compose_strings
prefer_iterable_whereType
prefer_is_empty
prefer_is_not_empty 💡 #1232
prefer_mixin
prefer_single_quotes
prefer_typing_uninitialized_variables
prefer_void_to_null
public_member_api_docs
package_names
recursive_getters
slash_for_doc_comments
sort_constructors_first
sort_pub_dependencies
sort_unnamed_constructors_first
super_goes_last
test_types_in_equals #443
throw_in_finally
type_annotate_public_apis #1121
type_init_formals 💡
unawaited_futures #1007, #836, #534, #419
unnecessary_await_in_return
unnecessary_brace_in_string_interps
unnecessary_const
unnecessary_new
unnecessary_null_aware_assignments
unnecessary_null_in_if_null_operators
unnecessary_getters_setters #275
unnecessary_lambdas 💡
unnecessary_overrides
unnecessary_parenthesis
unnecessary_statements
unnecessary_this 💡
unrelated_type_equality_checks
use_function_type_syntax_for_parameters
use_rethrow_when_possible
use_setters_to_change_properties
use_string_buffers #777
use_to_and_as_if_applicable
valid_regexps
void_checks

@coveralls
Copy link

Coverage Status

Coverage remained the same at 96.442% when pulling ec54429 on scorecard into 61d5281 on master.

Copy link
Member

@bwilkerson bwilkerson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of questions to think about for future possible work, but I agree this is a good checkpoint.

}
var bugReferences = <String>[];
for (var bug in bugs) {
if (bug.title.contains(lint.name)) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How accurate is this heuristic? Have we been good about ensuring that issues related to a lint always have the lint name in the title?

Also, this doesn't account for the issues in the sdk issue tracker. Should we start being more careful about where lint issues are located?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know how accurate it is but it does match a few. 😄 I try to include the name in bug reports but I'm sure we aren't consistent. If we did something with this data though maybe that would give us some incentive to be more vigilant?

My thinking for this column was to provoke exactly this conversation... So thanks!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I've been surprised, I think we often are given the exact name in the title. I'll pay more attention to this too.

@pq pq merged commit 5800aeb into master Jan 4, 2019
@pq pq deleted the scorecard branch January 4, 2019 15:18
@pq pq mentioned this pull request Jan 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants