adamtornhill/code-maat

Question: any plans to support --temporal-period with values other than "1"?

Closed this issue · 6 comments

Are there any plans to support --temporal-period with values other than 1? I'm analysing temporal coupling across repositories and suspect the temporally-coupled commits may be distributed across multiple days.

Thank you for all your great work in this space!

That's definitely a possible extension. I can take a look at it during next week. Ideally, we'd add a command line argument which lets you modify the temporal period.

@StefanSmith I took a look at this during the weekend, and there was indeed a TODO in the code on this feature. Took the time to implement an arbitrary --temporal-period so that you can calculate coupling over multiple days (rolling).

You find this improvement in the latest release: https://github.com/adamtornhill/code-maat/releases/tag/v1.0.3

Please let me know how this works out for you.

Thank you @adamtornhill ! I'm away this week but will take a look next week. You may want to update the details in the README here: https://github.com/adamtornhill/code-maat#temporal-periods

Finally got round to verifying the change. Thanks @adamtornhill, it works as expected. I've integrated it into my pet project at https://github.com/StefanSmith/your-code-as-a-crime-scene-tools. In reality, I'm finding that multi-day coupling analysis pulls in too many false positives due to the high rate of (unrelated) commits occuring across multiple repositories. I will investigate using commit messages instead to gather commits with common story numbers.

As a follow up to this, does code-maat support coupling analysis using commit message regex to group commits (e.g by story numbers)?

@StefanSmith No, Code Maat doesn't support tracking change coupling via story numbers.

FYI: we implemented that feature in CodeScene: https://codescene.io/docs/guides/technical/change-coupling.html
That support goes deeper as it deduces dependencies from story/issue numbers via either:

  1. smart commit messages
  2. the branch name
  3. a mention of the issue in the PR.