Skip to content

Remove Timex dependency #32

Description

@matthewlehner

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 Timexlib/ical/serialize.ex:3 → Remove
  • Timex.format/2lib/ical/serialize.ex:26,37,48Calendar.strftime/3
  • Timex.to_datetime/1lib/ical/serialize.ex:63NaiveDateTime.from_erl!/1 + DateTime.from_naive!/2
  • Timex.Timezone.Utils.to_olson/1lib/ical/deserialize.ex:424 → looks like there's work on this already started!
  • Timex.parse/2lib/ical/deserialize.ex:466,484,491 → Binary pattern matching
  • Timex.compare/2lib/ical/recurrence.ex:207DateTime.compare/2 / Date.compare/2
  • Timex.shift/2lib/ical/recurrence.ex:281DateTime.shift/2 / Date.shift/2
  • Timex.AmbiguousDateTimelib/ical/recurrence.ex:282 → Remove
  • Timex.weekday/1lib/ical/recurrence.ex:326Date.day_of_week/1

Test and support files

  • Timex.to_datetime({{y,m,d},{h,m,s}})fixtures.ex, event_test.exs, ical_test.exs, deserialize_test.exs~U[...] sigils
  • Timex.to_date({y,m,d})event_test.exs~D[...] sigils
  • Timex.to_datetime/2 (with timezone) — event_test.exsDateTime.shift_zone!/3
  • Timex.Timezone.convert/2ical_test.exs, value_test.exs, deserialize_test.exsDateTime.shift_zone!/3

Doc examples

  • Timex.to_erl/1lib/ical/deserialize.ex:435,441,453
  • Timex.to_date/1lib/ical/recurrence.ex:103,104

Deps

  • Remove {:timex, "~> 3.4"} from mix.exs
  • Remove Timex and transitive deps from mix.lock (mix deps.unlock --unused)
  • Handle Calendar.TimeZoneDatabase config

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions