[Engineering] Code Health Newsletter - Issue 2 Volume 1

Jean-Rene Branaa jbranaa at wikimedia.org
Mon Dec 17 16:26:14 UTC 2018


Code Health Newsletter - Issue 2 Volume 1


The Code Health[0a] newsletter is a publication provided by the Code
Health Group[0b].  The Code Health Group serves as the hub for all
Code Health topics and activities within the movement.  If you are
aware or engaged in Code Health activities, we'd love to hear about
it.

The Code Health Newsletter is a new and hopefully valuable activity.
If you have feedback about this issue or any past issues[0c], please
don’t hesitate to share.  You can also submit content that you’d like
to share through Phabricator (use the Code-Health-Newsletter project).

# Code Health First Responders

After last issue there was some concern voiced about calling this
"First Responders" as the term is already used within the community.
As a result, we've tweaked the name a bit to call it "Code Health
First Responders".

Please remember to share your experiences tackling your Code Health
challenges.  Become or nominate a First Responder by submitting a task
in Phabricator in the Code-Health-First-Responder project.

More information available here[1].


# Code Stewardship

## Quarterly Reviews

This quarter's Code Stewardship review cycle is open and ending on
January 16th.  At the moment we've got three items being reviewed:
CodeReview extension, UserMerge extension, and Graphoid service.

Join the discussion in Phabricator[2a] or on Wiki[2b].

## Latest Code Stewardship Coverage


Core Components: 63%

Extensions: 74%

Services: 65%


Note: these numbers are based on the Developers/Maintainers[2c] page.


## What it means to be a Code Steward


Over the course of the last several months, the Foundation has been
working to close the gap on the number of un/under-funded Components,
Extensions, and Services deployed to the production environment.  Many
have already stepped up to become Code Stewards, but outside of some
aspirational goals about bug resolution rates, and code review
responsiveness, there hasn't been much guidance. Over the course of
the next few weeks, we will be attempting to bring more clarity to
that.



# Code Health by the Numbers


The following are some stats regarding Code Health.  As we are early
in defining/implementing our Code Health metrics, data is limited.

See the Code Health Metrics project[3a] for more information.

In future issues of the newsletter, we'll expand this section to
include other metrics as well as trending information.


## Code Coverage


                                  0-50%     51-90%     90-100%

                                  _______________________________

Extensions                  67         16              4

Code Components     5            11             18

Services                     Not Available Yet


Note: As of 11/30/18[3b].


### Did you know?


Coverme[3c], a tool written by legoktm, is a great tool to help
prioritize areas for additional test coverage.  It helps by
identifying the code that is most often executed in production and its
current coverage level. Please note that currently these tools support
PHP code bases. We are currently investigating what it would take to
expand into other languages.

Historical coverage charts can been seen here[3d].  These charts can
be used to gauge the overall trend of test coverage for the 12 months.
This is an important tool to use for measuring incremental progress
over time.


# Code Health Learning Circles

If you have a topic that you'd like to share, but want a little help
with organizing, please submit a Phabricator ticket to the
Code-Health-Learning-Circles project.

Are there some topics that you’d like to see some Learning Circles
about?  Submit a Phabricator ticket to the
Code-Health-Learning-Circles project and we’ll do what we can to make
it happen.

More information about Code Health Learning Circles available here[4].


# Help Wanted

## Memory Profiling/Leak Troubleshooting

Do you have experience/expertise in memory profiling?  We’re trying to
chase down some memory leaks using Chromium’s profiling tools, but
we’re running into challenges. Join the conversation in phabricator[5]
and/or in the wikimedia-codehealth irc channel.

# Code Health Group Activities


Although the Code Health Group looks to act as a hub for all code
health topics, the group also sponsors various broader reaching
initiatives.

## Recent Activities

### Code Health Metrics

The Code Health Metrics Working Group has been busy over the last
couple of months.  The groups primary focus has been to evaluate some
of the code metrics frameworks.  These tools provide us with code
analysis, reporting, and a framework to plug in the results of other
analysis tools.

The two that are available for evaluation are:

SonarQube [6a]

PHPMetrics [6b]

## Upcoming Activities:

### Code Reviews

Code reviews are a critical part of our development process.  They are
key to ensuring code changes are of the highest quality possible.
That being said, getting timely code reviews can prove to be
challenging at times.

The foundation is forming a Code Review Working Group to help better
define the challenges and propose some solutions.  If you’re
interested in participating in this discussion, please join us on the
wikimedia-codehealth irc channel, check out the Code-Review-Workgroup
Phabricator work board [6c], and/or reach out to jrbranaa or aklapper
directly if you’re interested in being part of the working group.


### Expanding Code Coverage to Services

As noted in Code Coverage section of this newsletter, Services are not
currently included in our Code Coverage metrics. We are working to
change that.  If you’re interested in helping with that, please see
Task T211710[6d].


# Footnotes

[0a][Code Health - MediaWiki](https://www.mediawiki.org/wiki/Code_Health)
[0b][Code Health Group - MediaWiki
(https://www.mediawiki.org/wiki/Code_Health_Group)
[0c]https://www.mediawiki.org/wiki/Code_Health#Newsletters
[1][Code Health/First-Responders -
MediaWiki](https://www.mediawiki.org/wiki/Code_Health/First-Responders)
[2a][Code-Stewardship-Reviews ·
Workboard](https://phabricator.wikimedia.org/project/board/3144/)
[2b][Code stewardship reviews/Feedback solicitation -
MediaWiki](https://www.mediawiki.org/wiki/Code_stewardship_reviews/Feedback_solicitation)
[2c][Developers/Maintainers -
MediaWiki](https://www.mediawiki.org/wiki/Developers/Maintainers)
[3a][Code Health Group/projects/Code Health Metrics -
MediaWiki](https://www.mediawiki.org/wiki/Code_Health_Group/projects/Code_Health_Metrics)
[3b][Test coverage - Documentation](https://doc.wikimedia.org/cover/)
[3c]https://tools.wmflabs.org/coverme/
[3d][Index of /coverage/charts/](https://tools.wmflabs.org/coverage/charts/)
[4][Code Health Group/Learning Circles -
MediaWiki](https://www.mediawiki.org/wiki/Code_Health_Group/Learning_Circles)
[5]https://phabricator.wikimedia.org/T212135
[6a][SonarCloud](https://sonarcloud.io/organizations/wmftest/projects)
[6b][PhpMetrics
report](https://doc.wikimedia.org/mediawiki-core/master/phpmetrics/index.html)
[6c][Code-Review-Workgroup](https://phabricator.wikimedia.org/project/view/3766/)
[6d][⚓ T211710 Expose code coverage stats for
Services](https://phabricator.wikimedia.org/T211710)



More information about the Engineering mailing list