Creating this issue to track where Timex is used currently and to track removing it. To make these PRs a bit easier to review, I will start opening one for each Timex function call. ## Timex API Usage Inventory The following Timex functions are used across the codebase and need stdlib replacements: ### Source files - [x] `use Timex` — `lib/ical/serialize.ex:3` → Remove - [x] `Timex.format/2` — `lib/ical/serialize.ex:26,37,48` → `Calendar.strftime/3` - [x] `Timex.to_datetime/1` — `lib/ical/serialize.ex:63` → `NaiveDateTime.from_erl!/1` + `DateTime.from_naive!/2` - [x] `Timex.Timezone.Utils.to_olson/1` — `lib/ical/deserialize.ex:424` → looks like there's work on this already started! - [x] `Timex.parse/2` — `lib/ical/deserialize.ex:466,484,491` → Binary pattern matching - [x] `Timex.compare/2` — `lib/ical/recurrence.ex:207` → `DateTime.compare/2` / `Date.compare/2` - [x] `Timex.shift/2` — `lib/ical/recurrence.ex:281` → `DateTime.shift/2` / `Date.shift/2` - [x] `Timex.AmbiguousDateTime` — `lib/ical/recurrence.ex:282` → Remove - [x] `Timex.weekday/1` — `lib/ical/recurrence.ex:326` → `Date.day_of_week/1` ### Test and support files - [x] `Timex.to_datetime({{y,m,d},{h,m,s}})` — `fixtures.ex`, `event_test.exs`, `ical_test.exs`, `deserialize_test.exs` → `~U[...]` sigils - [x] `Timex.to_date({y,m,d})` — `event_test.exs` → `~D[...]` sigils - [x] `Timex.to_datetime/2` (with timezone) — `event_test.exs` → `DateTime.shift_zone!/3` - [x] `Timex.Timezone.convert/2` — `ical_test.exs`, `value_test.exs`, `deserialize_test.exs` → `DateTime.shift_zone!/3` ### Doc examples - [x] `Timex.to_erl/1` — `lib/ical/deserialize.ex:435,441,453` - [x] `Timex.to_date/1` — `lib/ical/recurrence.ex:103,104` ### Deps - [x] Remove `{:timex, "~> 3.4"}` from `mix.exs` - [x] Remove `Timex` and transitive deps from `mix.lock` (`mix deps.unlock --unused`) - [x] Handle `Calendar.TimeZoneDatabase` config
Creating this issue to track where Timex is used currently and to track removing it.
To make these PRs a bit easier to review, I will start opening one for each Timex function call.
Timex API Usage Inventory
The following Timex functions are used across the codebase and need stdlib replacements:
Source files
use Timex—lib/ical/serialize.ex:3→ RemoveTimex.format/2—lib/ical/serialize.ex:26,37,48→Calendar.strftime/3Timex.to_datetime/1—lib/ical/serialize.ex:63→NaiveDateTime.from_erl!/1+DateTime.from_naive!/2Timex.Timezone.Utils.to_olson/1—lib/ical/deserialize.ex:424→ looks like there's work on this already started!Timex.parse/2—lib/ical/deserialize.ex:466,484,491→ Binary pattern matchingTimex.compare/2—lib/ical/recurrence.ex:207→DateTime.compare/2/Date.compare/2Timex.shift/2—lib/ical/recurrence.ex:281→DateTime.shift/2/Date.shift/2Timex.AmbiguousDateTime—lib/ical/recurrence.ex:282→ RemoveTimex.weekday/1—lib/ical/recurrence.ex:326→Date.day_of_week/1Test and support files
Timex.to_datetime({{y,m,d},{h,m,s}})—fixtures.ex,event_test.exs,ical_test.exs,deserialize_test.exs→~U[...]sigilsTimex.to_date({y,m,d})—event_test.exs→~D[...]sigilsTimex.to_datetime/2(with timezone) —event_test.exs→DateTime.shift_zone!/3Timex.Timezone.convert/2—ical_test.exs,value_test.exs,deserialize_test.exs→DateTime.shift_zone!/3Doc examples
Timex.to_erl/1—lib/ical/deserialize.ex:435,441,453Timex.to_date/1—lib/ical/recurrence.ex:103,104Deps
{:timex, "~> 3.4"}frommix.exsTimexand transitive deps frommix.lock(mix deps.unlock --unused)Calendar.TimeZoneDatabaseconfig