From 78f169c3cf0658ad6f1a4e03d9310997a3250ce7 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Fri, 17 May 2019 22:09:34 +0100 Subject: [PATCH 01/11] Move project to modules --- build.sbt | 15 +++++++++++---- .../core/src}/main/scala/wen/circe/package.scala | 0 .../core/src}/main/scala/wen/datetime/Date.scala | 0 .../src}/main/scala/wen/datetime/DateTime.scala | 0 .../core/src}/main/scala/wen/datetime/Time.scala | 0 .../main/scala/wen/datetime/ZoneDateTime.scala | 0 .../src}/main/scala/wen/datetime/ZoneTime.scala | 0 .../core/src}/main/scala/wen/implicits.scala | 0 .../main/scala/wen/instances/DayInstances.scala | 0 .../main/scala/wen/instances/EpochInstances.scala | 0 .../main/scala/wen/instances/HourInstances.scala | 0 .../wen/instances/MillisecondInstances.scala | 0 .../scala/wen/instances/MinuteInstances.scala | 0 .../main/scala/wen/instances/MonthInstances.scala | 0 .../scala/wen/instances/SecondInstances.scala | 0 .../scala/wen/instances/WeekDayInstances.scala | 0 .../main/scala/wen/instances/YearInstances.scala | 0 .../wen/instances/datetime/DateInstances.scala | 0 .../instances/datetime/DateTimeInstances.scala | 0 .../wen/instances/datetime/TimeInstances.scala | 0 .../scala/wen/instances/iso/DateInstances.scala | 0 .../wen/instances/iso/DateTimeInstances.scala | 0 .../scala/wen/instances/iso/TimeInstances.scala | 0 .../main/scala/wen/instances/iso/package.scala | 0 .../core/src}/main/scala/wen/refine/package.scala | 0 .../core/src}/main/scala/wen/types/types.scala | 0 .../src}/test/scala/wen/circe/CirceSpec.scala | 0 .../src}/test/scala/wen/datetime/DateSpec.scala | 0 .../test/scala/wen/datetime/DateTimeSpec.scala | 0 .../src}/test/scala/wen/datetime/OffsetSpec.scala | 0 .../src}/test/scala/wen/datetime/TimeSpec.scala | 0 .../scala/wen/datetime/ZoneDateTimeSpec.scala | 0 .../test/scala/wen/datetime/ZoneTimeSpec.scala | 0 .../scala/wen/instances/DayInstancesSpec.scala | 0 .../scala/wen/instances/EpochInstancesSpec.scala | 0 .../scala/wen/instances/HourInstancesSpec.scala | 0 .../wen/instances/MillisecondInstancesSpec.scala | 0 .../scala/wen/instances/MinuteInstancesSpec.scala | 0 .../scala/wen/instances/MonthInstancesSpec.scala | 0 .../scala/wen/instances/SecondInstancesSpec.scala | 0 .../wen/instances/WeekDayInstancesSpec.scala | 0 .../scala/wen/instances/YearInstancesSpec.scala | 0 .../instances/datetime/DateInstancesSpec.scala | 0 .../datetime/DateTimeInstancesSpec.scala | 0 .../instances/datetime/TimeInstancesSpec.scala | 0 .../wen/instances/iso/IsoDateInstancesSpec.scala | 0 .../instances/iso/IsoDateTimeInstancesSpec.scala | 0 .../wen/instances/iso/IsoTimeInstancesSpec.scala | 0 .../src}/test/scala/wen/refine/refineSpec.scala | 0 .../src}/test/scala/wen/test/Arbitraries.scala | 0 .../src}/test/scala/wen/test/Generators.scala | 0 .../core/src}/test/scala/wen/types/DaySpec.scala | 0 .../core/src}/test/scala/wen/types/HourSpec.scala | 0 .../test/scala/wen/types/MillisecondSpec.scala | 0 .../src}/test/scala/wen/types/MinuteSpec.scala | 0 .../src}/test/scala/wen/types/MonthSpec.scala | 0 .../src}/test/scala/wen/types/SecondSpec.scala | 0 .../src}/test/scala/wen/types/WeekDaySpec.scala | 0 .../core/src}/test/scala/wen/types/YearSpec.scala | 0 59 files changed, 11 insertions(+), 4 deletions(-) rename {src => wen/core/src}/main/scala/wen/circe/package.scala (100%) rename {src => wen/core/src}/main/scala/wen/datetime/Date.scala (100%) rename {src => wen/core/src}/main/scala/wen/datetime/DateTime.scala (100%) rename {src => wen/core/src}/main/scala/wen/datetime/Time.scala (100%) rename {src => wen/core/src}/main/scala/wen/datetime/ZoneDateTime.scala (100%) rename {src => wen/core/src}/main/scala/wen/datetime/ZoneTime.scala (100%) rename {src => wen/core/src}/main/scala/wen/implicits.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/DayInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/EpochInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/HourInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/MillisecondInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/MinuteInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/MonthInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/SecondInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/WeekDayInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/YearInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/datetime/DateInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/datetime/DateTimeInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/datetime/TimeInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/iso/DateInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/iso/DateTimeInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/iso/TimeInstances.scala (100%) rename {src => wen/core/src}/main/scala/wen/instances/iso/package.scala (100%) rename {src => wen/core/src}/main/scala/wen/refine/package.scala (100%) rename {src => wen/core/src}/main/scala/wen/types/types.scala (100%) rename {src => wen/core/src}/test/scala/wen/circe/CirceSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/DateSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/DateTimeSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/OffsetSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/TimeSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/ZoneDateTimeSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/datetime/ZoneTimeSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/DayInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/EpochInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/HourInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/MillisecondInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/MinuteInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/MonthInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/SecondInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/WeekDayInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/YearInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/datetime/DateInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/datetime/TimeInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/refine/refineSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/test/Arbitraries.scala (100%) rename {src => wen/core/src}/test/scala/wen/test/Generators.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/DaySpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/HourSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/MillisecondSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/MinuteSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/MonthSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/SecondSpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/WeekDaySpec.scala (100%) rename {src => wen/core/src}/test/scala/wen/types/YearSpec.scala (100%) diff --git a/build.sbt b/build.sbt index c602604..9dd7987 100644 --- a/build.sbt +++ b/build.sbt @@ -5,19 +5,26 @@ ThisBuild / version := "0.1.0-SNAPSHOT" ThisBuild / organization := "dev.mlopes" ThisBuild / organizationName := "mlopes" -lazy val wen = project +lazy val wenRoot = project .in(file(".")) - .settings(moduleName := "wen", name := "Wen") + .aggregate(wen) + .settings(name := "Wen Root") .settings( scalacOptions := appScalacOptions, compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, - libraryDependencies ++= scalaTest, - libraryDependencies ++= wenDependencies, coverageMinimum := 100, coverageFailOnMinimum := true, publishTo := sonatypePublishTo.value ) +lazy val wen = project + .in(file("wen/core")) + .settings(moduleName := "wen", name := "Wen") + .settings( + libraryDependencies ++= scalaTest, + libraryDependencies ++= wenDependencies + ) + lazy val appScalacOptions = Seq( "-deprecation", // Emit warning and location for usages of deprecated APIs. "-encoding", "utf-8", // Specify character encoding used by source files. diff --git a/src/main/scala/wen/circe/package.scala b/wen/core/src/main/scala/wen/circe/package.scala similarity index 100% rename from src/main/scala/wen/circe/package.scala rename to wen/core/src/main/scala/wen/circe/package.scala diff --git a/src/main/scala/wen/datetime/Date.scala b/wen/core/src/main/scala/wen/datetime/Date.scala similarity index 100% rename from src/main/scala/wen/datetime/Date.scala rename to wen/core/src/main/scala/wen/datetime/Date.scala diff --git a/src/main/scala/wen/datetime/DateTime.scala b/wen/core/src/main/scala/wen/datetime/DateTime.scala similarity index 100% rename from src/main/scala/wen/datetime/DateTime.scala rename to wen/core/src/main/scala/wen/datetime/DateTime.scala diff --git a/src/main/scala/wen/datetime/Time.scala b/wen/core/src/main/scala/wen/datetime/Time.scala similarity index 100% rename from src/main/scala/wen/datetime/Time.scala rename to wen/core/src/main/scala/wen/datetime/Time.scala diff --git a/src/main/scala/wen/datetime/ZoneDateTime.scala b/wen/core/src/main/scala/wen/datetime/ZoneDateTime.scala similarity index 100% rename from src/main/scala/wen/datetime/ZoneDateTime.scala rename to wen/core/src/main/scala/wen/datetime/ZoneDateTime.scala diff --git a/src/main/scala/wen/datetime/ZoneTime.scala b/wen/core/src/main/scala/wen/datetime/ZoneTime.scala similarity index 100% rename from src/main/scala/wen/datetime/ZoneTime.scala rename to wen/core/src/main/scala/wen/datetime/ZoneTime.scala diff --git a/src/main/scala/wen/implicits.scala b/wen/core/src/main/scala/wen/implicits.scala similarity index 100% rename from src/main/scala/wen/implicits.scala rename to wen/core/src/main/scala/wen/implicits.scala diff --git a/src/main/scala/wen/instances/DayInstances.scala b/wen/core/src/main/scala/wen/instances/DayInstances.scala similarity index 100% rename from src/main/scala/wen/instances/DayInstances.scala rename to wen/core/src/main/scala/wen/instances/DayInstances.scala diff --git a/src/main/scala/wen/instances/EpochInstances.scala b/wen/core/src/main/scala/wen/instances/EpochInstances.scala similarity index 100% rename from src/main/scala/wen/instances/EpochInstances.scala rename to wen/core/src/main/scala/wen/instances/EpochInstances.scala diff --git a/src/main/scala/wen/instances/HourInstances.scala b/wen/core/src/main/scala/wen/instances/HourInstances.scala similarity index 100% rename from src/main/scala/wen/instances/HourInstances.scala rename to wen/core/src/main/scala/wen/instances/HourInstances.scala diff --git a/src/main/scala/wen/instances/MillisecondInstances.scala b/wen/core/src/main/scala/wen/instances/MillisecondInstances.scala similarity index 100% rename from src/main/scala/wen/instances/MillisecondInstances.scala rename to wen/core/src/main/scala/wen/instances/MillisecondInstances.scala diff --git a/src/main/scala/wen/instances/MinuteInstances.scala b/wen/core/src/main/scala/wen/instances/MinuteInstances.scala similarity index 100% rename from src/main/scala/wen/instances/MinuteInstances.scala rename to wen/core/src/main/scala/wen/instances/MinuteInstances.scala diff --git a/src/main/scala/wen/instances/MonthInstances.scala b/wen/core/src/main/scala/wen/instances/MonthInstances.scala similarity index 100% rename from src/main/scala/wen/instances/MonthInstances.scala rename to wen/core/src/main/scala/wen/instances/MonthInstances.scala diff --git a/src/main/scala/wen/instances/SecondInstances.scala b/wen/core/src/main/scala/wen/instances/SecondInstances.scala similarity index 100% rename from src/main/scala/wen/instances/SecondInstances.scala rename to wen/core/src/main/scala/wen/instances/SecondInstances.scala diff --git a/src/main/scala/wen/instances/WeekDayInstances.scala b/wen/core/src/main/scala/wen/instances/WeekDayInstances.scala similarity index 100% rename from src/main/scala/wen/instances/WeekDayInstances.scala rename to wen/core/src/main/scala/wen/instances/WeekDayInstances.scala diff --git a/src/main/scala/wen/instances/YearInstances.scala b/wen/core/src/main/scala/wen/instances/YearInstances.scala similarity index 100% rename from src/main/scala/wen/instances/YearInstances.scala rename to wen/core/src/main/scala/wen/instances/YearInstances.scala diff --git a/src/main/scala/wen/instances/datetime/DateInstances.scala b/wen/core/src/main/scala/wen/instances/datetime/DateInstances.scala similarity index 100% rename from src/main/scala/wen/instances/datetime/DateInstances.scala rename to wen/core/src/main/scala/wen/instances/datetime/DateInstances.scala diff --git a/src/main/scala/wen/instances/datetime/DateTimeInstances.scala b/wen/core/src/main/scala/wen/instances/datetime/DateTimeInstances.scala similarity index 100% rename from src/main/scala/wen/instances/datetime/DateTimeInstances.scala rename to wen/core/src/main/scala/wen/instances/datetime/DateTimeInstances.scala diff --git a/src/main/scala/wen/instances/datetime/TimeInstances.scala b/wen/core/src/main/scala/wen/instances/datetime/TimeInstances.scala similarity index 100% rename from src/main/scala/wen/instances/datetime/TimeInstances.scala rename to wen/core/src/main/scala/wen/instances/datetime/TimeInstances.scala diff --git a/src/main/scala/wen/instances/iso/DateInstances.scala b/wen/core/src/main/scala/wen/instances/iso/DateInstances.scala similarity index 100% rename from src/main/scala/wen/instances/iso/DateInstances.scala rename to wen/core/src/main/scala/wen/instances/iso/DateInstances.scala diff --git a/src/main/scala/wen/instances/iso/DateTimeInstances.scala b/wen/core/src/main/scala/wen/instances/iso/DateTimeInstances.scala similarity index 100% rename from src/main/scala/wen/instances/iso/DateTimeInstances.scala rename to wen/core/src/main/scala/wen/instances/iso/DateTimeInstances.scala diff --git a/src/main/scala/wen/instances/iso/TimeInstances.scala b/wen/core/src/main/scala/wen/instances/iso/TimeInstances.scala similarity index 100% rename from src/main/scala/wen/instances/iso/TimeInstances.scala rename to wen/core/src/main/scala/wen/instances/iso/TimeInstances.scala diff --git a/src/main/scala/wen/instances/iso/package.scala b/wen/core/src/main/scala/wen/instances/iso/package.scala similarity index 100% rename from src/main/scala/wen/instances/iso/package.scala rename to wen/core/src/main/scala/wen/instances/iso/package.scala diff --git a/src/main/scala/wen/refine/package.scala b/wen/core/src/main/scala/wen/refine/package.scala similarity index 100% rename from src/main/scala/wen/refine/package.scala rename to wen/core/src/main/scala/wen/refine/package.scala diff --git a/src/main/scala/wen/types/types.scala b/wen/core/src/main/scala/wen/types/types.scala similarity index 100% rename from src/main/scala/wen/types/types.scala rename to wen/core/src/main/scala/wen/types/types.scala diff --git a/src/test/scala/wen/circe/CirceSpec.scala b/wen/core/src/test/scala/wen/circe/CirceSpec.scala similarity index 100% rename from src/test/scala/wen/circe/CirceSpec.scala rename to wen/core/src/test/scala/wen/circe/CirceSpec.scala diff --git a/src/test/scala/wen/datetime/DateSpec.scala b/wen/core/src/test/scala/wen/datetime/DateSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/DateSpec.scala rename to wen/core/src/test/scala/wen/datetime/DateSpec.scala diff --git a/src/test/scala/wen/datetime/DateTimeSpec.scala b/wen/core/src/test/scala/wen/datetime/DateTimeSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/DateTimeSpec.scala rename to wen/core/src/test/scala/wen/datetime/DateTimeSpec.scala diff --git a/src/test/scala/wen/datetime/OffsetSpec.scala b/wen/core/src/test/scala/wen/datetime/OffsetSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/OffsetSpec.scala rename to wen/core/src/test/scala/wen/datetime/OffsetSpec.scala diff --git a/src/test/scala/wen/datetime/TimeSpec.scala b/wen/core/src/test/scala/wen/datetime/TimeSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/TimeSpec.scala rename to wen/core/src/test/scala/wen/datetime/TimeSpec.scala diff --git a/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala b/wen/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/ZoneDateTimeSpec.scala rename to wen/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala diff --git a/src/test/scala/wen/datetime/ZoneTimeSpec.scala b/wen/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala similarity index 100% rename from src/test/scala/wen/datetime/ZoneTimeSpec.scala rename to wen/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala diff --git a/src/test/scala/wen/instances/DayInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/DayInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/DayInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/DayInstancesSpec.scala diff --git a/src/test/scala/wen/instances/EpochInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/EpochInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/EpochInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/EpochInstancesSpec.scala diff --git a/src/test/scala/wen/instances/HourInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/HourInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/HourInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/HourInstancesSpec.scala diff --git a/src/test/scala/wen/instances/MillisecondInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/MillisecondInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/MillisecondInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/MillisecondInstancesSpec.scala diff --git a/src/test/scala/wen/instances/MinuteInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/MinuteInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/MinuteInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/MinuteInstancesSpec.scala diff --git a/src/test/scala/wen/instances/MonthInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/MonthInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/MonthInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/MonthInstancesSpec.scala diff --git a/src/test/scala/wen/instances/SecondInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/SecondInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/SecondInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/SecondInstancesSpec.scala diff --git a/src/test/scala/wen/instances/WeekDayInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/WeekDayInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/WeekDayInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/WeekDayInstancesSpec.scala diff --git a/src/test/scala/wen/instances/YearInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/YearInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/YearInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/YearInstancesSpec.scala diff --git a/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/datetime/DateInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala diff --git a/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala diff --git a/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala diff --git a/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala diff --git a/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala diff --git a/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala b/wen/core/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala similarity index 100% rename from src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala rename to wen/core/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala diff --git a/src/test/scala/wen/refine/refineSpec.scala b/wen/core/src/test/scala/wen/refine/refineSpec.scala similarity index 100% rename from src/test/scala/wen/refine/refineSpec.scala rename to wen/core/src/test/scala/wen/refine/refineSpec.scala diff --git a/src/test/scala/wen/test/Arbitraries.scala b/wen/core/src/test/scala/wen/test/Arbitraries.scala similarity index 100% rename from src/test/scala/wen/test/Arbitraries.scala rename to wen/core/src/test/scala/wen/test/Arbitraries.scala diff --git a/src/test/scala/wen/test/Generators.scala b/wen/core/src/test/scala/wen/test/Generators.scala similarity index 100% rename from src/test/scala/wen/test/Generators.scala rename to wen/core/src/test/scala/wen/test/Generators.scala diff --git a/src/test/scala/wen/types/DaySpec.scala b/wen/core/src/test/scala/wen/types/DaySpec.scala similarity index 100% rename from src/test/scala/wen/types/DaySpec.scala rename to wen/core/src/test/scala/wen/types/DaySpec.scala diff --git a/src/test/scala/wen/types/HourSpec.scala b/wen/core/src/test/scala/wen/types/HourSpec.scala similarity index 100% rename from src/test/scala/wen/types/HourSpec.scala rename to wen/core/src/test/scala/wen/types/HourSpec.scala diff --git a/src/test/scala/wen/types/MillisecondSpec.scala b/wen/core/src/test/scala/wen/types/MillisecondSpec.scala similarity index 100% rename from src/test/scala/wen/types/MillisecondSpec.scala rename to wen/core/src/test/scala/wen/types/MillisecondSpec.scala diff --git a/src/test/scala/wen/types/MinuteSpec.scala b/wen/core/src/test/scala/wen/types/MinuteSpec.scala similarity index 100% rename from src/test/scala/wen/types/MinuteSpec.scala rename to wen/core/src/test/scala/wen/types/MinuteSpec.scala diff --git a/src/test/scala/wen/types/MonthSpec.scala b/wen/core/src/test/scala/wen/types/MonthSpec.scala similarity index 100% rename from src/test/scala/wen/types/MonthSpec.scala rename to wen/core/src/test/scala/wen/types/MonthSpec.scala diff --git a/src/test/scala/wen/types/SecondSpec.scala b/wen/core/src/test/scala/wen/types/SecondSpec.scala similarity index 100% rename from src/test/scala/wen/types/SecondSpec.scala rename to wen/core/src/test/scala/wen/types/SecondSpec.scala diff --git a/src/test/scala/wen/types/WeekDaySpec.scala b/wen/core/src/test/scala/wen/types/WeekDaySpec.scala similarity index 100% rename from src/test/scala/wen/types/WeekDaySpec.scala rename to wen/core/src/test/scala/wen/types/WeekDaySpec.scala diff --git a/src/test/scala/wen/types/YearSpec.scala b/wen/core/src/test/scala/wen/types/YearSpec.scala similarity index 100% rename from src/test/scala/wen/types/YearSpec.scala rename to wen/core/src/test/scala/wen/types/YearSpec.scala From 1abfadb5d8aedea98025f893a6acadf4dcaaf520 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Fri, 17 May 2019 23:03:28 +0100 Subject: [PATCH 02/11] Dirtily split project in core, cats, and circe --- build.sbt | 38 ++++- .../cats}/src/main/scala/wen/implicits.scala | 0 .../scala/wen/instances/DayInstances.scala | 0 .../scala/wen/instances/EpochInstances.scala | 0 .../scala/wen/instances/HourInstances.scala | 0 .../wen/instances/MillisecondInstances.scala | 0 .../scala/wen/instances/MinuteInstances.scala | 0 .../scala/wen/instances/MonthInstances.scala | 0 .../scala/wen/instances/SecondInstances.scala | 0 .../wen/instances/WeekDayInstances.scala | 0 .../scala/wen/instances/YearInstances.scala | 0 .../instances/datetime/DateInstances.scala | 0 .../datetime/DateTimeInstances.scala | 0 .../instances/datetime/TimeInstances.scala | 0 .../wen/instances/iso/DateInstances.scala | 0 .../wen/instances/iso/DateTimeInstances.scala | 0 .../wen/instances/iso/TimeInstances.scala | 0 .../scala/wen/instances/iso/package.scala | 0 .../wen/instances/DayInstancesSpec.scala | 0 .../wen/instances/EpochInstancesSpec.scala | 0 .../wen/instances/HourInstancesSpec.scala | 0 .../instances/MillisecondInstancesSpec.scala | 0 .../wen/instances/MinuteInstancesSpec.scala | 0 .../wen/instances/MonthInstancesSpec.scala | 0 .../wen/instances/SecondInstancesSpec.scala | 0 .../wen/instances/WeekDayInstancesSpec.scala | 0 .../wen/instances/YearInstancesSpec.scala | 0 .../datetime/DateInstancesSpec.scala | 0 .../datetime/DateTimeInstancesSpec.scala | 0 .../datetime/TimeInstancesSpec.scala | 0 .../instances/iso/IsoDateInstancesSpec.scala | 0 .../iso/IsoDateTimeInstancesSpec.scala | 0 .../instances/iso/IsoTimeInstancesSpec.scala | 0 .../src/main/scala/wen/circe/package.scala | 0 .../src/test/scala/wen/circe/CirceSpec.scala | 0 .../src/test/scala/wen/test/Arbitraries.scala | 0 .../src/test/scala/wen/test/Generators.scala | 0 .../src/main/scala/wen/datetime/Date.scala | 0 .../main/scala/wen/datetime/DateTime.scala | 0 .../src/main/scala/wen/datetime/Time.scala | 0 .../scala/wen/datetime/ZoneDateTime.scala | 0 .../main/scala/wen/datetime/ZoneTime.scala | 0 .../src/main/scala/wen/refine/package.scala | 0 .../core/src/main/scala/wen/types/types.scala | 0 .../test/scala/wen/datetime/DateSpec.scala | 0 .../scala/wen/datetime/DateTimeSpec.scala | 0 .../test/scala/wen/datetime/OffsetSpec.scala | 0 .../test/scala/wen/datetime/TimeSpec.scala | 0 .../scala/wen/datetime/ZoneDateTimeSpec.scala | 0 .../scala/wen/datetime/ZoneTimeSpec.scala | 0 .../test/scala/wen/refine/refineSpec.scala | 0 .../src/test/scala/wen/test/Arbitraries.scala | 160 ++++++++++++++++++ .../src/test/scala/wen/test/Generators.scala | 80 +++++++++ .../src/test/scala/wen/types/DaySpec.scala | 0 .../src/test/scala/wen/types/HourSpec.scala | 0 .../scala/wen/types/MillisecondSpec.scala | 0 .../src/test/scala/wen/types/MinuteSpec.scala | 0 .../src/test/scala/wen/types/MonthSpec.scala | 0 .../src/test/scala/wen/types/SecondSpec.scala | 0 .../test/scala/wen/types/WeekDaySpec.scala | 0 .../src/test/scala/wen/types/YearSpec.scala | 0 61 files changed, 272 insertions(+), 6 deletions(-) rename {wen/core => modules/cats}/src/main/scala/wen/implicits.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/DayInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/EpochInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/HourInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/MillisecondInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/MinuteInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/MonthInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/SecondInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/WeekDayInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/YearInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/datetime/DateInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/datetime/DateTimeInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/datetime/TimeInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/iso/DateInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/iso/DateTimeInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/iso/TimeInstances.scala (100%) rename {wen/core => modules/cats}/src/main/scala/wen/instances/iso/package.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/DayInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/EpochInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/HourInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/MillisecondInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/MinuteInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/MonthInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/SecondInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/WeekDayInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/YearInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala (100%) rename {wen/core => modules/cats}/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala (100%) rename {wen/core => modules/circe}/src/main/scala/wen/circe/package.scala (100%) rename {wen/core => modules/circe}/src/test/scala/wen/circe/CirceSpec.scala (100%) rename {wen/core => modules/circe}/src/test/scala/wen/test/Arbitraries.scala (100%) rename {wen/core => modules/circe}/src/test/scala/wen/test/Generators.scala (100%) rename {wen => modules}/core/src/main/scala/wen/datetime/Date.scala (100%) rename {wen => modules}/core/src/main/scala/wen/datetime/DateTime.scala (100%) rename {wen => modules}/core/src/main/scala/wen/datetime/Time.scala (100%) rename {wen => modules}/core/src/main/scala/wen/datetime/ZoneDateTime.scala (100%) rename {wen => modules}/core/src/main/scala/wen/datetime/ZoneTime.scala (100%) rename {wen => modules}/core/src/main/scala/wen/refine/package.scala (100%) rename {wen => modules}/core/src/main/scala/wen/types/types.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/DateSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/DateTimeSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/OffsetSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/TimeSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/refine/refineSpec.scala (100%) create mode 100644 modules/core/src/test/scala/wen/test/Arbitraries.scala create mode 100644 modules/core/src/test/scala/wen/test/Generators.scala rename {wen => modules}/core/src/test/scala/wen/types/DaySpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/HourSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/MillisecondSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/MinuteSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/MonthSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/SecondSpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/WeekDaySpec.scala (100%) rename {wen => modules}/core/src/test/scala/wen/types/YearSpec.scala (100%) diff --git a/build.sbt b/build.sbt index 9dd7987..c8d4722 100644 --- a/build.sbt +++ b/build.sbt @@ -5,11 +5,17 @@ ThisBuild / version := "0.1.0-SNAPSHOT" ThisBuild / organization := "dev.mlopes" ThisBuild / organizationName := "mlopes" -lazy val wenRoot = project +lazy val wen = project .in(file(".")) - .aggregate(wen) + .aggregate(core, cats, circe) .settings(name := "Wen Root") + +lazy val core = project + .in(file("modules/core")) + .settings(moduleName := "wen", name := "Wen") .settings( + libraryDependencies ++= scalaTest, + libraryDependencies ++= wenDependencies, scalacOptions := appScalacOptions, compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, coverageMinimum := 100, @@ -17,12 +23,32 @@ lazy val wenRoot = project publishTo := sonatypePublishTo.value ) -lazy val wen = project - .in(file("wen/core")) - .settings(moduleName := "wen", name := "Wen") +lazy val cats = project + .in(file("modules/cats")) + .dependsOn(core) + .settings(moduleName := "wen-cats", name := "Wen Cats") + .settings( + libraryDependencies ++= scalaTest, + libraryDependencies ++= wenDependencies, + scalacOptions := appScalacOptions, + compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, + coverageMinimum := 100, + coverageFailOnMinimum := true, + publishTo := sonatypePublishTo.value + ) + +lazy val circe = project + .in(file("modules/circe")) + .dependsOn(core, cats) + .settings(moduleName := "wen-circe", name := "Wen Circe") .settings( libraryDependencies ++= scalaTest, - libraryDependencies ++= wenDependencies + libraryDependencies ++= wenDependencies, + scalacOptions := appScalacOptions, + compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, + coverageMinimum := 100, + coverageFailOnMinimum := true, + publishTo := sonatypePublishTo.value ) lazy val appScalacOptions = Seq( diff --git a/wen/core/src/main/scala/wen/implicits.scala b/modules/cats/src/main/scala/wen/implicits.scala similarity index 100% rename from wen/core/src/main/scala/wen/implicits.scala rename to modules/cats/src/main/scala/wen/implicits.scala diff --git a/wen/core/src/main/scala/wen/instances/DayInstances.scala b/modules/cats/src/main/scala/wen/instances/DayInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/DayInstances.scala rename to modules/cats/src/main/scala/wen/instances/DayInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/EpochInstances.scala b/modules/cats/src/main/scala/wen/instances/EpochInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/EpochInstances.scala rename to modules/cats/src/main/scala/wen/instances/EpochInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/HourInstances.scala b/modules/cats/src/main/scala/wen/instances/HourInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/HourInstances.scala rename to modules/cats/src/main/scala/wen/instances/HourInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/MillisecondInstances.scala b/modules/cats/src/main/scala/wen/instances/MillisecondInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/MillisecondInstances.scala rename to modules/cats/src/main/scala/wen/instances/MillisecondInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/MinuteInstances.scala b/modules/cats/src/main/scala/wen/instances/MinuteInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/MinuteInstances.scala rename to modules/cats/src/main/scala/wen/instances/MinuteInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/MonthInstances.scala b/modules/cats/src/main/scala/wen/instances/MonthInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/MonthInstances.scala rename to modules/cats/src/main/scala/wen/instances/MonthInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/SecondInstances.scala b/modules/cats/src/main/scala/wen/instances/SecondInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/SecondInstances.scala rename to modules/cats/src/main/scala/wen/instances/SecondInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/WeekDayInstances.scala b/modules/cats/src/main/scala/wen/instances/WeekDayInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/WeekDayInstances.scala rename to modules/cats/src/main/scala/wen/instances/WeekDayInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/YearInstances.scala b/modules/cats/src/main/scala/wen/instances/YearInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/YearInstances.scala rename to modules/cats/src/main/scala/wen/instances/YearInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/datetime/DateInstances.scala b/modules/cats/src/main/scala/wen/instances/datetime/DateInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/datetime/DateInstances.scala rename to modules/cats/src/main/scala/wen/instances/datetime/DateInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/datetime/DateTimeInstances.scala b/modules/cats/src/main/scala/wen/instances/datetime/DateTimeInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/datetime/DateTimeInstances.scala rename to modules/cats/src/main/scala/wen/instances/datetime/DateTimeInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/datetime/TimeInstances.scala b/modules/cats/src/main/scala/wen/instances/datetime/TimeInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/datetime/TimeInstances.scala rename to modules/cats/src/main/scala/wen/instances/datetime/TimeInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/iso/DateInstances.scala b/modules/cats/src/main/scala/wen/instances/iso/DateInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/iso/DateInstances.scala rename to modules/cats/src/main/scala/wen/instances/iso/DateInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/iso/DateTimeInstances.scala b/modules/cats/src/main/scala/wen/instances/iso/DateTimeInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/iso/DateTimeInstances.scala rename to modules/cats/src/main/scala/wen/instances/iso/DateTimeInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/iso/TimeInstances.scala b/modules/cats/src/main/scala/wen/instances/iso/TimeInstances.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/iso/TimeInstances.scala rename to modules/cats/src/main/scala/wen/instances/iso/TimeInstances.scala diff --git a/wen/core/src/main/scala/wen/instances/iso/package.scala b/modules/cats/src/main/scala/wen/instances/iso/package.scala similarity index 100% rename from wen/core/src/main/scala/wen/instances/iso/package.scala rename to modules/cats/src/main/scala/wen/instances/iso/package.scala diff --git a/wen/core/src/test/scala/wen/instances/DayInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/DayInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/DayInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/DayInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/EpochInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/EpochInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/EpochInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/EpochInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/HourInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/HourInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/HourInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/HourInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/MillisecondInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/MillisecondInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/MillisecondInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/MillisecondInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/MinuteInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/MinuteInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/MinuteInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/MinuteInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/MonthInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/MonthInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/MonthInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/MonthInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/SecondInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/SecondInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/SecondInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/SecondInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/WeekDayInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/WeekDayInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/WeekDayInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/WeekDayInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/YearInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/YearInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/YearInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/YearInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/datetime/DateInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/datetime/DateTimeInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/datetime/TimeInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/iso/IsoDateInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/iso/IsoDateTimeInstancesSpec.scala diff --git a/wen/core/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala b/modules/cats/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala rename to modules/cats/src/test/scala/wen/instances/iso/IsoTimeInstancesSpec.scala diff --git a/wen/core/src/main/scala/wen/circe/package.scala b/modules/circe/src/main/scala/wen/circe/package.scala similarity index 100% rename from wen/core/src/main/scala/wen/circe/package.scala rename to modules/circe/src/main/scala/wen/circe/package.scala diff --git a/wen/core/src/test/scala/wen/circe/CirceSpec.scala b/modules/circe/src/test/scala/wen/circe/CirceSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/circe/CirceSpec.scala rename to modules/circe/src/test/scala/wen/circe/CirceSpec.scala diff --git a/wen/core/src/test/scala/wen/test/Arbitraries.scala b/modules/circe/src/test/scala/wen/test/Arbitraries.scala similarity index 100% rename from wen/core/src/test/scala/wen/test/Arbitraries.scala rename to modules/circe/src/test/scala/wen/test/Arbitraries.scala diff --git a/wen/core/src/test/scala/wen/test/Generators.scala b/modules/circe/src/test/scala/wen/test/Generators.scala similarity index 100% rename from wen/core/src/test/scala/wen/test/Generators.scala rename to modules/circe/src/test/scala/wen/test/Generators.scala diff --git a/wen/core/src/main/scala/wen/datetime/Date.scala b/modules/core/src/main/scala/wen/datetime/Date.scala similarity index 100% rename from wen/core/src/main/scala/wen/datetime/Date.scala rename to modules/core/src/main/scala/wen/datetime/Date.scala diff --git a/wen/core/src/main/scala/wen/datetime/DateTime.scala b/modules/core/src/main/scala/wen/datetime/DateTime.scala similarity index 100% rename from wen/core/src/main/scala/wen/datetime/DateTime.scala rename to modules/core/src/main/scala/wen/datetime/DateTime.scala diff --git a/wen/core/src/main/scala/wen/datetime/Time.scala b/modules/core/src/main/scala/wen/datetime/Time.scala similarity index 100% rename from wen/core/src/main/scala/wen/datetime/Time.scala rename to modules/core/src/main/scala/wen/datetime/Time.scala diff --git a/wen/core/src/main/scala/wen/datetime/ZoneDateTime.scala b/modules/core/src/main/scala/wen/datetime/ZoneDateTime.scala similarity index 100% rename from wen/core/src/main/scala/wen/datetime/ZoneDateTime.scala rename to modules/core/src/main/scala/wen/datetime/ZoneDateTime.scala diff --git a/wen/core/src/main/scala/wen/datetime/ZoneTime.scala b/modules/core/src/main/scala/wen/datetime/ZoneTime.scala similarity index 100% rename from wen/core/src/main/scala/wen/datetime/ZoneTime.scala rename to modules/core/src/main/scala/wen/datetime/ZoneTime.scala diff --git a/wen/core/src/main/scala/wen/refine/package.scala b/modules/core/src/main/scala/wen/refine/package.scala similarity index 100% rename from wen/core/src/main/scala/wen/refine/package.scala rename to modules/core/src/main/scala/wen/refine/package.scala diff --git a/wen/core/src/main/scala/wen/types/types.scala b/modules/core/src/main/scala/wen/types/types.scala similarity index 100% rename from wen/core/src/main/scala/wen/types/types.scala rename to modules/core/src/main/scala/wen/types/types.scala diff --git a/wen/core/src/test/scala/wen/datetime/DateSpec.scala b/modules/core/src/test/scala/wen/datetime/DateSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/DateSpec.scala rename to modules/core/src/test/scala/wen/datetime/DateSpec.scala diff --git a/wen/core/src/test/scala/wen/datetime/DateTimeSpec.scala b/modules/core/src/test/scala/wen/datetime/DateTimeSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/DateTimeSpec.scala rename to modules/core/src/test/scala/wen/datetime/DateTimeSpec.scala diff --git a/wen/core/src/test/scala/wen/datetime/OffsetSpec.scala b/modules/core/src/test/scala/wen/datetime/OffsetSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/OffsetSpec.scala rename to modules/core/src/test/scala/wen/datetime/OffsetSpec.scala diff --git a/wen/core/src/test/scala/wen/datetime/TimeSpec.scala b/modules/core/src/test/scala/wen/datetime/TimeSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/TimeSpec.scala rename to modules/core/src/test/scala/wen/datetime/TimeSpec.scala diff --git a/wen/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala b/modules/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala rename to modules/core/src/test/scala/wen/datetime/ZoneDateTimeSpec.scala diff --git a/wen/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala b/modules/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala rename to modules/core/src/test/scala/wen/datetime/ZoneTimeSpec.scala diff --git a/wen/core/src/test/scala/wen/refine/refineSpec.scala b/modules/core/src/test/scala/wen/refine/refineSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/refine/refineSpec.scala rename to modules/core/src/test/scala/wen/refine/refineSpec.scala diff --git a/modules/core/src/test/scala/wen/test/Arbitraries.scala b/modules/core/src/test/scala/wen/test/Arbitraries.scala new file mode 100644 index 0000000..a1caf54 --- /dev/null +++ b/modules/core/src/test/scala/wen/test/Arbitraries.scala @@ -0,0 +1,160 @@ +package wen.test + +import java.time.{Month => _, Year => _, _} + +import org.scalacheck.{Arbitrary, Gen} +import wen.datetime.{Date, DateTime, Offset, Time, ZoneDateTime, ZoneTime} +import wen.types._ +import eu.timepit.refined._ + +object Arbitraries { + implicit val optionYearArb: Arbitrary[Option[Year]] = Arbitrary { + for { + y <- Gen.posNum[Int] + e <- Gen.oneOf(BC, AD) + } yield Year.fromIntWithEpoch(y, e) + } + + implicit val optionDayArb: Arbitrary[Option[Day]] = Arbitrary { + Gen.choose(Day.min, Day.max).map(Day.fromInt(_)) + } + + implicit val dayArb: Arbitrary[Day] = Arbitrary { + optionDayArb.arbitrary.map(_.get) + } + + implicit val monthArb: Arbitrary[Month] = Arbitrary { + Gen.oneOf(January, February, March, April, May, June, July, August, September, October, November, December) + } + + implicit val yearArb: Arbitrary[Year] = Arbitrary { + for { + y <- Gen.posNum[Int] + e <- Gen.oneOf[Epoch](BC, AD) + } yield Year(refineV.unsafeFrom(y), e) + } + + implicit val weekDayArb: Arbitrary[WeekDay] = Arbitrary { + Gen.oneOf(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) + } + + implicit val optionHourArb: Arbitrary[Option[Hour]] = Arbitrary { + Gen.choose(Hour.min, Hour.max).map(Hour.fromInt(_)) + } + + implicit val hourArb: Arbitrary[Hour] = Arbitrary { + optionHourArb.arbitrary.map(_.get) + } + + implicit val optionMinuteArb: Arbitrary[Option[Minute]] = Arbitrary { + Gen.choose(Minute.min, Minute.max).map(Minute.fromInt(_)) + } + + implicit val minuteArb: Arbitrary[Minute] = Arbitrary { + optionMinuteArb.arbitrary.map(_.get) + } + + implicit val optionSecondArb: Arbitrary[Option[Second]] = Arbitrary { + Gen.choose(Second.min, Second.max).map(Second.fromInt(_)) + } + + implicit val secondArb: Arbitrary[Second] = Arbitrary { + optionSecondArb.arbitrary.map(_.get) + } + + implicit val optionMillisecondArb: Arbitrary[Option[Millisecond]] = Arbitrary { + Gen.choose(Millisecond.min, Millisecond.max).map(Millisecond.fromInt(_)) + } + + implicit val millisecondArb: Arbitrary[Millisecond] = Arbitrary { + optionMillisecondArb.arbitrary.map(_.get) + } + + implicit val epochArb: Arbitrary[Epoch] = Arbitrary { + Gen.oneOf(BC, AD) + } + + implicit val timeArb: Arbitrary[Time] = Arbitrary { + for { + h <- hourArb.arbitrary + m <- minuteArb.arbitrary + s <- secondArb.arbitrary + ms <- millisecondArb.arbitrary + } yield Time(h, m, s, ms) + } + + implicit val localTimeArb: Arbitrary[LocalTime] = Arbitrary { + val rangeStart = LocalTime.MIN.toNanoOfDay + val rangeEnd = LocalTime.MAX.toNanoOfDay + Gen.choose(rangeStart, rangeEnd).map(i => LocalTime.ofNanoOfDay(i)) + } + + implicit val dateArb: Arbitrary[Date] = Arbitrary { + for { + d <- localDateArb.arbitrary + } yield Date(d) + } + + implicit val dateTimeArb: Arbitrary[DateTime] = Arbitrary { + for { + d <- dateArb.arbitrary + t <- timeArb.arbitrary + } yield DateTime(d, t) + } + + implicit val zoneTimeArb: Arbitrary[ZoneTime] = Arbitrary { + for { + t <- timeArb.arbitrary + o <- offsetArb.arbitrary + } yield ZoneTime(t, o) + + } + + implicit val zoneDateTimeArb: Arbitrary[ZoneDateTime] = Arbitrary { + for { + odt <- offsetDateTimeArb.arbitrary + } yield ZoneDateTime(odt) + } + + implicit val offsetArb: Arbitrary[Offset] = Arbitrary { + for { + t <- Gen.oneOf(Offset.UTCMinus, Offset.UTCPlus) + h <- Gen.choose(0, 17).map(Hour.fromInt(_)) + m <- minuteArb.arbitrary + } yield Offset(t, h.get, m) + } + + implicit val localDateArb: Arbitrary[LocalDate] = Arbitrary { + val rangeStart = LocalDate.MIN.toEpochDay + val rangeEnd = LocalDate.MAX.toEpochDay + Gen.choose(rangeStart, rangeEnd).map(i => LocalDate.ofEpochDay(i)) + } + + implicit val localDateTimeArb: Arbitrary[LocalDateTime] = Arbitrary { + val rangeStart = LocalDateTime.MIN.toEpochSecond(ZoneOffset.UTC) + val rangeEnd = LocalDateTime.MAX.toEpochSecond(ZoneOffset.UTC) + Gen.choose(rangeStart, rangeEnd).map(i => LocalDateTime.ofEpochSecond(i, 0, ZoneOffset.UTC)) + } + + implicit val offsetTimeArb: Arbitrary[OffsetTime] = Arbitrary { + val rangeStart = OffsetTime.MIN.toLocalTime.toNanoOfDay + val rangeEnd = OffsetTime.MAX.toLocalTime.toNanoOfDay + Gen.choose(rangeStart, rangeEnd).map(i => OffsetTime.of(LocalTime.ofNanoOfDay(i), ZoneOffset.UTC)) + } + + implicit val zoneOffsetArb: Arbitrary[ZoneOffset] = Arbitrary { + val rangeStart = ZoneOffset.MIN.getTotalSeconds + val rangeEnd = ZoneOffset.MAX.getTotalSeconds + Gen.choose(rangeStart, rangeEnd).map(i => ZoneOffset.ofTotalSeconds(i)) + } + + implicit val instantArb: Arbitrary[Instant] = Arbitrary { + Gen.choose(Long.MinValue, Long.MaxValue).map(i => Instant.ofEpochMilli(i)) + } + + implicit val offsetDateTimeArb: Arbitrary[OffsetDateTime] = Arbitrary { + val rangeStart = OffsetDateTime.MIN.toEpochSecond + val rangeEnd = OffsetDateTime.MAX.toEpochSecond + Gen.choose(rangeStart, rangeEnd).map(i => OffsetDateTime.ofInstant(Instant.ofEpochSecond(i), ZoneOffset.UTC)) + } +} diff --git a/modules/core/src/test/scala/wen/test/Generators.scala b/modules/core/src/test/scala/wen/test/Generators.scala new file mode 100644 index 0000000..c9036e7 --- /dev/null +++ b/modules/core/src/test/scala/wen/test/Generators.scala @@ -0,0 +1,80 @@ +package wen.test + +import org.scalacheck.{Arbitrary, Gen} +import wen.types._ +import eu.timepit.refined.refineV +import wen.refine.NumericYearConstraint + +object Generators { + lazy val negativeLeapYears: List[Int] = (-2 to -100000 by -2).toList.filter(x => (x % 4 == 0 && x % 100 != 0) || x % 400 == 0) + + val failedYearGen: Gen[Option[Year]] = + for { + y <- Gen.negNum[Int] + e <- Gen.oneOf(BC, AD) + } yield Year.fromIntWithEpoch(y, e) + + val failedDayGen: Gen[Option[Day]] = + (Arbitrary.arbitrary[Int] suchThat (x => x < Day.min || x > Day.max)).map(Day.fromInt(_)) + + val failedHourGen: Gen[Option[Hour]] = + (Arbitrary.arbitrary[Int] suchThat (x => x < Hour.min || x > Hour.max)).map(Hour.fromInt(_)) + + val failedMinuteGen: Gen[Option[Minute]] = + (Arbitrary.arbitrary[Int] suchThat (x => x < Minute.min || x > Minute.max)).map(Minute.fromInt(_)) + + val failedSecondGen: Gen[Option[Second]] = + (Arbitrary.arbitrary[Int] suchThat (x => x < Second.min || x > Second.max)).map(Second.fromInt(_)) + + val failedMillisecondGen: Gen[Option[Millisecond]] = + (Arbitrary.arbitrary[Int] suchThat (x => x < Millisecond.min || x > Millisecond.max)).map(Millisecond.fromInt(_)) + + val yearAsIntGen: Gen[Int] = + Gen.posNum[Int] + + val invalidYearAsIntGen: Gen[Int] = + Gen.negNum[Int] + + val negativeLeapYearAsIntGen: Gen[Int] = + Gen.oneOf(negativeLeapYears) + + val monthAsIntGen: Gen[Int] = + Gen.choose(January.asInt, December.asInt) + + val invalidMonthAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < January.asInt || x > December.asInt) + + val dayAsIntGen: Gen[Int] = + Gen.choose(Day.min, Day.max) + + val invalidDayAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < Day.min || x > Day.max) + + val hourAsIntGen: Gen[Int] = + Gen.choose(Hour.min, Hour.max) + + val invalidHourAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < Hour.min || x > Hour.max) + + val minuteAsIntGen: Gen[Int] = + Gen.choose(Minute.min, Minute.max) + + val invalidMinuteAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < Minute.min || x > Minute.max) + + val secondAsIntGen: Gen[Int] = + Gen.choose(Second.min, Second.max) + + val invalidSecondAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < Second.min || x > Second.max) + + val millisecondAsIntGen: Gen[Int] = + Gen.choose(Millisecond.min, Millisecond.max) + + val invalidMillisecondAsIntGen: Gen[Int] = + Arbitrary.arbitrary[Int] suchThat (x => x < Millisecond.min || x > Millisecond.max) + + val yearWithDefaultEpochGen: Gen[Year] = + Gen.posNum[Int].map(i => Year(refineV[NumericYearConstraint].unsafeFrom(i))) + +} diff --git a/wen/core/src/test/scala/wen/types/DaySpec.scala b/modules/core/src/test/scala/wen/types/DaySpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/DaySpec.scala rename to modules/core/src/test/scala/wen/types/DaySpec.scala diff --git a/wen/core/src/test/scala/wen/types/HourSpec.scala b/modules/core/src/test/scala/wen/types/HourSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/HourSpec.scala rename to modules/core/src/test/scala/wen/types/HourSpec.scala diff --git a/wen/core/src/test/scala/wen/types/MillisecondSpec.scala b/modules/core/src/test/scala/wen/types/MillisecondSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/MillisecondSpec.scala rename to modules/core/src/test/scala/wen/types/MillisecondSpec.scala diff --git a/wen/core/src/test/scala/wen/types/MinuteSpec.scala b/modules/core/src/test/scala/wen/types/MinuteSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/MinuteSpec.scala rename to modules/core/src/test/scala/wen/types/MinuteSpec.scala diff --git a/wen/core/src/test/scala/wen/types/MonthSpec.scala b/modules/core/src/test/scala/wen/types/MonthSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/MonthSpec.scala rename to modules/core/src/test/scala/wen/types/MonthSpec.scala diff --git a/wen/core/src/test/scala/wen/types/SecondSpec.scala b/modules/core/src/test/scala/wen/types/SecondSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/SecondSpec.scala rename to modules/core/src/test/scala/wen/types/SecondSpec.scala diff --git a/wen/core/src/test/scala/wen/types/WeekDaySpec.scala b/modules/core/src/test/scala/wen/types/WeekDaySpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/WeekDaySpec.scala rename to modules/core/src/test/scala/wen/types/WeekDaySpec.scala diff --git a/wen/core/src/test/scala/wen/types/YearSpec.scala b/modules/core/src/test/scala/wen/types/YearSpec.scala similarity index 100% rename from wen/core/src/test/scala/wen/types/YearSpec.scala rename to modules/core/src/test/scala/wen/types/YearSpec.scala From f863af73b68a532bc60568e52600582c47e769e6 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 08:12:27 +0100 Subject: [PATCH 03/11] Aggregate coverage --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e793c6e..555dba3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,4 +2,4 @@ language: scala scala: - 2.12.8 -script: "sbt clean coverage test coverageReport coveralls" +script: "sbt clean coverage test coverageReport && sbt coverageAggregate && sbt coveralls" From 941db4ef2ca28d41fe792b47a8bf5d5e0225fe7a Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 08:51:46 +0100 Subject: [PATCH 04/11] Organise and clean-up dependencies --- build.sbt | 12 ++++++------ project/Dependencies.scala | 34 ++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/build.sbt b/build.sbt index c8d4722..c6c3fb8 100644 --- a/build.sbt +++ b/build.sbt @@ -14,8 +14,8 @@ lazy val core = project .in(file("modules/core")) .settings(moduleName := "wen", name := "Wen") .settings( - libraryDependencies ++= scalaTest, - libraryDependencies ++= wenDependencies, + libraryDependencies ++= refinedDependencies, + libraryDependencies ++= testDependencies ++ catsDependencies.map(_ % Test), scalacOptions := appScalacOptions, compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, coverageMinimum := 100, @@ -28,8 +28,8 @@ lazy val cats = project .dependsOn(core) .settings(moduleName := "wen-cats", name := "Wen Cats") .settings( - libraryDependencies ++= scalaTest, - libraryDependencies ++= wenDependencies, + libraryDependencies ++= catsDependencies, + libraryDependencies ++= testDependencies, scalacOptions := appScalacOptions, compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, coverageMinimum := 100, @@ -42,8 +42,8 @@ lazy val circe = project .dependsOn(core, cats) .settings(moduleName := "wen-circe", name := "Wen Circe") .settings( - libraryDependencies ++= scalaTest, - libraryDependencies ++= wenDependencies, + libraryDependencies ++= circeDependencies, + libraryDependencies ++= testDependencies ++ circeExtraDependencies.map(_ % Test), scalacOptions := appScalacOptions, compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, coverageMinimum := 100, diff --git a/project/Dependencies.scala b/project/Dependencies.scala index a7d067d..729585a 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -9,22 +9,28 @@ object Dependencies { val circeVersion = "0.11.1" - lazy val scalaTest = Seq( - "org.scalatest" %% "scalatest" % scalaTestVersion % Test - ,"org.scalactic" %% "scalactic" % scalaTestVersion % Test - ,"org.scalacheck" %% "scalacheck" % scalaCheckVersion % Test - ,"eu.timepit" %% "refined-scalacheck" % refinedVersion % Test - ,"eu.timepit" %% "refined" % refinedVersion - ,"org.typelevel" %% "cats-core" % catsVersion - ,"io.circe" %% "circe-core" % circeVersion - ,"io.circe" %% "circe-literal" % circeVersion - ,"io.circe" %% "circe-generic" % circeVersion - ,"org.typelevel" %% "jawn-parser" % "0.14.2" + lazy val testDependencies = Seq( + "org.scalatest" %% "scalatest" % scalaTestVersion + ,"org.scalactic" %% "scalactic" % scalaTestVersion + ,"org.scalacheck" %% "scalacheck" % scalaCheckVersion + ,"eu.timepit" %% "refined-scalacheck" % refinedVersion + ).map(_ % Test) + + lazy val catsDependencies = Seq( + "org.typelevel" %% "cats-core" % catsVersion ) - lazy val wenDependencies = Seq( + lazy val refinedDependencies = Seq( "eu.timepit" %% "refined" % refinedVersion - ,"org.typelevel" %% "cats-core" % catsVersion - ,"io.circe" %% "circe-core" % circeVersion % Optional + ) + + lazy val circeDependencies = Seq( + "io.circe" %% "circe-core" % circeVersion % Optional + ) + + lazy val circeExtraDependencies = Seq ( + "io.circe" %% "circe-literal" % circeVersion + ,"io.circe" %% "circe-generic" % circeVersion + ,"org.typelevel" %% "jawn-parser" % "0.14.2" ) } From abb7d2e17a87e56d223aca8a0733e1ec9a29cbd8 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 09:12:22 +0100 Subject: [PATCH 05/11] Move shared test Arbitraries and Generators to core only --- build.sbt | 2 +- .../src/test/scala/wen/test/Arbitraries.scala | 160 ------------------ .../src/test/scala/wen/test/Generators.scala | 80 --------- 3 files changed, 1 insertion(+), 241 deletions(-) delete mode 100644 modules/circe/src/test/scala/wen/test/Arbitraries.scala delete mode 100644 modules/circe/src/test/scala/wen/test/Generators.scala diff --git a/build.sbt b/build.sbt index c6c3fb8..d2ca6a0 100644 --- a/build.sbt +++ b/build.sbt @@ -39,7 +39,7 @@ lazy val cats = project lazy val circe = project .in(file("modules/circe")) - .dependsOn(core, cats) + .dependsOn(core % "compile->compile;test->test", cats) .settings(moduleName := "wen-circe", name := "Wen Circe") .settings( libraryDependencies ++= circeDependencies, diff --git a/modules/circe/src/test/scala/wen/test/Arbitraries.scala b/modules/circe/src/test/scala/wen/test/Arbitraries.scala deleted file mode 100644 index a1caf54..0000000 --- a/modules/circe/src/test/scala/wen/test/Arbitraries.scala +++ /dev/null @@ -1,160 +0,0 @@ -package wen.test - -import java.time.{Month => _, Year => _, _} - -import org.scalacheck.{Arbitrary, Gen} -import wen.datetime.{Date, DateTime, Offset, Time, ZoneDateTime, ZoneTime} -import wen.types._ -import eu.timepit.refined._ - -object Arbitraries { - implicit val optionYearArb: Arbitrary[Option[Year]] = Arbitrary { - for { - y <- Gen.posNum[Int] - e <- Gen.oneOf(BC, AD) - } yield Year.fromIntWithEpoch(y, e) - } - - implicit val optionDayArb: Arbitrary[Option[Day]] = Arbitrary { - Gen.choose(Day.min, Day.max).map(Day.fromInt(_)) - } - - implicit val dayArb: Arbitrary[Day] = Arbitrary { - optionDayArb.arbitrary.map(_.get) - } - - implicit val monthArb: Arbitrary[Month] = Arbitrary { - Gen.oneOf(January, February, March, April, May, June, July, August, September, October, November, December) - } - - implicit val yearArb: Arbitrary[Year] = Arbitrary { - for { - y <- Gen.posNum[Int] - e <- Gen.oneOf[Epoch](BC, AD) - } yield Year(refineV.unsafeFrom(y), e) - } - - implicit val weekDayArb: Arbitrary[WeekDay] = Arbitrary { - Gen.oneOf(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) - } - - implicit val optionHourArb: Arbitrary[Option[Hour]] = Arbitrary { - Gen.choose(Hour.min, Hour.max).map(Hour.fromInt(_)) - } - - implicit val hourArb: Arbitrary[Hour] = Arbitrary { - optionHourArb.arbitrary.map(_.get) - } - - implicit val optionMinuteArb: Arbitrary[Option[Minute]] = Arbitrary { - Gen.choose(Minute.min, Minute.max).map(Minute.fromInt(_)) - } - - implicit val minuteArb: Arbitrary[Minute] = Arbitrary { - optionMinuteArb.arbitrary.map(_.get) - } - - implicit val optionSecondArb: Arbitrary[Option[Second]] = Arbitrary { - Gen.choose(Second.min, Second.max).map(Second.fromInt(_)) - } - - implicit val secondArb: Arbitrary[Second] = Arbitrary { - optionSecondArb.arbitrary.map(_.get) - } - - implicit val optionMillisecondArb: Arbitrary[Option[Millisecond]] = Arbitrary { - Gen.choose(Millisecond.min, Millisecond.max).map(Millisecond.fromInt(_)) - } - - implicit val millisecondArb: Arbitrary[Millisecond] = Arbitrary { - optionMillisecondArb.arbitrary.map(_.get) - } - - implicit val epochArb: Arbitrary[Epoch] = Arbitrary { - Gen.oneOf(BC, AD) - } - - implicit val timeArb: Arbitrary[Time] = Arbitrary { - for { - h <- hourArb.arbitrary - m <- minuteArb.arbitrary - s <- secondArb.arbitrary - ms <- millisecondArb.arbitrary - } yield Time(h, m, s, ms) - } - - implicit val localTimeArb: Arbitrary[LocalTime] = Arbitrary { - val rangeStart = LocalTime.MIN.toNanoOfDay - val rangeEnd = LocalTime.MAX.toNanoOfDay - Gen.choose(rangeStart, rangeEnd).map(i => LocalTime.ofNanoOfDay(i)) - } - - implicit val dateArb: Arbitrary[Date] = Arbitrary { - for { - d <- localDateArb.arbitrary - } yield Date(d) - } - - implicit val dateTimeArb: Arbitrary[DateTime] = Arbitrary { - for { - d <- dateArb.arbitrary - t <- timeArb.arbitrary - } yield DateTime(d, t) - } - - implicit val zoneTimeArb: Arbitrary[ZoneTime] = Arbitrary { - for { - t <- timeArb.arbitrary - o <- offsetArb.arbitrary - } yield ZoneTime(t, o) - - } - - implicit val zoneDateTimeArb: Arbitrary[ZoneDateTime] = Arbitrary { - for { - odt <- offsetDateTimeArb.arbitrary - } yield ZoneDateTime(odt) - } - - implicit val offsetArb: Arbitrary[Offset] = Arbitrary { - for { - t <- Gen.oneOf(Offset.UTCMinus, Offset.UTCPlus) - h <- Gen.choose(0, 17).map(Hour.fromInt(_)) - m <- minuteArb.arbitrary - } yield Offset(t, h.get, m) - } - - implicit val localDateArb: Arbitrary[LocalDate] = Arbitrary { - val rangeStart = LocalDate.MIN.toEpochDay - val rangeEnd = LocalDate.MAX.toEpochDay - Gen.choose(rangeStart, rangeEnd).map(i => LocalDate.ofEpochDay(i)) - } - - implicit val localDateTimeArb: Arbitrary[LocalDateTime] = Arbitrary { - val rangeStart = LocalDateTime.MIN.toEpochSecond(ZoneOffset.UTC) - val rangeEnd = LocalDateTime.MAX.toEpochSecond(ZoneOffset.UTC) - Gen.choose(rangeStart, rangeEnd).map(i => LocalDateTime.ofEpochSecond(i, 0, ZoneOffset.UTC)) - } - - implicit val offsetTimeArb: Arbitrary[OffsetTime] = Arbitrary { - val rangeStart = OffsetTime.MIN.toLocalTime.toNanoOfDay - val rangeEnd = OffsetTime.MAX.toLocalTime.toNanoOfDay - Gen.choose(rangeStart, rangeEnd).map(i => OffsetTime.of(LocalTime.ofNanoOfDay(i), ZoneOffset.UTC)) - } - - implicit val zoneOffsetArb: Arbitrary[ZoneOffset] = Arbitrary { - val rangeStart = ZoneOffset.MIN.getTotalSeconds - val rangeEnd = ZoneOffset.MAX.getTotalSeconds - Gen.choose(rangeStart, rangeEnd).map(i => ZoneOffset.ofTotalSeconds(i)) - } - - implicit val instantArb: Arbitrary[Instant] = Arbitrary { - Gen.choose(Long.MinValue, Long.MaxValue).map(i => Instant.ofEpochMilli(i)) - } - - implicit val offsetDateTimeArb: Arbitrary[OffsetDateTime] = Arbitrary { - val rangeStart = OffsetDateTime.MIN.toEpochSecond - val rangeEnd = OffsetDateTime.MAX.toEpochSecond - Gen.choose(rangeStart, rangeEnd).map(i => OffsetDateTime.ofInstant(Instant.ofEpochSecond(i), ZoneOffset.UTC)) - } -} diff --git a/modules/circe/src/test/scala/wen/test/Generators.scala b/modules/circe/src/test/scala/wen/test/Generators.scala deleted file mode 100644 index c9036e7..0000000 --- a/modules/circe/src/test/scala/wen/test/Generators.scala +++ /dev/null @@ -1,80 +0,0 @@ -package wen.test - -import org.scalacheck.{Arbitrary, Gen} -import wen.types._ -import eu.timepit.refined.refineV -import wen.refine.NumericYearConstraint - -object Generators { - lazy val negativeLeapYears: List[Int] = (-2 to -100000 by -2).toList.filter(x => (x % 4 == 0 && x % 100 != 0) || x % 400 == 0) - - val failedYearGen: Gen[Option[Year]] = - for { - y <- Gen.negNum[Int] - e <- Gen.oneOf(BC, AD) - } yield Year.fromIntWithEpoch(y, e) - - val failedDayGen: Gen[Option[Day]] = - (Arbitrary.arbitrary[Int] suchThat (x => x < Day.min || x > Day.max)).map(Day.fromInt(_)) - - val failedHourGen: Gen[Option[Hour]] = - (Arbitrary.arbitrary[Int] suchThat (x => x < Hour.min || x > Hour.max)).map(Hour.fromInt(_)) - - val failedMinuteGen: Gen[Option[Minute]] = - (Arbitrary.arbitrary[Int] suchThat (x => x < Minute.min || x > Minute.max)).map(Minute.fromInt(_)) - - val failedSecondGen: Gen[Option[Second]] = - (Arbitrary.arbitrary[Int] suchThat (x => x < Second.min || x > Second.max)).map(Second.fromInt(_)) - - val failedMillisecondGen: Gen[Option[Millisecond]] = - (Arbitrary.arbitrary[Int] suchThat (x => x < Millisecond.min || x > Millisecond.max)).map(Millisecond.fromInt(_)) - - val yearAsIntGen: Gen[Int] = - Gen.posNum[Int] - - val invalidYearAsIntGen: Gen[Int] = - Gen.negNum[Int] - - val negativeLeapYearAsIntGen: Gen[Int] = - Gen.oneOf(negativeLeapYears) - - val monthAsIntGen: Gen[Int] = - Gen.choose(January.asInt, December.asInt) - - val invalidMonthAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < January.asInt || x > December.asInt) - - val dayAsIntGen: Gen[Int] = - Gen.choose(Day.min, Day.max) - - val invalidDayAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < Day.min || x > Day.max) - - val hourAsIntGen: Gen[Int] = - Gen.choose(Hour.min, Hour.max) - - val invalidHourAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < Hour.min || x > Hour.max) - - val minuteAsIntGen: Gen[Int] = - Gen.choose(Minute.min, Minute.max) - - val invalidMinuteAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < Minute.min || x > Minute.max) - - val secondAsIntGen: Gen[Int] = - Gen.choose(Second.min, Second.max) - - val invalidSecondAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < Second.min || x > Second.max) - - val millisecondAsIntGen: Gen[Int] = - Gen.choose(Millisecond.min, Millisecond.max) - - val invalidMillisecondAsIntGen: Gen[Int] = - Arbitrary.arbitrary[Int] suchThat (x => x < Millisecond.min || x > Millisecond.max) - - val yearWithDefaultEpochGen: Gen[Year] = - Gen.posNum[Int].map(i => Year(refineV[NumericYearConstraint].unsafeFrom(i))) - -} From 642e1cd9b39c67d39f7c2d31e8692460c9026480 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 09:20:07 +0100 Subject: [PATCH 06/11] Move shared configurations to its own Seq --- build.sbt | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/build.sbt b/build.sbt index d2ca6a0..6268f1f 100644 --- a/build.sbt +++ b/build.sbt @@ -1,7 +1,6 @@ import Dependencies._ ThisBuild / scalaVersion := "2.12.8" -ThisBuild / version := "0.1.0-SNAPSHOT" ThisBuild / organization := "dev.mlopes" ThisBuild / organizationName := "mlopes" @@ -16,11 +15,7 @@ lazy val core = project .settings( libraryDependencies ++= refinedDependencies, libraryDependencies ++= testDependencies ++ catsDependencies.map(_ % Test), - scalacOptions := appScalacOptions, - compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, - coverageMinimum := 100, - coverageFailOnMinimum := true, - publishTo := sonatypePublishTo.value + defaultConfig ) lazy val cats = project @@ -30,11 +25,7 @@ lazy val cats = project .settings( libraryDependencies ++= catsDependencies, libraryDependencies ++= testDependencies, - scalacOptions := appScalacOptions, - compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, - coverageMinimum := 100, - coverageFailOnMinimum := true, - publishTo := sonatypePublishTo.value + defaultConfig ) lazy val circe = project @@ -44,13 +35,17 @@ lazy val circe = project .settings( libraryDependencies ++= circeDependencies, libraryDependencies ++= testDependencies ++ circeExtraDependencies.map(_ % Test), - scalacOptions := appScalacOptions, - compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, - coverageMinimum := 100, - coverageFailOnMinimum := true, - publishTo := sonatypePublishTo.value + defaultConfig ) +lazy val defaultConfig = Seq( + scalacOptions := appScalacOptions, + compile in Compile := (compile in Compile).dependsOn(dependencyUpdates).value, + coverageMinimum := 100, + coverageFailOnMinimum := true, + publishTo := sonatypePublishTo.value +) + lazy val appScalacOptions = Seq( "-deprecation", // Emit warning and location for usages of deprecated APIs. "-encoding", "utf-8", // Specify character encoding used by source files. From 6385d1d99feffa037dc7ed694f5be7b935adadce Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 19:37:13 +0100 Subject: [PATCH 07/11] Setting version to 1.0.0-M1 --- version.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.sbt b/version.sbt index 972f262..7064862 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "0.9.1-SNAPSHOT" +version in ThisBuild := "1.0.0-M1" From 0f48c646f5402014c0bc5af515d9ea8e812a575b Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 19:39:09 +0100 Subject: [PATCH 08/11] Setting version to 1.0.0-SNAPSHOT, make description per project and don't release root --- README.md | 2 +- build.sbt | 10 +++++++--- notes/1.0.0-M1.markdown | 5 +++++ publish.sbt | 1 - version.sbt | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 notes/1.0.0-M1.markdown diff --git a/README.md b/README.md index 53e8d46..1d84a71 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Wen is available for Scala 2.12. You can add wen to your sbt project by adding t your `build.sbt`: ```scala -libraryDependencies += "dev.mlopes" %% "wen" % "0.9.0" +libraryDependencies += "dev.mlopes" %% "wen" % "1.0.0-M1" ``` ## What is Wen? diff --git a/build.sbt b/build.sbt index 6268f1f..5aec235 100644 --- a/build.sbt +++ b/build.sbt @@ -8,10 +8,14 @@ lazy val wen = project .in(file(".")) .aggregate(core, cats, circe) .settings(name := "Wen Root") + .settings( + publish := {}, + publishArtifact := false + ) lazy val core = project .in(file("modules/core")) - .settings(moduleName := "wen", name := "Wen") + .settings(moduleName := "wen", name := "Wen", description := "Idiomatic Date and Time types") .settings( libraryDependencies ++= refinedDependencies, libraryDependencies ++= testDependencies ++ catsDependencies.map(_ % Test), @@ -21,7 +25,7 @@ lazy val core = project lazy val cats = project .in(file("modules/cats")) .dependsOn(core) - .settings(moduleName := "wen-cats", name := "Wen Cats") + .settings(moduleName := "wen-cats", name := "Wen Cats", description := "Cats instances for Wen") .settings( libraryDependencies ++= catsDependencies, libraryDependencies ++= testDependencies, @@ -31,7 +35,7 @@ lazy val cats = project lazy val circe = project .in(file("modules/circe")) .dependsOn(core % "compile->compile;test->test", cats) - .settings(moduleName := "wen-circe", name := "Wen Circe") + .settings(moduleName := "wen-circe", name := "Wen Circe", description := "Circe encoders and decoders for Wen types") .settings( libraryDependencies ++= circeDependencies, libraryDependencies ++= testDependencies ++ circeExtraDependencies.map(_ % Test), diff --git a/notes/1.0.0-M1.markdown b/notes/1.0.0-M1.markdown new file mode 100644 index 0000000..17578c0 --- /dev/null +++ b/notes/1.0.0-M1.markdown @@ -0,0 +1,5 @@ +1.0.0-M1 +======== + +- Split project in 3, now there's wen, wen-cats, and wen-circe + diff --git a/publish.sbt b/publish.sbt index e5dcc09..50ef689 100644 --- a/publish.sbt +++ b/publish.sbt @@ -46,7 +46,6 @@ ensureVersionUpdateOnReadme in ThisBuild := { } } -ThisBuild / description := "Date and time types and instances" ThisBuild / licenses := List("Apache 2" -> new URL("http://www.apache.org/licenses/LICENSE-2.0.txt")) ThisBuild / homepage := Some(url("https://github.com/mlopes/wen")) diff --git a/version.sbt b/version.sbt index 7064862..6dc0588 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "1.0.0-M1" +version in ThisBuild := "1.0.0-SNAPSHOT" From 6d0d706b546dd722a5567a6591832df3c0b412b1 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 19:57:32 +0100 Subject: [PATCH 09/11] Setting version to 1.0.0-M1 --- version.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.sbt b/version.sbt index 6dc0588..7064862 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "1.0.0-SNAPSHOT" +version in ThisBuild := "1.0.0-M1" From c6f38da4e9e8714f9f185700697a863ea43ec2c5 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 20:05:11 +0100 Subject: [PATCH 10/11] Setting version to 1.0.0-SNAPSHOT --- version.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.sbt b/version.sbt index 7064862..6dc0588 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "1.0.0-M1" +version in ThisBuild := "1.0.0-SNAPSHOT" From 1fe79986992ee2433678e48e1a038dfc0906f730 Mon Sep 17 00:00:00 2001 From: Marco Lopes Date: Sat, 18 May 2019 20:07:54 +0100 Subject: [PATCH 11/11] Update documentation --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1d84a71..de26a2d 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,8 @@ your `build.sbt`: ```scala libraryDependencies += "dev.mlopes" %% "wen" % "1.0.0-M1" +libraryDependencies += "dev.mlopes" %% "wen-cats" % "1.0.0-M1" // For cats instances +libraryDependencies += "dev.mlopes" %% "wen-circe" % "1.0.0-M1" // For circe encoders and decoders ``` ## What is Wen?