Skip to content

Tobemerged 4.6.0 - #9

Open
bastien-roucaries wants to merge 340 commits into
linagora:masterfrom
bastien-roucaries:tobemerged-4.6.0
Open

Tobemerged 4.6.0#9
bastien-roucaries wants to merge 340 commits into
linagora:masterfrom
bastien-roucaries:tobemerged-4.6.0

Conversation

@bastien-roucaries

Copy link
Copy Markdown

No description provided.

jaircuevajunior and others added 30 commits February 10, 2021 16:12
…especting-until

Make use of until parameter in nextMonthly function
…ith_groups

Fix setting properties with group assignment
tests: migrate from Travis to GitHub-Actions
Coverage in CI and minor edit to README
Fix deprecated usages and return types on PHP 8.1
Changes that should have happened for 4.3.6
changelog and VERSION bump for 4.3.7
phil-davis and others added 24 commits May 31, 2026 22:07
Systems without the tzdata-legacy package, i.e. (Ubuntu 24.04+) reject deprecated names.

Examples: Europe/Kiev, Asia/Calcutta, America/Godthab
This causes FindFromTimezoneMap::find() to throw.
Update all 13 occurrences across windowszones, lotuszones and exchangezones maps to their canonical replacements and wrap DateTimeZone instantiation in try/catch for resilience against future renames.

Comes with unit test
…ames-4.6

[4.6] fix: Update deprecated timezone names
When serializing PERIOD values to JSON (for jCal format), preserve the 'Z'
timezone indicator for UTC datetimes. This ensures FREEBUSY periods maintain
explicit UTC designation, avoiding timezone ambiguity.

Without this change:
  FREEBUSY:20120226T230000Z/20120226T230000Z
  => serializes to: ["2012-02-26T23:00:00", "2012-02-26T23:00:00"]

With this change:
  FREEBUSY:20120226T230000Z/20120226T230000Z
  => serializes to: ["2012-02-26T23:00:00Z", "2012-02-26T23:00:00Z"]

This behavior is consistent with RFC 5545 which requires UTC times to be
designated with the 'Z' suffix.

Related: sabre-io#411
Before this commit processMessageReply did not work for exceptions with
a reccurent id in an other timezone than the dtstart of the master event.
The three tests were failing because DTSTAMP is now generated in the iTip messages but wasn't expected in the test assertions. Added DTSTAMP:**ANY** to the expected outputs to match the actual behavior.

Fixed tests:
- BrokerNewEventTest::testSimpleInviteWithAlarm
- BrokerUpdateEventTest::testSimpleInviteWithAlarm
- BrokerUpdateEventTest::testLocationChange

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Test case for linagora/esn-sabre#50

When DTSTART is in April but RRULE specifies BYMONTH=5 (May) and
BYMONTHDAY=15, the first occurrence should be May 15, not April 15.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
When a YEARLY recurrence rule specifies BYMONTH (and optionally
BYMONTHDAY/BYDAY), and the DTSTART is in a different month than
those specified in BYMONTH, the first occurrence should be the
first valid date according to the rule, not the DTSTART itself.

For example, with:
- DTSTART: April 11, 2030
- RRULE: FREQ=YEARLY;BYMONTH=5;BYMONTHDAY=15

The first occurrence should be May 15, 2030 (not April 11 or April 15).

This fix modifies rewind() to check if the DTSTART is a valid
occurrence according to BYMONTH rules, and if not, advances to
the first valid occurrence.

Fixes: linagora/esn-sabre#50

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
PHP 7.1 tests were failing due to PHP CS-Fixer compatibility issues. Since PHP 7.1 is EOL, removing it from the CI pipeline.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@chibenwa

chibenwa commented Jun 1, 2026

Copy link
Copy Markdown
Member

CF bastien-roucaries#1 attemps to fix failed test

@chibenwa

chibenwa commented Jun 1, 2026

Copy link
Copy Markdown
Member

CF linagora/esn-sabre#371 the LNG test suite passes with this set of changes

@chibenwa

Copy link
Copy Markdown
Member
There were 2 errors:

1) Sabre\VObject\ITip\BrokerProcessMessageTest::testCancelInstanceOfRecurring
The return value of method DateTimeImmutable::setTimezone() should either be used or intentionally ignored by casting it as (void), as DateTimeImmutable::setTimezone() does not modify the object itself

/home/runner/work/sabre-vobject/sabre-vobject/lib/ITip/Broker.php:414
/home/runner/work/sabre-vobject/sabre-vobject/lib/ITip/Broker.php:130
/home/runner/work/sabre-vobject/sabre-vobject/tests/VObject/ITip/BrokerTester.php:80
/home/runner/work/sabre-vobject/sabre-vobject/tests/VObject/ITip/BrokerProcessMessageTest.php:225

2) Sabre\VObject\ITip\BrokerProcessMessageTest::testCancelExistingInstanceOfRecurring
The return value of method DateTimeImmutable::setTimezone() should either be used or intentionally ignored by casting it as (void), as DateTimeImmutable::setTimezone() does not modify the object itself

/home/runner/work/sabre-vobject/sabre-vobject/lib/ITip/Broker.php:414
/home/runner/work/sabre-vobject/sabre-vobject/lib/ITip/Broker.php:130
/home/runner/work/sabre-vobject/sabre-vobject/tests/VObject/ITip/BrokerTester.php:80
/home/runner/work/sabre-vobject/sabre-vobject/tests/VObject/ITip/BrokerProcessMessageTest.php:313

ERRORS!
Tests: 1818, Assertions: 2952, Errors: 2.

@chibenwa

Copy link
Copy Markdown
Member

That's weird because linagora/esn-sabre#371 passed...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.