Skip to content

Merging with Intervals.jl? #67

Open
@rofinn

Description

@rofinn

Both Intervals.jl and IntervalSets.jl define a very similar basic API (e.g., AbstractInterval, inclusivity, set operations). It'd be nice if that basic API could live in one package while many domain specific operations (e.g., math, statistics, time, plotting) lived in others. I like the shorter names in Intervals.jl, but I don't have a strong opinion about where that hierarchy lives. I'd mostly be interested if folks have a view of where the boundary should sit. The merging plan that first comes to mind looks a little like this:

  1. Extend the Intervals.jl hierarchy to match IntervalSets.jl (defining and subtyping Domain)
  2. Strip most of the functionality from Intervals.jl into separate packages (e.g., AnchoredIntervals.jl, IntervalPlots.jl, TimeIntervals.jl)
  3. Ensure that all existing Intervals.jl set related operations and syntax are covered by IntervalSets.jl (e.g., .., intersect, union)
  4. Update IntervalSets.jl to extend the minimal hierarchy in Intervals.jl, but providing the current set operations.

NOTE: This plan requires more work on the Intervals.jl side, and we wouldn't propose touching IntervalSets.jl till the end, but it'd be good to know if step 4 would be reasonable before working on the other components. Feel free to post alternate plans if you disagree.

In the end, IntervalSets.jl would have one extra dependency on the reduced Intervals.jl package and there might need to be some deprecations/backward compatibility where things don't fully align. The benefit to IntervalSets.jl is that features in Intervals.jl would become PnP and the benefit to Intervals.jl is that we'd get to share the same user- and code-base for feedback and development.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions