/*
 * Copyright (c) 2007-2012, Stephen Colebourne & Michael Nascimento Santos
 *
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  * Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 *  * Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 *  * Neither the name of JSR-310 nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

0.6.4
===============================================================================
- Add OffsetDate.toInstant()
- OffsetDate.isAfter/Before takes into account offset
- OffsetTime.isAfter/isBefore calculation
- OffsetTime.compareTo fixed
- OffsetDateTime.compareTo doesn't handle nanos
- Add OffsetDate.atTime(OffsetTime)
- Ensure date-time plus/minus uses int not long
- Fix Period.of(Duration)
- Add LocalTime/OffsetTime/LocalDateTime/OffsetDateTime/ZonedDateTime.plus/minus(Duration)
- Remove CopticDate/HistoricDate.isLeapDay()
- Add CopticDate.plusWeeks()
- Change factories on I18N dates to take Calendrical, not DateProvider
- Rename ZoneOffsetTransition.getDateTime() to getDateTimeBefore()
- Rename TimeZone to ZoneId (avoids annoying clash with JDK)
- Fix clock hour of day and of am-pm
- Fix/Weaken contract of CalendricalRule comparator
- Implement Instant.parse()
- Add LocalDate MIN_YEAR/MAX_YEAR

0.6.3
===============================================================================
- nanoOfDay rule / epochDays rule
- Use public factories for ZOT and ZOTR rather than protected methods in ZRules
- Make CalendricalRule.compare less lenient
- Add TAIInstant.parse()
- Print/parse two digit years
- Add Period.toEstimatedDuration()
- Rename PeriodFields.normalize() to normalizeTo()
- Add PeriodFields.normalize()
- Add Period.of(Duration)
- Make LocalDate.plus(PeriodProvider)/minus(PeriodProvider) strict
- Remove DatePeriod, adding methods to Period
- Add Period.withDateFieldsOnly()/withTimeFieldsOnly()
- Add Period.ofDateFields()/ofTimeFields()
- Rename Period.ofYearsMonthsDays() to ofDateFields()
- Rename Period.ofHoursMinutesSeconds() to ofTimeFields()
- LocalDateTime/LocalTime/Year/YearMonth.plus(PeriodProvider) have correct algorithm
- ZoneOffset period factory
- ZDT int factories
- YearMonth.with(Year)
- LocalTime plus/minus shouldn't throw ArithmeticException
- Remove InstantProvider from UTC/TAI
- OffsetTime.withOffset/adjustLocalTime method names changed
- Add isLeapYear() to other principal date classes
- Fix bug in Offset* now(Clock)
- Rename nowSystemClock() to now()
- MonthOfYear - start/end of month as DOY
- Add Chronology CalendricalRule
- Change ISO year range to -999,999,999 to 999,999,999
- Add OffsetDateTime.of(DateProvider,OffsetTime)
- Add LocalDate.atTime(OffsetTime)
- Remove toYear() from principal classes

0.6.2
===============================================================================
- PeriodFields.toTotal(Unit)
- PeriodFields.normalize(Unit...)
- Rename/add methods on PeriodUnit
- Add Year/YearMonth/MonthDay.now(Clock)
- Add LocalDate.isLeapYear()
- Rework time-scales
 - less public classes
 - simplified UTC should always have 86400 seconds per day
 - TAI and UTC
  - pluggable leap seconds
- ZoneRulesGroup loads rules, whereas it should just load keys initially
 - Specialised data format for zone-rules
 - SPI and zone providers
- TimeZone special factory to create unavailable instances

0.61
===============================================================================
- getYearMonth(), getMonthDay()
- withXxx() taking Year, MonthOfYear - with(Adjuster)
- zone prev/next transition
- parse API is too complex to parse Date/Time due to merge
- Date/Time parse factories
- DateTimeMatcher -> CalendricalMatcher
- test separable comparators for providers -> CalendricalRule implements Comparator
- isJanuary() ?
- isMonday() ?
- Period rules?
- period units in chronologies?
- Year.of() Duration.of() plus big static class?
- parse optional needs to store and drop back Calendrical properly
- withDayOfYear() tests and everywhere
- toDays() etc, if we keep those classes
- Year.atDay()
- LocalDate.atTime(int...)
- review in line with changes to Duration
- ZonedDateTime plusDurationSeconds() etc
- public access to transitions and transition rules
- OffsetInfo, discontinuity rename to transition
- parse zone

EDR
===============================================================================
- OffsetDate.atTime(int...)
- zone rule where time of day is 24:00
- versions of zone data files
- convert time zone rules to fixed rules when possible
- simpler way to setup pattern - DateTimeFormatters.forPattern()
- Factory now(Clock)
- optimise Clock methods to Local* avoiding Offset* object creation
- better error when zone jar file missing
- setup list of deprecated time zone ids
- ZonedDateTime toEpochSeconds()
- OffsetDateTime.fromEpochSeconds()
- ZonedDateTime.fromEpochSeconds()
- Duration/Instant rename millis() to ofMillis() etc
- Duration/Instant integrate TimeUnit
- Rename factory methods to start with 'of'
- LocalDate.plus(PeriodProvider) needs correct algorithm
- Period.ofXxx factory rename
 