Composition Analysis: select topics for the upcoming "Engineers Choice" milestones
Problem to solve
Quoting Nicole from #134 (closed):
Product will review Engineering's top picks for improvements so that together they can select 1 large or a few smaller items to dedicate time to knocking out. These can be architecture redesigns or refactors, tooling additions or changes, or automation additions or changes. The goal is to make the team more efficient and reduce stress and frustration over the coming year.
Bugs and other normal ongoing tasks will still need to be addressed, but no new product / feature work will be selected by product, and any organizational priorities will attempt to be delayed if possible.
Proposal
Use this issue to throw any ideas to be reviewed, prioritized, and then possibly selected for these 2 engineering focused milestones.
Outcomes
The suggested topics have been grouped in three main themes and ordered by number of votes:
Testing:
- (5) move tests projects to analyzers
- (4) Rails fixtures
- (4) Organize tests/demo projects to quickly find a project showcasing a given feature. These are not meant for automated testing, but more as fixtures to help all engineers (including counterparts) when developing.
- (3) Fix flaky tests
- (3) replace manual tests code with testify packages in analyzers
- (3) migrate compare_report shell script to ruby (possibility to use rspec then)
- (2) replace jq with ruby to compare deep JSON objects in compare_reports shell script (after migration to ruby)
- (1) DRY unit tests in gemnasium parsers
- (1) integration test for analyzers command line
Development:
- (4) improve analyzer build time (gemnasium-maven mentionned but there can be others)
- (3) improve debugging of analyzers within their container
- (2) improve logging of analyzers by adding traces
- (1) DRY CI-templates (though, part of it is related to QA jobs so overlap with testing)
- (0) improve logging of analyzers by wrapping command execution
Feature/architecture:
- (3) Refactor gemnasium graph builder gitlab-org/gitlab#324617
- (2) DB storage for licenses
- (1) Consistent exit code for analyzers
- (0) DB storage for dependencies