Skip to content
This repository was archived by the owner on May 26, 2026. It is now read-only.
This repository was archived by the owner on May 26, 2026. It is now read-only.

Update to ical4j 4.x #112

Closed
20 of 20 issues completed
Closed

Description

@rfc2822

Why

We need up-to-date libraries that we build upon. For instance ical4j 4.x has bug fixes that we need and up-to-date timezones (outdated timezones create more and more problems, see #113).

What

Updating ical4j 3.x to 4.x is a huge change because a lot of calls change, also semantically.

Main change is that it now uses the Java 8 Time API (also for timezones). See the mapping.

See also:

How not to break everything

According to the "always have a working main branch" principle: All sub-issues should be merged to the ical4j-3to4 branch because they will break compilation and tests. So we can work on that one until it's finished and working, and then merge that one into main (with rebase/merge, not squash).

However PRs must ensure that the tests of their domain succeed again. For instance, if a PR rewrites CalendarUidSplitter, then it must make sure that the tests regarding this class succeed after the PR.

When creating PRs, the "Create a branch" link in the Github issue could be useful. You can select the ical4j-3to4 branch as base branch there:

Image

(For next time: Can we just create a ical4j-3to4/xxx branch manually? I like the slash to group everything around ical4j-3to4. However Github said it's not a valid branch name.).

Important

When creating a PR, make sure that it wants to merge into ical4j-3to4 and not into main!

Image

Further hints

(We can add things here when we discuss how to proceed.)

  • Update helpers "on the go"? Will probably cause merge conflicts, which could be a chance to extract the best of both variants
  • Set up branch protection rules for this sprint?
  • Refactoring during PRs: yes / no / minor?
  • If it turns out that we forgot something (for instance a class/package) in the sub-issues, how/when to add it to the sprint?
  • It could be useful to the split sub-issues again, for instance [ical4j 4.x] Update ICalendarGenerator/ICalendarParser #185 into one sub-issue/PR for the generator (+ tests) plus one sub-issue/PR for the parser (+ tests).

Activity

  1. github-actions commented on Oct 26, 2025

    @github-actions
  2. added
    eventsRegarding events / everything that's stored in Android Calendar Provider
    tasksRegarding tasks / everything that's stored in a task app provider
    on Nov 10, 2025
  3. 15 remaining items

  4. added theissue type on Feb 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

eventsRegarding events / everything that's stored in Android Calendar ProvidertasksRegarding tasks / everything that's stored in a task app provider

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions