Skip to content

Releases: NASA-AMMOS/aerie

v1.4.0

03 Apr 22:02
36ae528
Compare
Choose a tag to compare

Summary

  • Temporal subset simulation
  • Author hardware and immediate commands in the sequence editor using the EDSL
  • Activity presets in scheduling goals (see docs)
  • Specify the duration of an activity in a scheduling goal to match the duration of a window (see docs)
  • GraphQL query for resource data at a given offset (see docs)

What's Changed

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.3.0 to 1.4.0.

New Features

Bug Fixes

  • Close SimulationEngine when Scheduling Finishes by @Mythicaeda in #809
  • Fixed argument ordering when seqjson is generated by @cohansen in #821
  • Use simulated id rather than directive id as key for simulatedActivityRecords by @mattdailis in #835

Refactoring

Performance Improvements

Build System and Dependencies

Full Changelog: v1.3.0...v1.4.0

v1.3.0

17 Mar 16:34
30906f5
Compare
Choose a tag to compare

Summary

  • The sequence editor now supports the latest version of seq-json-schema (v1.0.17)
  • You can now make simulation optional per scheduling specification goal via the API. The UI will be included in a later release.
  • If an exception occurs during simulation, the time of the the exception is now reported
  • All fields from Seq JSON are now supported in the sequencing EDSL

What's Changed

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.2.0 to 1.3.0.

New Features

Bug Fixes

  • Use enums for "enum boolean" types for sequences by @camargo in #727
  • Output non-matching eDSL objects to String by @goetzrrGit in #746

Refactoring

Documentation

  • Added triager role to governance model by @ewferg in #742

Build System and Dependencies

Full Changelog: v1.2.0...v1.3.0

v1.2.0

07 Mar 01:47
3e4e3da
Compare
Choose a tag to compare

Summary

  • Activity presets are now available at the database-level. UI coming in a future release.
  • An extendExternalDataset mutation has been added to aid in uploading larger external datasets to Aerie. More optimizations and/or workarounds for this coming soon.
  • Scheduling goal backtracking configuration is now available to manipulate at the goal level. Please see the documentation for more information.
  • The constraints EDSL now includes a .negate() function, which is a helper to multiply a resource by -1.
  • Lots of important bug fixes. See the list below.

What's Changed

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.1.0 to 1.2.0.

  • Provide a single consistent capability for JSON (de)serialization of SerializedValue by @Twisol in #577
  • JSON Spec Updates and SEQ JSON to EDSL fix by @goetzrrGit in #683

New Features

Bug Fixes

  • Correct AerieMerlin's "Current" Migration by @Mythicaeda in #682
  • Fix Scheduling Dropping Daemons by @Mythicaeda in #684
  • Minimize locks acquired for dataset partitions by @mattdailis in #661
  • Added handling for activities that stretch past a plans duration by @cohansen in #672
  • Added a fix for when an activity type has the same name as a command by @cohansen in #696
  • Update dev docker-compose to remove aerie- prefix from images by @camargo in #701
  • Add apply_preset_to_activity metadata by @Mythicaeda in #704
  • Use correct join type when querying scheduling conditions by @mattdailis in #709

Refactoring

Continuous Integration

Build System and Dependencies

Full Changelog: v1.1.0...v1.2.0

v1.1.0

15 Feb 00:06
e890425
Compare
Choose a tag to compare

Summary of New Features

  • Activity directives can now be anchored to one another!
  • You can now choose the parameter of a "to be scheduled activity" based on a resource in the scheduling EDSL.
  • You can now do relative parameter querying in the scheduling EDSL.
  • You can now create windows, spans, or profiles at absolute times in the scheduling and constraints EDSL.
  • A new operation called accumulatedDuration has been added to the constraints EDSL that counts the accumulated time in windows and spans objects, as a real profile.

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.0.2 to 1.1.0.

  • Tests that directly called SimulationDriver.simulate(...) will need to be updated as that function has a new signature. Additionally some type names have changed to better reflect the actual names used in our data model. See the following new signature:
    SimulationResults simulate(
      final MissionModel<Model> missionModel,
      final Map<ActivityDirectiveId, ActivityDirective> schedule,
      final Instant startTime,
      final Duration planDuration,
      final Duration simulationDuration
    ) { ... }
    • You need an additional planDuration parameter of type Duration.
    • The type of the schedule parameter has changed from final Map<ActivityInstanceId, Pair<Duration, SerializedActivity>> to final Map<ActivityDirectiveId, ActivityDirective>.
    • ActivityInstanceId has been renamed to ActivityDirectiveId.

What's Changed

New Features

Bug Fixes

Refactoring

Testing

  • Enable jacocoTestReport task for all java subprojects by @mattdailis in #598

Continuous Integration

Documentation

  • Add back Aerie logo for README.md by @camargo in #656
  • Move contributing, move governance, update readme, update developer by @camargo in #658
  • Update developer doc by @camargo in #660

Build System and Dependencies

Full Changelog: v1.0.2...v1.1.0

v1.0.2

26 Jan 00:16
ba64bbf
Compare
Choose a tag to compare

Summary of New Features

  • A plan ID and simulation dataset ID have been added to the top-level .seq.json sequence output from command expansion.
  • The sequence EDSL has been updated to support repeat arguments. This will require updating existing sequences to comply. See the breaking changes section below for details.
  • SPICE now loads on M1 Docker images.
  • Docker images are now auto-built for multiple machine architectures.
  • Migrated to a new documentation site: https://nasa-ammos.github.io/aerie-docs
  • Released a governance document to describe how the Aerie project is managed.

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.0.1 to 1.0.2.

  • All existing sequence EDSLs (authored sequences and expansion rules) will need to be updated to use the pass-by-name argument style for commands. Pass-by-position is no longer supported because it does not allow for use of repeat arguments without major changes. For example old expansion rules could use the following pass-by-position command argument format:

    /**
     * This pass-by-position style is no longer supported.
     */
    export default function ({ activityInstance: ActivityType }): ExpansionReturn {
      return [A('2024-001T00:00:00').FSW_CMD_0('ON', true, 1.0)];
    }

    Needs to be updated to:

    /**
     * This pass-by-name style is the only supported way to pass command arguments now.
     */
    export default function ({ activityInstance: ActivityType }): ExpansionReturn {
      return [A('2024-001T00:00:00').FSW_CMD_0({ enum_arg_0: 'ON', boolean_arg_0: true, float_arg_0: 1.0 })];
    }

    Where enum_arg_0, boolean_arg_0, and float_arg_0 are the names of the arguments for the FSW_CMD_0 command specified in the command dictionary.

What's Changed

New Features

Bug Fixes

Refactoring

Continuous Integration

  • Add multi-arch image builds in publish workflow by @skovati in #566
  • Add QEMU and buildx action for multi-arch container images by @skovati in #584
  • Remove testing from publish workflow by @camargo in #589
  • Add Kubernetes manifests by @skovati in #606
  • Remove docs-links.yaml Workflow by @camargo in #615

Documentation

Build System and Dependencies

Style

  • Run Prettier formatting over sequencing server by @camargo in #549

New Contributors

Full Changelog: v1.0.1...v1.0.2

v1.0.1

19 Dec 21:21
dc05a06
Compare
Choose a tag to compare

Summary of New Features

  • Important critical security update from Hasura v2.12.0 to v2.12.1. See the security advisory here.
  • Gaps in constraint violations are now returned from the constraint violations query. UI support coming soon.
  • New GraphQL queries for generating Seq JSON in bulk.
  • New standalone Aerie Docker images for Hasura and Postgres that include Aerie-specific Hasura metadata and SQL tables respectively.
  • Update Gradle to version 7.6.
  • Lots of documentation updates.
  • Various bug fixes.

What's Changed

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 1.0.0 to 1.0.1.

  • Use a record instead of a pair for profile segments by @mattdailis in #434

New Features

Bug Fixes

  • Added the path param to schema types by @cohansen in #508
  • Temp fix NASA Scrub scan by @camargo in #534
  • Fix infinite loop issue with recurrence goal and global scheduling condition + warning message by @adrienmaillard in #525
  • Make negative delays throw exceptions by @mattdailis in #533
  • Fix serialization of Duration to avoid rounding to millisecond by @mattdailis in #520
  • Added an override for qs to fix dependabot vulnerability by @cohansen in #539

Continuous Integration

Documentation

Build System and Dependencies

New Contributors

Full Changelog: v1.0.0...v1.0.1

v1.0.0

15 Nov 03:45
f00c877
Compare
Choose a tag to compare

Summary of New Features

  • Plan merge and collaboration. You can now create a branch from a plan, make a merge request to a parent plan, and interactively review merge requests!
  • You can now include gaps in external datasets and query for them using the constraints EDSL.
  • Global scheduling conditions can now be added via the GraphQL API. We are targeting UI support in an upcoming point release.
  • Many documentation updates with more coming. We recommend using the develop documentation for the next couple point releases.
  • Unit tests now require less boilerplate thanks to some simplification refactoring.

What's Changed

Breaking Changes

Please see our latest upgrade guide for complete instructions for upgrading from 0.13.2 to 1.0.0.

New Features

Bug Fixes

  • Load scheduling DSL TypeScript libraries in scheduler-server by @pcrosemurgy in #424
  • Use the constraints DSL from the constraints folder by @mattdailis in #431
  • Commit merge with delete-modify conflict resolution edge cases by @mattdailis in #440

Performance Improvements

  • Wrap simulation results writing in TransactionContext by @mattdailis in #411

Refactoring

Continuous Integration

Documentation

Build System and Dependencies

Style

New Contributors

Other Aerie 1.0.0 Releases

Full Changelog: v0.13.2...v1.0.0

v0.13.2

19 Oct 20:42
edf5b5c
Compare
Choose a tag to compare

Summary of New Features

  • The scheduling EDSL now uses Temporal.Duration for representing durations. Users no longer need to provide all durations in microseconds.
  • We now provide a recommended pattern to return computed attributes from an activity @EffectModel function.
  • You are now able to check constraints against external profiles.
  • Scheduling and simulation errors now provide more context and type consistency.

Breaking Changes

  • Going forward we are recommending you install Aerie using the GitHub package repository instead of Artifactory.
  • Migrating a mission model will require two modifications. Please see our upgrade guide for detailed instructions.
  • We updated to Java 19 to start taking advantage of the latest concurrency features. Mission modelers will need to install a Java 19 JDK.

What's Changed

New Features

  • [AERIE-2033] Replace long representation of duration with Temporal.Duration in scheduling eDSL by @adrienmaillard in #187
  • [AERIE-1858] Facilitate recommended pattern for computed attributes by @mattdailis in #188
  • [AERIE-1961] External profiles in constraints by @JoelCourtney in #350
  • [AERIE-2119] Structure failWith() reasons by @pcrosemurgy in #362
  • [AERIE-1930] Include awaiting execution state activity tasks in results by @patkenneally in #367
  • [AERIE-1983] Add temporal to command typings by @dyst5422 in #375

Bug Fixes

Performance Improvements

Refactoring

  • Remove some unnecessary simulation system complexity (and fix a bug) by @Twisol in #318
  • Rename InvalidArgumentsException -> InstantiationException by @pcrosemurgy in #371

Documentation

Build System and Dependencies

New Contributors

Other Aerie 0.13.2 Releases

Full Changelog: v0.13.1...v0.13.2

v0.13.1

03 Oct 21:10
cff3e58
Compare
Choose a tag to compare

What's Changed

Activity to Command Expansion

  • AERIE-2041 - TS convert functional programing UNIT to {} by @goetzrrGit in #311
  • feat: increase command expansion server body parser limit by @camargo in #323
  • [AERIE-1764] Return more information about errors. by @goetzrrGit in #302
  • [AERIE-1924] Implement transpilation caching in command expansion by @dyst5422 in #326
  • [AERIE-2049] Fallible seqJson actions by @dyst5422 in #324
  • FEAT Convert seqJson to seq EDSL by @dyst5422 in #338
  • [Aerie 2021] Remove Deprecated Time Formats by @goetzrrGit in #328

Activity Parameters

  • [AERIE-2067] Return associated parameters in validation responses by @pcrosemurgy in #317 : The @Validation.Subject annotation is available to report the parameter(s) associated with a particular activity parameter validation response.
  • Add @Validation.Subject where possible by @pcrosemurgy in #329
  • [HOTFIX] Allow ValidationResponse.errors to be null (when success false) by @pcrosemurgy in #319
  • [AERIE-2066] Report activity argument validations in activity_directive_validations by @pcrosemurgy in #330
    Activity parameter argument validations are available to query on the graphql API via the activity_directive_validations
  • [AERIE-2091] Fix "classic style" required @Parameter support by @pcrosemurgy in #334

Modeling

Scheduling

  • [REFACTOR] Move Scheduling Goal compilation out of Database Driver by @mattdailis in #305
  • [AERIE-1967] Global Scheduling Conditions by @mattdailis in #308
  • [AERIE-2111] Return AnalysisID as part of Schedule Action by @Mythicaeda in #348

General

Documentation

New Contributors

Full Changelog: v0.13.0...v0.13.1

v0.13.0

06 Sep 18:06
228d867
Compare
Choose a tag to compare

What's Changed

Activity-Command Expansion

Command expansion now passes the computed attributes of a simulated activity to the activity-command expansion process. See docs

Users can now compose a stand alone sequence and generate a seqjson document. See docs

  • [AERIE-2002] Generate a standalone sequence seqjson by @goetzrrGit in #285

Automated Scheduling

Composite goal types were refactored with the user facing changes being the inPeriod operator of the CardinalityGoal removed from the eDSL, bug fix where the horizon was not set (forAllTimeIn) in the conjunctive goal, and the criterion for satisfaction of composite or/and goal refactored to be similar to the semantics of partialSatisfiability for non-composite goals.

Documentation updates in preparation for publishing of an autogenerated eDSL API documentation similar in style to javadocs.

Scheduler populates source activity metadata field.

  • [AERIE-1940] Scheduler populate source metadata field by @dyst5422 in #282

Constraints

Bug fixed where extra quotes would be parsed in a constraint definition.

General

Secrets have been removed from the repository and Aerie docker compose file now takes secrets as environment parameters.

  • [AERIE-1696] Move secrets to enviornment variables by @Mythicaeda in #279

This change will require any clients to update their graphql query from activity to activity_directive.

  • [AERIE-1941] Rename activity table to activity_directive by @dyst5422 in #284

Make use of an unconfigured mission model, rather than a configured mission model, wherever possible. This should increase system responsiveness when loading activity plans. This change is the culmination of discussions about which actions need "fully instantiated" mission models, and which actions only need "loaded mission models". The terminology in the code uses the words "Configured Mission Model" to mean one whose constructor had been called, and "Unconfigured Mission Model" for mission models whose factories had been loaded, and directive types extracted, but no constructor had been called.

  • [AERIE-2082] Use unconfigured models where possible by @mattdailis in #312

Simulation

A bug limiting the number of activity definitions in the annotations processor has been fixed.

  • [AERIE-2005] Use builder pattern when instantiating activity type directives by @pcrosemurgy in #281
  • [REFACTOR] Simplify builder chaining code codegen by @pcrosemurgy in #286

The plan start time is now available to the mission model during initialization.

Remainder

Breaking Changes

This change will require any clients to update their graphql query from activity to activity_directive.

  • [AERIE-1941] Rename activity table to activity_directive by @dyst5422 in #284

New Contributors

Full Changelog: v0.12.3...v0.13.0