Code comments
Comments for follow-up actions
Whenever you add comments to the code that are expected to be addressed in the future, create a technical debt issue. Then put a link to it to the code comment you've created. This allows other developers to quickly check if a comment is still relevant and what needs to be done to address it.
Examples:
# Deprecated scope until code_owner column has been migrated to rule_type.
# To be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/11834.
scope :code_owner, -> { where(code_owner: true).or(where(rule_type: :code_owner)) }
Class and method documentation
Use YARD syntax if documenting method arguments or return values.
Example without YARD syntax:
class Order
# Finds order IDs associated with a user by email address.
def order_ids_by_email(email)
# ...
end
end
Example using YARD syntax:
class Order
# Finds order IDs associated with a user by email address.
#
# @param email [String, Array<String>] User's email address
# @return [Array<Integer>]
def order_ids_by_email(email)
# ...
end
end
If a method's return value is not used, the YARD @return type should be annotated
as void, and the method should explicitly return nil. This pattern clarifies that
the return value shouldn't be used and prevents accidental usage in chains or assignments.
For example:
class SomeModel < ApplicationRecord
# @return [void]
def validate_some_field
return unless field_is_invalid
errors.add(:some_field, format(_("some message")))
# Explicitly return nil for void methods
nil
end
end
For more context and information, see the merge request comment.