matomo-org / matomo

Empowering People Ethically with the leading open source alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites & apps and visualise this data and extract insights. Privacy is built-in. Liberating Web Analytics. Star us on Github? +1. And we love Pull Requests!
https://matomo.org/
GNU General Public License v3.0
19.75k stars 2.63k forks source link

Audit Date class and re-structure API #13829

Open diosmosis opened 5 years ago

diosmosis commented 5 years ago

The logic in the Date class is strange and somewhat backwards. Multiple methods have documentation that contradict the actual methods, and sometimes the actual logic just doesn't make sense.

For example:

The API should be audited, trimmed and made coherent, but only for Matomo 4 since so much depends on this code.

Things that should be done:

Refs #13799 Refs #13786

diosmosis commented 5 years ago

Should also probably make sure the mysql session uses UTC instead of any other configured timezone.

mattab commented 4 years ago

How much work would this be do you reckon, probably several days? do you know if tackling this debt solve any existing known bug?

diosmosis commented 4 years ago

How much work would this be do you reckon, probably several days?

I don't know really, possibly longer, maybe less. It would just be refactoring Date and getting all tests to pass. Then manual tests to make sure nothing strange happens. This part could take a while.

do you know if tackling this debt solve any existing known bug?

There were some bugs that this caused that were worked around by some special methods. There may be many bugs we don't know about. @tsteur would have a better opinion on the value of this issue.

tsteur commented 4 years ago

@mattab @diosmosis I'm not too much of a help here... It will be eventually needed to be refactored I suppose since some things eg around timezones are not always clear how it works. At the same time it would take long to refactor and not sure it's worth the effort. Also it will likely introduce new regressions since the current implementation is sometimes unclear and therefore hard to ensure the behaviour will be the same afterwards (this should not be an excuse though not to refactor it).

I really have no preference here

diosmosis commented 4 years ago

Actually I think it is fixing a bug, see: https://github.com/matomo-org/matomo/commit/8f4538e8a18393a29daa6de9b6889dc385d04889

It's been a while since I wrote this issue, but I think timezone handling is generally inaccurate in matomo.

mattab commented 4 years ago

Proposal: let's spend 2-3 days max on this issue and see if it's enough to complete most important parts of the refactoring.

tsteur commented 4 years ago

Moving this into 5.0 unfortunately as we're running late on Matomo 4 Milestone.

diosmosis commented 4 years ago