diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f67225e4..12fd29bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,7 +117,7 @@ jobs: env: PGP_SECRET: ${{ secrets.PGP_SECRET }} PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} - run: echo $PGP_SECRET | base64 -di | gpg --import + run: echo $PGP_SECRET | base64 -d -i - | gpg --import - name: Import signing key and strip passphrase if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != '' @@ -125,7 +125,7 @@ jobs: PGP_SECRET: ${{ secrets.PGP_SECRET }} PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} run: | - echo "$PGP_SECRET" | base64 -di > /tmp/signing-key.gpg + echo "$PGP_SECRET" | base64 -d -i - > /tmp/signing-key.gpg echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg (echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1) diff --git a/.scalafmt-common.conf b/.scalafmt-common.conf index 62659460..3cb97af1 100644 --- a/.scalafmt-common.conf +++ b/.scalafmt-common.conf @@ -4,10 +4,11 @@ # this file by hand! Instead, if you wish to make changes, you should # make a PR to sbt-lucuma. -version = "3.7.12" +version = "3.7.14" style = default runner.dialect = scala3 +runner.optimizer.maxVisitsPerToken = 20000 # Avoids SearchStateExploded exceptions maxColumn = 100 project.git = true diff --git a/.scalafmt.conf b/.scalafmt.conf index 4f65878d..4efd69a7 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.14" +version = "3.7.17" include ".scalafmt-common.conf" runner.dialect = scala3 fileOverride { diff --git a/build.sbt b/build.sbt index cbea9567..9d81caa4 100644 --- a/build.sbt +++ b/build.sbt @@ -1,13 +1,13 @@ val circeVersion = "0.14.6" val disciplineMUnitVersion = "1.0.9" -val fs2Version = "3.9.2" -val kittensVersion = "3.0.0" +val fs2Version = "3.9.3" +val kittensVersion = "3.1.0" val munitVersion = "0.7.29" val munitCatsEffectVersion = "1.0.7" -val lucumaCoreVersion = "0.88.0" -val lucumaODBSchema = "0.6.1" +val lucumaCoreVersion = "0.88.2" +val lucumaODBSchema = "0.7.0" -ThisBuild / tlBaseVersion := "0.63" +ThisBuild / tlBaseVersion := "0.64" ThisBuild / tlCiReleaseBranches := Seq("main") ThisBuild / crossScalaVersions := Seq("3.3.1") ThisBuild / tlVersionIntroduced := Map("3" -> "0.29.0") diff --git a/flake.lock b/flake.lock index da6ce743..e757756d 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1695973661, - "narHash": "sha256-BP2H4c42GThPIhERtTpV1yCtwQHYHEKdRu7pjrmQAwo=", + "lastModified": 1698410321, + "narHash": "sha256-MphuSlgpmKwtJncGMohryHiK55J1n6WzVQ/OAfmfoMc=", "owner": "numtide", "repo": "devshell", - "rev": "cd4e2fda3150dd2f689caeac07b7f47df5197c31", + "rev": "1aed986e3c81a4f6698e85a7452cbfcc4b31a36e", "type": "github" }, "original": { @@ -55,11 +55,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1696725822, - "narHash": "sha256-B7uAOS7TkLlOg1aX01rQlYbydcyB6ZnLJSfaYbKVww8=", + "lastModified": 1699725108, + "narHash": "sha256-NTiPW4jRC+9puakU4Vi8WpFEirhp92kTOSThuZke+FA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5aabb5780a11c500981993d49ee93cfa6df9307b", + "rev": "911ad1e67f458b6bcf0278fa85e33bb9924fed7e", "type": "github" }, "original": { @@ -119,11 +119,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1696872169, - "narHash": "sha256-gR/ECICEWll2PwT/pUWhiViwN2VN5fWihlKmDNidR2U=", + "lastModified": 1699926834, + "narHash": "sha256-I8XAy8y0HMI5pY0ZoFbo0/H4aXfMMKstsGWT6opqcHg=", "owner": "typelevel", "repo": "typelevel-nix", - "rev": "6d5aa0fe626b2b8f899660caeb1a288fe4112213", + "rev": "f2a7145438b56c33bce89a69cf46ecf0fa6229e0", "type": "github" }, "original": { diff --git a/lucuma-schemas/src/clue/resources/lucuma/schemas/ObservationDB.graphql b/lucuma-schemas/src/clue/resources/lucuma/schemas/ObservationDB.graphql index 9df7be1c..fc124540 100644 --- a/lucuma-schemas/src/clue/resources/lucuma/schemas/ObservationDB.graphql +++ b/lucuma-schemas/src/clue/resources/lucuma/schemas/ObservationDB.graphql @@ -1331,6 +1331,9 @@ type GmosNorthStepRecord implements StepRecord { """ stepConfig: StepConfig! + """The observe class of this step.""" + observeClass: ObserveClass! + """Step QA state based on a combination of dataset QA states.""" stepQaState: StepQaState @@ -1733,6 +1736,9 @@ type GmosSouthStepRecord implements StepRecord { """ stepConfig: StepConfig! + """The observe class of this step.""" + observeClass: ObserveClass! + """Step QA state based on a combination of dataset QA states.""" stepQaState: StepQaState @@ -2479,6 +2485,7 @@ input RecordGmosNorthStepInput { atomId: AtomId! instrument: GmosNorthDynamicInput! stepConfig: StepConfigInput! + observeClass: ObserveClass! } """The result of recording a GmosNorth step.""" @@ -2504,6 +2511,7 @@ input RecordGmosSouthStepInput { atomId: AtomId! instrument: GmosSouthDynamicInput! stepConfig: StepConfigInput! + observeClass: ObserveClass! } """The result of recording a GmosSouth step.""" @@ -2864,7 +2872,9 @@ input TargetEditInput { } input GroupEditInput { - """Group ID""" + """ + Group ID, or Null to watch top-level group(s), or omit to watch all groups. + """ groupId: GroupId """Program ID""" @@ -2903,8 +2913,11 @@ type GroupEdit { """Type of edit""" editType: EditType! - """Edited object""" - value: Group! + """Assocated program""" + program: Program! + + """Edited group, or null if it's the top-level group.""" + value: Group id: Long! @deprecated(reason: "id is no longer computed; a constant value is returned") } @@ -3786,6 +3799,9 @@ type DatasetEvent implements ExecutionEvent { """Event type.""" eventType: ExecutionEventType! + """The associated step.""" + step: StepRecord! + """Dataset execution stage.""" datasetStage: DatasetStage! @@ -3964,10 +3980,16 @@ type Exchange implements ProposalClass { type Execution { """ Calculations dependent on the sequence, such as planned time and offsets. + If a sequence cannot be generated for this observation, `null` is returned + along with warning messages. """ - digest: ExecutionDigest! + digest: ExecutionDigest - """Full execution config, including acquisition and science sequences.""" + """ + Full execution config, including acquisition and science sequences. If a + sequence cannot be generated for this observation, `null` is returned along + with warning messages. + """ config( """ The maximum size (number of atoms) of the `possibleFuture` in the sequences. @@ -3978,7 +4000,7 @@ type Execution { projected atom count is available in the execution digest. """ futureLimit: NonNegInt = 25 - ): ExecutionConfig! + ): ExecutionConfig """ Executed (or at least partially executed) atom records, across all visits. @@ -5002,6 +5024,21 @@ type CreateGroupResult { group: Group! } +""" +A period of time showing which position angles have guide stars available during the period. +The position angles are tested every 10 degrees. +""" +type GuideAvailabilityPeriod { + """The start time of the availability period.""" + start: Timestamp! + + """Then end time of the availability period.""" + end: Timestamp! + + """The position angles available during this period.""" + posAngles: [Angle!]! +} + """The guide star(s) and related information""" type GuideEnvironment { """The position angle""" @@ -6643,6 +6680,9 @@ interface StepRecord { """ stepConfig: StepConfig! + """The observe class of this step.""" + observeClass: ObserveClass! + """Step QA state based on a combination of dataset QA states.""" stepQaState: StepQaState @@ -6800,6 +6840,19 @@ type TargetEnvironment { observationTime: Timestamp! ): [GuideEnvironment!]! + """ + Availability of guide stars during a specified time range. + There can be multiple `GuideAvailabilityPeriod`s returned if availability changes over the time + range. In this case, the `end` of one period will be the same as the `start` of the next period. + """ + guideAvailability( + """The starting time of the time range of interest.""" + start: Timestamp! + + """The ending time of the time range of interest.""" + end: Timestamp! + ): [GuideAvailabilityPeriod!]! + """When set, overrides the default base position of the target group""" explicitBase: Coordinates } diff --git a/project/plugins.sbt b/project/plugins.sbt index a4dfbeea..d2de90d4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("edu.gemini" % "sbt-lucuma-lib" % "0.11.8") -addSbtPlugin("edu.gemini" % "sbt-clue" % "0.33.0") +addSbtPlugin("edu.gemini" % "sbt-lucuma-lib" % "0.11.9") +addSbtPlugin("edu.gemini" % "sbt-clue" % "0.34.1")