Skip to main content

4.2.1 to 4.3.0

This document describes the upgrade instructions from PlanDev 4.2.1 to 4.3.0.

Next Release: Renamed packages and Docker images

As previously communicated, this project has been renamed to "PlanDev" and "SeqDev". In our next release (version 4.4.0) we will complete this process by renaming existing Java packages, NPM packages, Python packages, and Docker images. For example, aerie_gateway will become plandev_gateway, and Java packages will use the new namespace gov.nasa.ammos.plandev. To upgrade to version 4.4.0, you will need to update affected package names and namespaces in your own code, including mission models, procedural goals, constraints, and actions. You will then need to rebuild these components and upload them to your upgraded PlanDev instance.

No action is required when upgrading to version 4.3.0. This change is planned for the next release, but we want users to have advance notice. If you expect this migration to be difficult for your team, please contact us. We may be able to provide migration tools or other assistance.

If you decide not to upgrade to version 4.4.0 immediately, older versions of these packages and images will remain available under their existing names and locations for the foreseeable future.

Database migrations

This release (4.3.0) includes database migrations, which must be run on existing environments if you want to preserve your data when upgrading. Refer to the Database Migration Guide in the docs for full instructions.

Docker image changes

This release includes a recommended change to the deployment configuration. Previous example Docker Compose files referenced the upstream postgres:16.12-bookworm and hasura/graphql-engine:v2.12.1.cli-migrations-v3 images directly. We now recommend using the PlanDev-wrapped versions of these images, which are published alongside the other PlanDev images as aerie_postgres and aerie_hasura. These wrapped images retain the upstream behavior while incorporating recommended security updates.

If you have an active PlanDev deployment, you should update your docker-compose.yml file to use the wrapped images. Refer to the example deployment Docker Compose file for the current configuration.

Significant PlanDev changes

Streaming Simulation Results

For long-running simulations, resource profiles are now progressively streamed to the timeline UI as they are created, allowing you to see the beginning of the profile while simulation is still running. Note that this only applies to simulations run from the simulation interface, and not to those run automatically by Scheduling Goals (yet).

Activity Directive Builder

Adding activities to the PlanDev timeline has changed slightly: instead of immediately creating activities when you drag them from the "Activities, Resources, Event Types" panel, we now show a form which allows you to enter as many details as you know about the activity at the time of creation. This helps avoid half-finished or imprecisely-positioned activities. You can also add any activity with this form by clicking the new "+" button at the top of the panel.

Activity Search Page

PlanDev now has the ability to search for activities across plans on your deployment, via the new "Activity Search" page (in the navigation under "Planning"). Use the form on the left to filter your results to specific models or activities, and click Search to get results from all plans on your PlanDev instance.

Plan bounds can be changed on an existing plan

The start and end times of a plan, which have previously been immutable, can now be changed without creating a new plan. To change them, you can click a plan on the Plans page and modify it in the left panel, or open the Plan Metadata panel on your active plan and use the date inputs.

Note that when changing plan bounds, activities that are anchored to the plan will retain their absolute times, not their relative times from plan start/end. For example, if your plan starts at midnight and you have an activity at 01:00 AM anchored to plan start, it will stay at 01:00 regardless of how you change the plan bounds. As a result of your bounds change, some activities may now lie outside the bounds of your plan. These activities will be preserved and are still visible via the "Activities" panel.

Constraint Violation Messages

Procedural Constraints in PlanDev may now return custom violation messages for each violation. These will be saved in the database and are visible in the UI in the violation details or by hovering over it in the timeline.

Default External Event Derivation Groups for Models

If you're using External Events, it can be tedious to associate every plan with all of your event derivation groups. You now have the option to set default derivation groups for a mission model, after which all plans created with this model will have those groups associated by default. More information can be found in this PR.

Significant SeqDev changes

Simultaneous Edit Protection in SeqDev Workspaces

Since SeqDev workspaces are backed by files, there is always the risk of two users overwriting each other's changes by saving different versions of the files. To help prevent this, when you save a file in SeqDev, we first check to ensure that the file has not changed on the server since you first opened it. If the server version has changed, you will be prompted with a window to decide whether to "take theirs" (accept the server version and discard your own changes) or "take mine" (overwrite the server version with your local changes). If you need to perform more complex change resolution, you should copy both versions to another document, cancel the save, and save the deconflicted version again when you're ready.

Likewise, if the file you're trying to save has been deleted or moved since you opened it, you'll be prompted to either recreate the file or discard your changes.

Action Run Reports

SeqDev actions may now return an optional report field in their results object, which is expected to be a string of Markdown-formatted text. If provided, the Markdown report will be rendered at the top of the Action Run page, above the logs. This gives users a way to provide more accessible and understandable reporting from their action runs, instead of requiring looking through all the log messages to determine what happened. Note that only a limited subset of Markdown formatting is available to prevent users from embedding dangerous iframes or Javascript in reports.