From 933c1dcc16894a9067e59fbfeade51cf013a05ae Mon Sep 17 00:00:00 2001 From: Matt Cook Date: Thu, 23 Jan 2025 09:54:08 -0700 Subject: [PATCH 01/16] chore: add env vars to docker-compose.yml and defaults to sample.env --- docker-compose.yml | 4 ++++ sample.env | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index b5172e1dc..613862fc8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,6 +43,10 @@ services: DATA_SIGNING_ENABLED_SDW: ${DATA_SIGNING_ENABLED_SDW} DEFAULT_SNMP_PROTOCOL: ${DEFAULT_SNMP_PROTOCOL} KAFKA_LINGER_MS: ${KAFKA_LINGER_MS} + KAFKA_ACKS: ${KAFKA_ACKS} + KAFKA_RETRIES: ${KAFKA_RETRIES} + KAFKA_BATCH_SIZE: ${KAFKA_BATCH_SIZE} + KAFKA_COMPRESSION_TYPE: ${KAFKA_COMPRESSION_TYPE} ODE_TIM_INGEST_MONITORING_ENABLED: ${ODE_TIM_INGEST_MONITORING_ENABLED} ODE_TIM_INGEST_MONITORING_INTERVAL: ${ODE_TIM_INGEST_MONITORING_INTERVAL} depends_on: diff --git a/sample.env b/sample.env index 5e7bfa46a..a69004442 100644 --- a/sample.env +++ b/sample.env @@ -67,6 +67,18 @@ DEFAULT_SNMP_PROTOCOL= KAFKA_TYPE= KAFKA_LINGER_MS=1 +# Local Kafka broker properties - you can override these if you want, but the defaults should be fine for normal use +# The application will not boot if these environment variables are set to empty strings (e.g. KAFKA_BATCH_SIZE=) + +KAFKA_COMPRESSION_TYPE="zstd" +KAFKA_BATCH_SIZE=16384 +KAFKA_BUFFER_MEMORY=33554432 +KAFKA_ACKS="all" +KAFKA_RETRIES=0 +KAFKA_KEY_SERIALIZER= +KAFKA_VALUE_SERIALIZER= +KAFKA_PARTITIONER_CLASS= + # Confluent Cloud API access credentials (only required if KAFKA_TYPE is set to "CONFLUENT") CONFLUENT_KEY= CONFLUENT_SECRET= From 46161c1f03e248a996dc998bca171657097aade3 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 10:38:47 -0700 Subject: [PATCH 02/16] Revised the quarterly release workflow to proceed sequentially by project --- docs/release_process.md | 384 ------------------------ docs/release_process_hotfix.md | 41 +++ docs/release_process_quarterly.md | 467 ++++++++++++++++++++++++++++++ 3 files changed, 508 insertions(+), 384 deletions(-) delete mode 100644 docs/release_process.md create mode 100644 docs/release_process_hotfix.md create mode 100644 docs/release_process_quarterly.md diff --git a/docs/release_process.md b/docs/release_process.md deleted file mode 100644 index 42255e65f..000000000 --- a/docs/release_process.md +++ /dev/null @@ -1,384 +0,0 @@ -# Quarterly Release Process -The quarterly release process is used to prepare the code for a new release at the end of each quarter. This process includes creating a new release branch, stabilizing the code, updating project references, creating the release, and testing the release. - -There are four over-arching steps to the quarterly release: -1. Code Ready & Release Notes -2. Preliminary Testing -3. Project Reference Updates & Release Creation -4. DockerHub Image Testing - -## 1. Code Ready & Release Notes -### Description -The first step in the quarterly release process is to ensure that the code is ready for release and that the release notes have been created. This includes ensuring that all features and bug fixes that are intended for the release are complete and have been merged into the `develop` branch. A new branch `release_(year)-(quarter)` should be created from the `develop` branch to stabilize the code and prepare for the release. Release notes should be drafted and added to the `Release_notes.md` file in the `docs` directory of the repository. - -### Acceptance Criteria - - [ ] jpo-ode - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] asn1_codec - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-cvdp - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-security-svcs - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-sdw-depositor - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-s3-deposit - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-geojsonconverter - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-conflictmonitor - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-conflictvisualizer - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - - [ ] jpo-cvmanager - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for release are merged into `develop` - - [ ] A new branch `release_(year)-(quarter)` is created from `develop` - -## 2. Preliminary Testing -### Description -After the release branches are created, preliminary testing should be conducted to ensure that the code is stable and ready for release. This includes running unit tests, integration tests, and any other relevant tests to ensure that the code is functioning as expected. - -### Acceptance Criteria - - [ ] jpo-ode - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] http endpoint is reachable - - [ ] tims can be successfully pushed to http endpoint - - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) - - [ ] tims - - [ ] bsms - - [ ] ssms - - [ ] srms - - [ ] spats - - [ ] maps - - [ ] psms - - [ ] asn1_codec - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] program can be configured for decoding successfully - - [ ] program can be configured for encoding successfully - - [ ] messages get decoded as expected - - [ ] messages get encoded as expected - - [ ] jpo-cvdp - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] messages get consumed as expected - - [ ] BSMs inside geofence are retained - - [ ] BSMs with a partII section are retained - - [ ] BSMs outside geofence are suppressed - - [ ] BSMs above speed range are suppressed - - [ ] BSMs below speed range are suppressed - - [ ] jpo-security-svcs - - [ ] code compiles - - [ ] program starts up correctly - - [ ] program can be successfully configured - - [ ] messages can be successfully signed - - [ ] jpo-sdw-depositor - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] messages are consumed successfully - - [ ] messages are submitted to the SDX successfully - - [ ] jpo-s3-deposit - - [ ] code compiles - - [ ] program starts up correctly - - [ ] deposits can be made to one of the destinations successfully - - [ ] jpo-geojsonconverter - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] program can be configured successfully - - [ ] MAP & SPaT messages are consumed successfully - - [ ] valid ProcessedMaps & ProcessedSpats are outputted - - [ ] jpo-conflictmonitor - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) - - [ ] test BSM events - - [ ] test connection of travel event - - [ ] test intersection reference alignment events - - [ ] test lane direction of travel event - - [ ] test MAP broadcast rate event - - [ ] test MAP minimum data event - - [ ] test signal group alignment events - - [ ] test signal state conflict events - - [ ] test SPaT broadcast rate event - - [ ] test SPaT minimum data event - - [ ] test SPaT time change details event - - [ ] test stop line passage events - - [ ] test stop line stop events - - [ ] jpo-cvmanager - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] webapp can be signed into successfully - - [ ] jpo-conflictvisualizer - - [ ] code compiles - - [ ] unit tests pass - - [ ] program starts up correctly - - [ ] GUI functions & can display messages - -## 3. Project Reference Updates & Release Creation -### Description -After preliminary testing is complete, project reference updates should be made to ensure that all projects are referencing the correct versions of other projects. Once project references are updated, the release should be created by merging the `release_(year)-(quarter)` branch into the `master` branch and tagging the release with the appropriate version number. Images should be built and pushed to DockerHub for testing. - -### Steps -#### Merging release branches, updating project references and creating releases - -1. Update version number in pom.xml for the following projects if not already done: - - jpo-security-svcs - - jpo-sdw-depositor - - jpo-s3-deposit - - jpo-utils - -2. Merge ‘release_(year)-(quarter)’ branch into ‘master/main’ branch for the following projects: - - asn1_codec - - jpo-cvdp - - jpo-security-svcs - - jpo-sdw-depositor - - jpo-s3-deposit - - jpo-utils - - 2a. Create a release for the asn1_codec project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. asn1_codec-x.x.x) - - 2b. Create a release for the jpo-cvdp project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-cvdp-x.x.x) - - 2c. Create a release for the jpo-security-svcs project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-security-svcs-x.x.x) - - 2d. Create a release for the jpo-sdw-depositor project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-sdw-depositor-x.x.x) - - 2e. Create a release for the jpo-s3-deposit project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-s3-deposit-x.x.x) - - 2f. Create a release for the jpo-utils project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) - -3. Update version number in pom.xml files for the 'jpo-ode' project if not already done. - - 3a. Open the jpo-ode project in an IDE - - 3b. Update the version number in the pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to match the version number of the release. (e.g. 1.0.0) - - 3c. Update the dependencies in pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to the version number set in the previous step. The `jpo-ode-plugins` depends on the `jpo-ode-common` project, and the `jpo-ode-svcs` project depends on the `jpo-ode-core` and `jpo-ode-plugins` projects. These should all be referencing the same version number. (e.g. 1.0.0) - -4. Update git submodule references for the ‘jpo-ode’ project to point to tagged commits in projects with updated `master/main` branches. - - 4a. Open the jpo-ode project in an IDE. - - 4b. Navigate to the asn1_codec directory and run `git checkout tags/asn1_codec-x.x.x` to update the submodule reference. - - 4c. Navigate to the jpo-cvdp directory and run `git checkout tags/jpo-cvdp-x.x.x` to update the submodule reference. - - 4d. Navigate to the jpo-security-svcs directory and run `git checkout tags/jpo-security-svcs-x.x.x` to update the submodule reference. - - 4e. Navigate to the jpo-sdw-depositor directory and run `git checkout tags/jpo-sdw-depositor-x.x.x` to update the submodule reference. - - 4f. Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. - - 4g. Commit these changes to the `release_(year)-(quarter)` branch & push the changes to the remote repository. - - 4h. Ensure these changes pass CI/CD checks before continuing. - -5. Merge `release_(year)-(quarter)` branch into `master/main` branch for the jpo-ode project, and create a release with the version number of the release. (e.g. jpo-ode-x.x.x) - -6. Update version number in pom.xml file for the `jpo-geojsonconverter` project if not already done. - -7. Update git submodule references for the ‘jpo-geojsonconverter’ project to point to the tagged commit in jpo-ode master/main branch. - - 7a. Open the jpo-geojsonconverter project in an IDE. - - 7b. Navigate to the jpo-ode directory and run `git checkout tags/jpo-ode-x.x.x` to update the submodule reference. - - 7c. Update the version number in the pom.xml for the jpo-ode-core and jpo-ode-plugins dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - - 7d. Commit these changes to the `release_(year)-(quarter)` branch & push the changes to the remote repository. - - 7e. Ensure these changes pass CI/CD checks before continuing. - -8. Merge `release_(year)-(quarter)` branch into `master/main` branch for the jpo-geojsonconverter project, and create a release with the version number of the release. (e.g. jpo-geojsonconverter-x.x.x) - -9. Update version number in pom.xml file for the `jpo-conflictmonitor` project if not already done. - -10. Update git submodule references for the `jpo-conflictmonitor` project to point to the tagged commit in jpo-geojsonconverter master/main branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the conflictmonitor project. This change will be necessary in the jpo-conflictmonitor/pom.xml, jpo-deduplicator/pom.xml and message-sender/pom.xml files. - - 10a. Open the jpo-conflictmonitor project in an IDE. - - 10b. Navigate to the jpo-geojsonconverter directory and run `git checkout tags/jpo-geojsonconverter-x.x.x` to update the submodule reference. - - 10c. Update the version number in the pom.xml files for the jpo-geojsonconverter and jpo-ode-* dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - - 10d. Commit these changes to the `release_(year)-(quarter)` branch & push the changes to the remote repository. - - 10e. Ensure these changes pass CI/CD checks before continuing. - -11. Merge `release_(year)-(quarter)` branch into `master/main` branch for the jpo-conflictmonitor project, and create a release with the version number of the release. (e.g. jpo-conflictmonitor-x.x.x) - -12. Update version number in pom.xml file for the `jpo-conflictvisualizer` project if not already done. The pom.xml can be found in the `api/jpo-conflictvisualizer-api` directory. - -13. Update git submodule references for the `jpo-conflictvisualizer` project to point to the tagged commit in jpo-conflictmonitor master/main branch. Also update the corresponding version number for the jpo-conflictmonitor dependency in the pom.xml file of the conflictvisualizer project. - - 13a. Open the jpo-conflictvisualizer project in an IDE. - - 13b. Navigate to the jpo-conflictmonitor directory and run `git checkout tags/jpo-conflictmonitor-x.x.x` to update the submodule reference. - - 13c. Update the version number in the pom.xml files for the jpo-conflictmonitor dependency to match the version number of the release. (e.g. 1.0.0) - - 13d. Update the version number in the pom.xml file for the jpo-geojsonconverter dependency to match the version number of the release. (e.g. 1.0.0) - - 13e. Update the version number in the pom.xml file for the jpo-ode dependency to match the version number of the release. (e.g. 1.0.0) - - 13f. Commit these changes to the `release_(year)-(quarter)` branch & push the changes to the remote repository. - - 13g. Ensure these changes pass CI/CD checks before continuing. - -14. Merge `release_(year)-(quarter)` branch into `master/main` branch for the jpo-conflictvisualizer project, and create a release with the version number of the release. (e.g. jpo-conflictvisualizer-x.x.x) - -15. Merge `release_(year)-(quarter)` branch into `master/main` branch for the jpo-cvmanager project, and create a release with the version number of the release. (e.g. jpo-cvmanager-x.x.x) - -#### Create Docker Images -1. Within the github CI/CD release process, use the releases for each application to produce docker images with the same tag name, containing the version number of each app. For example, the jpo-ode release will produce a docker image with the version number of the release (e.g. 1.0.0). - - 1a. The Conflict Visualizer will need two separate images to be created: one for the API and one for Keycloak. - -2. Upload docker images to [DockerHub](https://hub.docker.com/u/usdotjpoode). -3. Tag docker images with the version number of each app. (e.g. 1.0.0) -4. Tag docker images with year and quarter of release. (e.g. 2024-Q2) -5. Tag docker images with 'latest' tag for the most recent release. - -#### Housekeeping -1. Merge master branches into develop branches for each project & verify that CI/CD passes. - -## 4. DockerHub Image Testing -### Description -After the docker images have been built and pushed to DockerHub, they should be tested to ensure that they are functioning as expected. This includes running the docker images locally and verifying that the applications are working correctly. - -### Acceptance Criteria - - [ ] jpo-ode - - [ ] image starts up correctly - - [ ] http endpoint is reachable - - [ ] tims can be successfully pushed to http endpoint - - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) - - [ ] tims - - [ ] bsms - - [ ] ssms - - [ ] srms - - [ ] spats - - [ ] maps - - [ ] psms - - [ ] asn1_codec - - [ ] image starts up correctly - - [ ] program can be configured for decoding successfully - - [ ] program can be configured for encoding successfully - - [ ] messages get decoded as expected - - [ ] messages get encoded as expected - - [ ] jpo-cvdp - - [ ] image starts up correctly - - [ ] messages get consumed as expected - - [ ] BSMs inside geofence are retained - - [ ] BSMs with a partII section are retained - - [ ] BSMs outside geofence are suppressed - - [ ] BSMs above speed range are suppressed - - [ ] BSMs below speed range are suppressed - - [ ] jpo-security-svcs - - [ ] image starts up correctly - - [ ] program can be successfully configured - - [ ] messages can be successfully signed - - [ ] jpo-sdw-depositor - - [ ] image starts up correctly - - [ ] messages are consumed successfully - - [ ] messages are submitted to the SDX successfully - - [ ] jpo-s3-deposit - - [ ] image starts up correctly - - [ ] deposits can be made to one of the destinations successfully - - [ ] jpo-geojsonconverter - - [ ] image starts up correctly - - [ ] program can be configured successfully - - [ ] MAP & SPaT messages are consumed successfully - - [ ] valid ProcessedMaps & ProcessedSpats are outputted - - [ ] jpo-conflictmonitor - - [ ] image starts up correctly - - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) - - [ ] test BSM events - - [ ] test connection of travel event - - [ ] test intersection reference alignment events - - [ ] test lane direction of travel event - - [ ] test MAP broadcast rate event - - [ ] test MAP minimum data event - - [ ] test signal group alignment events - - [ ] test signal state conflict events - - [ ] test SPaT broadcast rate event - - [ ] test SPaT minimum data event - - [ ] test SPaT time change details event - - [ ] test stop line passage events - - [ ] test stop line stop events - - [ ] jpo-conflictvisualizer-api - - [ ] image starts up correctly - - [ ] GUI functions & can display messages - - [ ] jpo-conflictvisualizer-keycloak - - [ ] image starts up correctly - - [ ] authentication verified to work - -At this point the quarterly release process is complete. - -# Standalone Hotfix Release Process -The standalone hotfix release process is used to address critical issues that require immediate attention. This process is similar to the quarterly release process, but is expedited to address the critical issue as quickly as possible. - -It should be noted that not all projects will be necessarily affected by a hotfix. The dependent projects that are affected by the hotfix should be updated and released, while the other projects should remain unchanged. - -There are two over-arching steps to the standalone hotfix release: -1. Code Ready & Release Notes -2. Project Reference Updates & Release Creation - -## 1. Code Ready & Release Notes -### Description -The first step in the standalone hotfix release process is to create a new branch from the `master` branch to address the critical issue. The code changes should be merged into the hotfix branch and release notes should be drafted and added to the `Release_notes.md` file in the `docs` directory of the repository. - -### Acceptance Criteria - - [ ] A new branch `hotfix_(year)-(month)-(day)` is created from `master` for the project requiring the hotfix - - [ ] Patch version number is updated in the `pom.xml` file of the project requiring the hotfix - - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - - [ ] Code changes for hotfix are merged into `hotfix_(year)-(month)-(day)` - -## 2. Project Reference Updates & Release Creation -### Description -After the hotfix branch is created and the code changes are merged, project reference updates should be made to ensure that all projects are referencing the correct versions of other projects. Once project references are updated, the release should be created by merging the `hotfix_(year)-(month)-(day)` branch into the `master` branch and tagging the release with the appropriate version number. Images should be built and pushed to DockerHub for testing. - -### Steps -#### Merging hotfix branches & updating project references -1. Merge `hotfix_(year)-(month)-(day)` branch into `master/main` branch for the project requiring the hotfix. -2. Tag the master/main branch of the project with a git tag that includes the version number of the hotfix. -3. Update git submodule references & pom.xml references for dependent projects to point to tagged commits in projects with updated `master/main` branches. -4. Merge `hotfix_(year)-(month)-(day)` branch into `master/main` branch for the dependent projects, and add a git tag with the version number of the hotfix. - -#### Create Releases & Docker Images -1. Within the github CI/CD release process, use the release tags for each affected application to produce releases and docker images with the same tag name, containing the version number of each app. -2. Upload docker images to [DockerHub](https://hub.docker.com/u/usdotjpoode). -3. Tag docker images with the version number of each app. (e.g. 1.0.0) -4. Tag docker images with year, month, and day of hotfix. (e.g. 2024-04-01) -5. Tag docker images with 'latest' tag for the most recent release. - -#### Housekeeping -1. Merge master branches into develop branches for each affected project & verify that CI/CD passes. - -At this point the standalone hotfix release process is complete. diff --git a/docs/release_process_hotfix.md b/docs/release_process_hotfix.md new file mode 100644 index 000000000..aff557ce5 --- /dev/null +++ b/docs/release_process_hotfix.md @@ -0,0 +1,41 @@ +# JPO Standalone Hotfix Release Process +The standalone hotfix release process is used to address critical issues that require immediate attention. This process is similar to the quarterly release process, but is expedited to address the critical issue as quickly as possible. + +It should be noted that not all projects will be necessarily affected by a hotfix. The dependent projects that are affected by the hotfix should be updated and released, while the other projects should remain unchanged. + +There are two over-arching steps to the standalone hotfix release: +1. Code Ready & Release Notes +2. Project Reference Updates & Release Creation + +## 1. Code Ready & Release Notes +### Description +The first step in the standalone hotfix release process is to create a new branch from the `master` branch to address the critical issue. The code changes should be merged into the hotfix branch and release notes should be drafted and added to the `Release_notes.md` file in the `docs` directory of the repository. + +### Acceptance Criteria + - [ ] A new branch `hotfix/(year)-(month)-(day)` is created from `master` for the project requiring the hotfix + - [ ] Patch version number is updated in the `pom.xml` file of the project requiring the hotfix + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for hotfix are merged into `hotfix/(year)-(month)-(day)` + +## 2. Project Reference Updates & Release Creation +### Description +After the hotfix branch is created and the code changes are merged, project reference updates should be made to ensure that all projects are referencing the correct versions of other projects. Once project references are updated, the release should be created by merging the `hotfix/(year)-(month)-(day)` branch into the `master` branch and tagging the release with the appropriate version number. Images should be built and pushed to DockerHub for testing. + +### Steps +#### Merging hotfix branches & updating project references +1. Merge `hotfix/(year)-(month)-(day)` branch into `master/main` branch for the project requiring the hotfix. +2. Tag the master/main branch of the project with a git tag that includes the version number of the hotfix. +3. Update git submodule references & pom.xml references for dependent projects to point to tagged commits in projects with updated `master/main` branches. +4. Merge `hotfix/(year)-(month)-(day)` branch into `master/main` branch for the dependent projects, and add a git tag with the version number of the hotfix. + +#### Create Releases & Docker Images +1. Within the github CI/CD release process, use the release tags for each affected application to produce releases and docker images with the same tag name, containing the version number of each app. +2. Upload docker images to [DockerHub](https://hub.docker.com/u/usdotjpoode). +3. Tag docker images with the version number of each app. (e.g. 1.0.0) +4. Tag docker images with year, month, and day of hotfix. (e.g. 2024-04-01) +5. Tag docker images with 'latest' tag for the most recent release. + +#### Housekeeping +1. Merge master branches into develop branches for each affected project & verify that CI/CD passes. + +At this point the standalone hotfix release process is complete. diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md new file mode 100644 index 000000000..f38d33e4d --- /dev/null +++ b/docs/release_process_quarterly.md @@ -0,0 +1,467 @@ +# JPO Quarterly Release Process +The quarterly release process is designed to prepare the code for a new release at the end of each quarter. This process involves several steps: creating a new release branch, stabilizing the code, updating project references, building the release, and testing it. These steps are performed sequentially for each project, starting with those that have no dependencies and progressing outward through the dependency chain. + +The order of project releases is as follows: +1. [asn1_codec](#asn1_codec) +2. [jpo-cvdp](#jpo-cvdp) +3. [jpo-security-svcs](#jpo-security-svcs) +4. [jpo-sdw-depositor](#jpo-s3-deposit) +5. [jpo-utils](#jpo-utils) +6. [jpo-ode](#jpo-ode) +7. [jpo-geojsonconverter](#jpo-geojsonconverter) +8. [jpo-conflictmonitor](#jpo-conflictmonitor) +9. [jpo-conflictvisualizer](#jpo-conflictvisualizer) +10. [jpo-deduplicator](#jpo-deduplicator) +11. [jpo-cvmanager](#jpo-cvmanager) +12. [jpo-s3-deposit](#jpo-s3-deposit) + +## asn1_codec +### Prerequisites +None + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] program can be configured for decoding successfully + - [ ] program can be configured for encoding successfully + - [ ] messages get decoded as expected + - [ ] messages get encoded as expected + +### 3. Project Reference Updates & Release Creation + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the asn1_codec project + - [ ] Create a release for the asn1_codec project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. asn1_codec-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the asn1_codec to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] program can be configured for decoding successfully + - [ ] program can be configured for encoding successfully + - [ ] messages get decoded as expected + - [ ] messages get encoded as expected + + +## jpo-cvdp +### Prerequisites +None + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] messages get consumed as expected + - [ ] BSMs inside geofence are retained + - [ ] BSMs with a partII section are retained + - [ ] BSMs outside geofence are suppressed + - [ ] BSMs above speed range are suppressed + - [ ] BSMs below speed range are suppressed + +### 3. Project Reference Updates & Release Creation + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-cvdp project + - [ ] Create a release for the jpo-cvdp project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-cvdp-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-cvdp to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] messages get consumed as expected + - [ ] BSMs inside geofence are retained + - [ ] BSMs with a partII section are retained + - [ ] BSMs outside geofence are suppressed + - [ ] BSMs above speed range are suppressed + - [ ] BSMs below speed range are suppressed + + +## jpo-security-svcs +### Prerequisites +None + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] program starts up correctly + - [ ] program can be successfully configured + - [ ] messages can be successfully signed + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml if not already done + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-security-svcs project + - [ ] Create a release for the jpo-security-svcs project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-security-svcs-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-security-svcs to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] program can be successfully configured + - [ ] messages can be successfully signed + + +## jpo-sdw-depositor +### Prerequisites +None + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] messages are consumed successfully + - [ ] messages are submitted to the SDX successfully + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml if not already done + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-sdw-depositor project + - [ ] Create a release for the jpo-sdw-depositor project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-sdw-depositor-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-sdw-depositor to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] messages are consumed successfully + - [ ] messages are submitted to the SDX successfully + + +## jpo-utils +### Prerequisites +None + +### 1. Code Ready & Release Notes +(TBD) + +### 2. Preliminary Testing +(TBD) + +### 3. Project Reference Updates & Release Creation +(TBD) + +### 4. DockerHub Image Testing +(TBD) + + +## jpo-ode +### Prerequisites + - [ ] asn1_codec release completed + - [ ] jpo-cvdp release completed + - [ ] jpo-security-svcs release completed + - [ ] jpo-sdw-depositor release completed + - [ ] jpo-utils release completed + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] http endpoint is reachable + - [ ] tims can be successfully pushed to http endpoint + - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) + - [ ] tims + - [ ] bsms + - [ ] ssms + - [ ] srms + - [ ] spats + - [ ] maps + - [ ] psms +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml files for the 'jpo-ode' project if not already done. + - [ ] Open the jpo-ode project in an IDE + - [ ] Update the version number in the pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to match the version number of the release. (e.g. 1.0.0) + - [ ] Update the dependencies in pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to the version number set in the previous step. The `jpo-ode-plugins` depends on the `jpo-ode-common` project, and the `jpo-ode-svcs` project depends on the `jpo-ode-core` and `jpo-ode-plugins` projects. These should all be referencing the same version number. (e.g. 1.0.0) + - [ ] Update git submodule references for the ‘jpo-ode’ project to point to tagged commits in projects with updated `master/main` branches. + - [ ] Open the jpo-ode project in an IDE. + - [ ] Navigate to the asn1_codec directory and run `git checkout tags/asn1_codec-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-cvdp directory and run `git checkout tags/jpo-cvdp-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-security-svcs directory and run `git checkout tags/jpo-security-svcs-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-sdw-depositor directory and run `git checkout tags/jpo-sdw-depositor-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. + - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. + - [ ] Ensure these changes pass CI/CD checks before continuing. + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-ode project, and create a release with the version number of the release. (e.g. jpo-ode-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-ode to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] http endpoint is reachable + - [ ] tims can be successfully pushed to http endpoint + - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) + - [ ] tims + - [ ] bsms + - [ ] ssms + - [ ] srms + - [ ] spats + - [ ] maps + - [ ] psms + + +## jpo-geojsonconverter +### Prerequisites + - [ ] jpo-ode release completed + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] program can be configured successfully + - [ ] MAP & SPaT messages are consumed successfully + - [ ] valid ProcessedMaps & ProcessedSpats are outputted + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml file for the `jpo-geojsonconverter` project if not already done. + - [ ] Update git submodule references for the ‘jpo-geojsonconverter’ project to point to the tagged commit in jpo-ode master/main branch. + - [ ] Open the jpo-geojsonconverter project in an IDE. + - [ ] Navigate to the jpo-ode directory and run `git checkout tags/jpo-ode-x.x.x` to update the submodule reference. + - [ ] Update the version number in the pom.xml for the jpo-ode-core and jpo-ode-plugins dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) + - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. + - [ ] Ensure these changes pass CI/CD checks before continuing. + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-geojsonconverter project, and create a release with the version number of the release. (e.g. jpo-geojsonconverter-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-geojsonconverter to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] program can be configured successfully + - [ ] MAP & SPaT messages are consumed successfully + - [ ] valid ProcessedMaps & ProcessedSpats are outputted + + +## jpo-conflictmonitor +### Prerequisites + - [ ] jpo-ode release completed + - [ ] jpo-geojsonconverter release completed + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) + - [ ] test BSM events + - [ ] test connection of travel event + - [ ] test intersection reference alignment events + - [ ] test lane direction of travel event + - [ ] test MAP broadcast rate event + - [ ] test MAP minimum data event + - [ ] test signal group alignment events + - [ ] test signal state conflict events + - [ ] test SPaT broadcast rate event + - [ ] test SPaT minimum data event + - [ ] test SPaT time change details event + - [ ] test stop line passage events + - [ ] test stop line stop events + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml file for the `jpo-conflictmonitor` project if not already done. + - [ ] Update git submodule references for the `jpo-conflictmonitor` project to point to the tagged commit in jpo-geojsonconverter master/main branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the conflictmonitor project. This change will be necessary in the jpo-conflictmonitor/pom.xml, jpo-deduplicator/pom.xml and message-sender/pom.xml files. + - [ ] Open the jpo-conflictmonitor project in an IDE. + - [ ] Navigate to the jpo-geojsonconverter directory and run `git checkout tags/jpo-geojsonconverter-x.x.x` to update the submodule reference. + - [ ] Update the version number in the pom.xml files for the jpo-geojsonconverter and jpo-ode-* dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) + - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. + - [ ] Ensure these changes pass CI/CD checks before continuing. + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-conflictmonitor project, and create a release with the version number of the release. (e.g. jpo-conflictmonitor-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-conflictmonitor to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) + - [ ] test BSM events + - [ ] test connection of travel event + - [ ] test intersection reference alignment events + - [ ] test lane direction of travel event + - [ ] test MAP broadcast rate event + - [ ] test MAP minimum data event + - [ ] test signal group alignment events + - [ ] test signal state conflict events + - [ ] test SPaT broadcast rate event + - [ ] test SPaT minimum data event + - [ ] test SPaT time change details event + - [ ] test stop line passage events + - [ ] test stop line stop events + + +## jpo-conflictvisualizer +### Prerequisites + - [ ] jpo-ode release completed + - [ ] jpo-geojsonconverter release completed + - [ ] jpo-conflictmonitor release completed + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] GUI functions & can display messages + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml file for the `jpo-conflictvisualizer` project if not already done. The pom.xml can be found in the `api/jpo-conflictvisualizer-api` directory. + - [ ] Update git submodule references for the `jpo-conflictvisualizer` project to point to the tagged commit in jpo-conflictmonitor master/main branch. Also update the corresponding version number for the jpo-conflictmonitor dependency in the pom.xml file of the conflictvisualizer project. + - [ ] Open the jpo-conflictvisualizer project in an IDE. + - [ ] Navigate to the jpo-conflictmonitor directory and run `git checkout tags/jpo-conflictmonitor-x.x.x` to update the submodule reference. + - [ ] Update the version number in the pom.xml files for the jpo-conflictmonitor dependency to match the version number of the release. (e.g. 1.0.0) + - [ ] Update the version number in the pom.xml file for the jpo-geojsonconverter dependency to match the version number of the release. (e.g. 1.0.0) + - [ ] Update the version number in the pom.xml file for the jpo-ode dependency to match the version number of the release. (e.g. 1.0.0) + - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. + - [ ] Ensure these changes pass CI/CD checks before continuing. + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-conflictvisualizer project, and create a release with the version number of the release. (e.g. jpo-conflictvisualizer-x.x.x) + - [ ] Create docker images + - [ ] Use the release for the jpo-conflictmonitor to produce docker images containing the version number. + - [ ] One image will be for the API + - [ ] One image will be for Keycloak + - [ ] Upload docker images to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker images with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker images with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker images with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] jpo-conflictvisualizer-api + - [ ] image starts up correctly + - [ ] GUI functions & can display messages + - [ ] jpo-conflictvisualizer-keycloak + - [ ] image starts up correctly + - [ ] authentication verified to work + + +## jpo-deduplicator +### Prerequisites + - [ ] jpo-ode release completed + - [ ] jpo-geojsonconverter release completed + - [ ] jpo-conflictmonitor release completed + +### 1. Code Ready & Release Notes +(TBD) + +### 2. Preliminary Testing +(TBD) + +### 3. Project Reference Updates & Release Creation +(TBD) + +### 4. DockerHub Image Testing +(TBD) + + +## jpo-cvmanager +### Prerequisites + - [ ] jpo-conflictmonitor release completed + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] unit tests pass + - [ ] program starts up correctly + - [ ] webapp can be signed into successfully + +### 3. Project Reference Updates & Release Creation + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-cvmanager project, and create a release with the version number of the release. (e.g. jpo-cvmanager-x.x.x) + + +## jpo-s3-deposit +### Prerequisites +None + +### 1. Code Ready & Release Notes + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` + +### 2. Preliminary Testing + - [ ] code compiles + - [ ] program starts up correctly + - [ ] deposits can be made to one of the destinations successfully + +### 3. Project Reference Updates & Release Creation + - [ ] Update version number in pom.xml if not already done + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-s3-deposit project + - [ ] Create a release for the jpo-s3-deposit project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-s3-deposit-x.x.x) + - [ ] Create docker image + - [ ] Use the release for the jpo-s3-deposit to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. + +### 4. DockerHub Image Testing + - [ ] image starts up correctly + - [ ] deposits can be made to one of the destinations successfully + + +... + +At this point the quarterly release process is complete. \ No newline at end of file From 9006da372b34c84765f95be85839ef477bf7ea34 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 11:08:28 -0700 Subject: [PATCH 03/16] Added contents to `release_process_quarterly.md` for jpo-utils and jpo-deduplicator projects --- docs/release_process_quarterly.md | 44 ++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index f38d33e4d..86dc4511e 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -5,7 +5,7 @@ The order of project releases is as follows: 1. [asn1_codec](#asn1_codec) 2. [jpo-cvdp](#jpo-cvdp) 3. [jpo-security-svcs](#jpo-security-svcs) -4. [jpo-sdw-depositor](#jpo-s3-deposit) +4. [jpo-sdw-depositor](#jpo-sdw-depositor) 5. [jpo-utils](#jpo-utils) 6. [jpo-ode](#jpo-ode) 7. [jpo-geojsonconverter](#jpo-geojsonconverter) @@ -165,17 +165,19 @@ None None ### 1. Code Ready & Release Notes -(TBD) + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` ### 2. Preliminary Testing -(TBD) + - [ ] jpo-jikkou docker image builds + - [ ] jpo-kafka-connect image builds + - [ ] Verify all connectors are created using connect rest api ### 3. Project Reference Updates & Release Creation -(TBD) - -### 4. DockerHub Image Testing -(TBD) - + - [ ] Update version number in pom.xml files for the 'jpo-utils' project if not already done. + - [ ] Create a release for the jpo-utils project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) + - [ ] Merge master branch into develop branch & verify that CI/CD passes. ## jpo-ode ### Prerequisites @@ -400,16 +402,34 @@ None - [ ] jpo-conflictmonitor release completed ### 1. Code Ready & Release Notes -(TBD) + - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory + - [ ] Code changes for release are merged into `develop` + - [ ] A new branch `release/(year)-(quarter)` is created from `develop` ### 2. Preliminary Testing -(TBD) + - [ ] deduplicator code compiles + - [ ] deduplicator unit tests pass + - [ ] program starts up correctly + - [ ] program processes BSM, SPaT, MAP, and TIM messages + - [ ] ProcessedMap, ProcessedSpat, OdeMap, OdeTim, OdeRawEncodedTim, OdeBsm messages are consumed + - [ ] A single message is output for each of the input types ### 3. Project Reference Updates & Release Creation -(TBD) + - [ ] Update version number in pom.xml file for the `jpo-deduplicator` project if not already done. + - [ ] Update git submodule references for the jpo-deduplicator project to point to the tagged commit in jpo-geojsonconverter master/main branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the jpo-deduplicator project. This change will be necessary in the jpo-deduplicator/jpo-deduplicator/pom.xml file. + - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-deduplicator project, update the existing release tag (e.g. jpo-deduplicator-x.x.x) to point to the newly committed version of jpo-deduplicator + - [ ] Create docker image + - [ ] Use the release for the jpo-conflictmonitor to produce docker image with the same tag name, containing the version number. + - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) + - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) + - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) + - [ ] Tag docker image with 'latest' tag for the most recent release. + - [ ] Merge master branch into develop branch & verify that CI/CD passes. ### 4. DockerHub Image Testing -(TBD) + - [ ] image starts up correctly + - [ ] ProcessedMap, ProcessedSpat, OdeMap, OdeTim, OdeRawEncodedTim, OdeBsm messages are consumed + - [ ] A single message is output for each of the input types ## jpo-cvmanager From f8a5b34e5baebbd746da5af52336d950e593e330 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 11:18:35 -0700 Subject: [PATCH 04/16] Changed master/main references in `release_process_quarterly.md` to master --- docs/release_process_quarterly.md | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 86dc4511e..f4fb23e75 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -34,8 +34,8 @@ None - [ ] messages get encoded as expected ### 3. Project Reference Updates & Release Creation - - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the asn1_codec project - - [ ] Create a release for the asn1_codec project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. asn1_codec-x.x.x) + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master’ branch for the asn1_codec project + - [ ] Create a release for the asn1_codec project from the ‘master’ branch and tag the release with the version number of the release. (e.g. asn1_codec-x.x.x) - [ ] Create docker image - [ ] Use the release for the asn1_codec to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -73,8 +73,8 @@ None - [ ] BSMs below speed range are suppressed ### 3. Project Reference Updates & Release Creation - - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-cvdp project - - [ ] Create a release for the jpo-cvdp project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-cvdp-x.x.x) + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master’ branch for the jpo-cvdp project + - [ ] Create a release for the jpo-cvdp project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-cvdp-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-cvdp to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -110,8 +110,8 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml if not already done - - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-security-svcs project - - [ ] Create a release for the jpo-security-svcs project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-security-svcs-x.x.x) + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master’ branch for the jpo-security-svcs project + - [ ] Create a release for the jpo-security-svcs project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-security-svcs-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-security-svcs to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -144,8 +144,8 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml if not already done - - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-sdw-depositor project - - [ ] Create a release for the jpo-sdw-depositor project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-sdw-depositor-x.x.x) + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master’ branch for the jpo-sdw-depositor project + - [ ] Create a release for the jpo-sdw-depositor project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-sdw-depositor-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-sdw-depositor to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -176,7 +176,7 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml files for the 'jpo-utils' project if not already done. - - [ ] Create a release for the jpo-utils project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) + - [ ] Create a release for the jpo-utils project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) - [ ] Merge master branch into develop branch & verify that CI/CD passes. ## jpo-ode @@ -211,7 +211,7 @@ None - [ ] Open the jpo-ode project in an IDE - [ ] Update the version number in the pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to match the version number of the release. (e.g. 1.0.0) - [ ] Update the dependencies in pom.xml files of the jpo-ode-common, jpo-ode-plugins, and jpo-ode-svcs projects to the version number set in the previous step. The `jpo-ode-plugins` depends on the `jpo-ode-common` project, and the `jpo-ode-svcs` project depends on the `jpo-ode-core` and `jpo-ode-plugins` projects. These should all be referencing the same version number. (e.g. 1.0.0) - - [ ] Update git submodule references for the ‘jpo-ode’ project to point to tagged commits in projects with updated `master/main` branches. + - [ ] Update git submodule references for the ‘jpo-ode’ project to point to tagged commits in projects with updated `master` branches. - [ ] Open the jpo-ode project in an IDE. - [ ] Navigate to the asn1_codec directory and run `git checkout tags/asn1_codec-x.x.x` to update the submodule reference. - [ ] Navigate to the jpo-cvdp directory and run `git checkout tags/jpo-cvdp-x.x.x` to update the submodule reference. @@ -220,7 +220,7 @@ None - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-ode project, and create a release with the version number of the release. (e.g. jpo-ode-x.x.x) + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-ode project, and create a release with the version number of the release. (e.g. jpo-ode-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-ode to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -262,13 +262,13 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-geojsonconverter` project if not already done. - - [ ] Update git submodule references for the ‘jpo-geojsonconverter’ project to point to the tagged commit in jpo-ode master/main branch. + - [ ] Update git submodule references for the ‘jpo-geojsonconverter’ project to point to the tagged commit in jpo-ode master branch. - [ ] Open the jpo-geojsonconverter project in an IDE. - [ ] Navigate to the jpo-ode directory and run `git checkout tags/jpo-ode-x.x.x` to update the submodule reference. - [ ] Update the version number in the pom.xml for the jpo-ode-core and jpo-ode-plugins dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-geojsonconverter project, and create a release with the version number of the release. (e.g. jpo-geojsonconverter-x.x.x) + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-geojsonconverter project, and create a release with the version number of the release. (e.g. jpo-geojsonconverter-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-geojsonconverter to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -315,13 +315,13 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-conflictmonitor` project if not already done. - - [ ] Update git submodule references for the `jpo-conflictmonitor` project to point to the tagged commit in jpo-geojsonconverter master/main branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the conflictmonitor project. This change will be necessary in the jpo-conflictmonitor/pom.xml, jpo-deduplicator/pom.xml and message-sender/pom.xml files. + - [ ] Update git submodule references for the `jpo-conflictmonitor` project to point to the tagged commit in jpo-geojsonconverter master branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the conflictmonitor project. This change will be necessary in the jpo-conflictmonitor/pom.xml, jpo-deduplicator/pom.xml and message-sender/pom.xml files. - [ ] Open the jpo-conflictmonitor project in an IDE. - [ ] Navigate to the jpo-geojsonconverter directory and run `git checkout tags/jpo-geojsonconverter-x.x.x` to update the submodule reference. - [ ] Update the version number in the pom.xml files for the jpo-geojsonconverter and jpo-ode-* dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-conflictmonitor project, and create a release with the version number of the release. (e.g. jpo-conflictmonitor-x.x.x) + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-conflictmonitor project, and create a release with the version number of the release. (e.g. jpo-conflictmonitor-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-conflictmonitor to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -367,7 +367,7 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-conflictvisualizer` project if not already done. The pom.xml can be found in the `api/jpo-conflictvisualizer-api` directory. - - [ ] Update git submodule references for the `jpo-conflictvisualizer` project to point to the tagged commit in jpo-conflictmonitor master/main branch. Also update the corresponding version number for the jpo-conflictmonitor dependency in the pom.xml file of the conflictvisualizer project. + - [ ] Update git submodule references for the `jpo-conflictvisualizer` project to point to the tagged commit in jpo-conflictmonitor master branch. Also update the corresponding version number for the jpo-conflictmonitor dependency in the pom.xml file of the conflictvisualizer project. - [ ] Open the jpo-conflictvisualizer project in an IDE. - [ ] Navigate to the jpo-conflictmonitor directory and run `git checkout tags/jpo-conflictmonitor-x.x.x` to update the submodule reference. - [ ] Update the version number in the pom.xml files for the jpo-conflictmonitor dependency to match the version number of the release. (e.g. 1.0.0) @@ -375,7 +375,7 @@ None - [ ] Update the version number in the pom.xml file for the jpo-ode dependency to match the version number of the release. (e.g. 1.0.0) - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-conflictvisualizer project, and create a release with the version number of the release. (e.g. jpo-conflictvisualizer-x.x.x) + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-conflictvisualizer project, and create a release with the version number of the release. (e.g. jpo-conflictvisualizer-x.x.x) - [ ] Create docker images - [ ] Use the release for the jpo-conflictmonitor to produce docker images containing the version number. - [ ] One image will be for the API @@ -416,8 +416,8 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-deduplicator` project if not already done. - - [ ] Update git submodule references for the jpo-deduplicator project to point to the tagged commit in jpo-geojsonconverter master/main branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the jpo-deduplicator project. This change will be necessary in the jpo-deduplicator/jpo-deduplicator/pom.xml file. - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-deduplicator project, update the existing release tag (e.g. jpo-deduplicator-x.x.x) to point to the newly committed version of jpo-deduplicator + - [ ] Update git submodule references for the jpo-deduplicator project to point to the tagged commit in jpo-geojsonconverter master branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the jpo-deduplicator project. This change will be necessary in the jpo-deduplicator/jpo-deduplicator/pom.xml file. + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-deduplicator project, update the existing release tag (e.g. jpo-deduplicator-x.x.x) to point to the newly committed version of jpo-deduplicator - [ ] Create docker image - [ ] Use the release for the jpo-conflictmonitor to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) @@ -448,7 +448,7 @@ None - [ ] webapp can be signed into successfully ### 3. Project Reference Updates & Release Creation - - [ ] Merge `release/(year)-(quarter)` branch into `master/main` branch for the jpo-cvmanager project, and create a release with the version number of the release. (e.g. jpo-cvmanager-x.x.x) + - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-cvmanager project, and create a release with the version number of the release. (e.g. jpo-cvmanager-x.x.x) ## jpo-s3-deposit @@ -467,8 +467,8 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml if not already done - - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master/main’ branch for the jpo-s3-deposit project - - [ ] Create a release for the jpo-s3-deposit project from the ‘master/main’ branch and tag the release with the version number of the release. (e.g. jpo-s3-deposit-x.x.x) + - [ ] Merge ‘release/(year)-(quarter)’ branch into ‘master’ branch for the jpo-s3-deposit project + - [ ] Create a release for the jpo-s3-deposit project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-s3-deposit-x.x.x) - [ ] Create docker image - [ ] Use the release for the jpo-s3-deposit to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) From 8c2b94194fc6cb80934486c8b9530a0c56ba656f Mon Sep 17 00:00:00 2001 From: Daniel McCoy Stephenson Date: Fri, 24 Jan 2025 11:24:51 -0700 Subject: [PATCH 05/16] Update docs/release_process_quarterly.md Co-authored-by: Michael7371 <40476797+Michael7371@users.noreply.github.com> --- docs/release_process_quarterly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index f4fb23e75..d394dfc1a 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -257,7 +257,7 @@ None - [ ] unit tests pass - [ ] program starts up correctly - [ ] program can be configured successfully - - [ ] MAP & SPaT messages are consumed successfully + - [ ] MAP, SPaT, & BSM messages are consumed successfully - [ ] valid ProcessedMaps & ProcessedSpats are outputted ### 3. Project Reference Updates & Release Creation From 14b057e4c34102e95fdb5ee812fd1fc33632be0e Mon Sep 17 00:00:00 2001 From: Daniel McCoy Stephenson Date: Fri, 24 Jan 2025 11:25:13 -0700 Subject: [PATCH 06/16] Update docs/release_process_quarterly.md Co-authored-by: Michael7371 <40476797+Michael7371@users.noreply.github.com> --- docs/release_process_quarterly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index d394dfc1a..95513dcb9 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -258,7 +258,7 @@ None - [ ] program starts up correctly - [ ] program can be configured successfully - [ ] MAP, SPaT, & BSM messages are consumed successfully - - [ ] valid ProcessedMaps & ProcessedSpats are outputted + - [ ] valid ProcessedMaps, ProcessedSpats, and ProcessedMaps are outputted ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-geojsonconverter` project if not already done. From 59fc133594987053f5d0cfba34d573bf8a771908 Mon Sep 17 00:00:00 2001 From: Daniel McCoy Stephenson Date: Fri, 24 Jan 2025 11:25:26 -0700 Subject: [PATCH 07/16] Update docs/release_process_quarterly.md Co-authored-by: Michael7371 <40476797+Michael7371@users.noreply.github.com> --- docs/release_process_quarterly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 95513dcb9..2f2cace9e 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -280,7 +280,7 @@ None ### 4. DockerHub Image Testing - [ ] image starts up correctly - [ ] program can be configured successfully - - [ ] MAP & SPaT messages are consumed successfully + - [ ] MAP, SPaT, & BSM messages are consumed successfully - [ ] valid ProcessedMaps & ProcessedSpats are outputted From 00272720e6d528bf0b0de693601ad3d6977f7d29 Mon Sep 17 00:00:00 2001 From: Daniel McCoy Stephenson Date: Fri, 24 Jan 2025 11:25:46 -0700 Subject: [PATCH 08/16] Update docs/release_process_quarterly.md Co-authored-by: Michael7371 <40476797+Michael7371@users.noreply.github.com> --- docs/release_process_quarterly.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 2f2cace9e..d023650ea 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -281,7 +281,7 @@ None - [ ] image starts up correctly - [ ] program can be configured successfully - [ ] MAP, SPaT, & BSM messages are consumed successfully - - [ ] valid ProcessedMaps & ProcessedSpats are outputted + - [ ] valid ProcessedMaps, ProcessedSpats, and ProcessedMaps are outputted ## jpo-conflictmonitor From a22eeaa068ae18ddc0cf309ed5d5c05204e463af Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 11:27:54 -0700 Subject: [PATCH 09/16] Replaced jpo-ode submodule reference with jpo-utils submodule reference in step 3 of jpo-geojsonconverter quarterly release process --- docs/release_process_quarterly.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index f4fb23e75..f0f07029e 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -262,9 +262,9 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-geojsonconverter` project if not already done. - - [ ] Update git submodule references for the ‘jpo-geojsonconverter’ project to point to the tagged commit in jpo-ode master branch. + - [ ] Update git submodule & artifact references for the ‘jpo-geojsonconverter’ project. - [ ] Open the jpo-geojsonconverter project in an IDE. - - [ ] Navigate to the jpo-ode directory and run `git checkout tags/jpo-ode-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. - [ ] Update the version number in the pom.xml for the jpo-ode-core and jpo-ode-plugins dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. From 3474ea0b1389c39758c656a52347867af857dcf0 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 15:45:43 -0700 Subject: [PATCH 10/16] Updated jpo-conflictmonitor and jpo-conflictvisualizer sections in `release_process_quarterly.md` to implement suggestions --- docs/release_process_quarterly.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 0629e246c..641fc0885 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -315,10 +315,12 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-conflictmonitor` project if not already done. - - [ ] Update git submodule references for the `jpo-conflictmonitor` project to point to the tagged commit in jpo-geojsonconverter master branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the conflictmonitor project. This change will be necessary in the jpo-conflictmonitor/pom.xml, jpo-deduplicator/pom.xml and message-sender/pom.xml files. + - [ ] Update git submodule & artifact references for the ‘jpo-conflictmonitor project. - [ ] Open the jpo-conflictmonitor project in an IDE. - - [ ] Navigate to the jpo-geojsonconverter directory and run `git checkout tags/jpo-geojsonconverter-x.x.x` to update the submodule reference. + - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. - [ ] Update the version number in the pom.xml files for the jpo-geojsonconverter and jpo-ode-* dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) + - [ ] Update the jpo-conflictmonitor/pom.xml + - [ ] Update the message-sender/pom.xml - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-conflictmonitor project, and create a release with the version number of the release. (e.g. jpo-conflictmonitor-x.x.x) @@ -367,12 +369,10 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-conflictvisualizer` project if not already done. The pom.xml can be found in the `api/jpo-conflictvisualizer-api` directory. - - [ ] Update git submodule references for the `jpo-conflictvisualizer` project to point to the tagged commit in jpo-conflictmonitor master branch. Also update the corresponding version number for the jpo-conflictmonitor dependency in the pom.xml file of the conflictvisualizer project. + - [ ] Update git submodule & artifact references for the 'jpo-conflictvisualizer' project. - [ ] Open the jpo-conflictvisualizer project in an IDE. - - [ ] Navigate to the jpo-conflictmonitor directory and run `git checkout tags/jpo-conflictmonitor-x.x.x` to update the submodule reference. - - [ ] Update the version number in the pom.xml files for the jpo-conflictmonitor dependency to match the version number of the release. (e.g. 1.0.0) - - [ ] Update the version number in the pom.xml file for the jpo-geojsonconverter dependency to match the version number of the release. (e.g. 1.0.0) - - [ ] Update the version number in the pom.xml file for the jpo-ode dependency to match the version number of the release. (e.g. 1.0.0) + - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. + - [ ] Update the version number in the api/jpo-conflictvisualizer-api/pom.xml file for the jpo-geojsonconverter, jpo-ode-*, and jpo-conflictmonitor dependencies to match the version number of the corresponding releases. (e.g. 1.0.0) - [ ] Commit these changes to the `release/(year)-(quarter)` branch & push the changes to the remote repository. - [ ] Ensure these changes pass CI/CD checks before continuing. - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-conflictvisualizer project, and create a release with the version number of the release. (e.g. jpo-conflictvisualizer-x.x.x) From c1e46983a22df935e138fdc0a1be7cf2546fd2da Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Fri, 24 Jan 2025 15:50:31 -0700 Subject: [PATCH 11/16] Updated acronym capitalization in `release_process_quarterly.md` --- docs/release_process_quarterly.md | 51 ++++++++++++++++--------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 641fc0885..156e0707a 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -179,6 +179,7 @@ None - [ ] Create a release for the jpo-utils project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) - [ ] Merge master branch into develop branch & verify that CI/CD passes. + ## jpo-ode ### Prerequisites - [ ] asn1_codec release completed @@ -197,15 +198,15 @@ None - [ ] unit tests pass - [ ] program starts up correctly - [ ] http endpoint is reachable - - [ ] tims can be successfully pushed to http endpoint + - [ ] TIMs can be successfully pushed to http endpoint - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) - - [ ] tims - - [ ] bsms - - [ ] ssms - - [ ] srms - - [ ] spats - - [ ] maps - - [ ] psms + - [ ] TIMs + - [ ] BSMs + - [ ] SSMs + - [ ] SRMs + - [ ] SPaTs + - [ ] Maps + - [ ] PSMs ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml files for the 'jpo-ode' project if not already done. - [ ] Open the jpo-ode project in an IDE @@ -232,15 +233,15 @@ None ### 4. DockerHub Image Testing - [ ] image starts up correctly - [ ] http endpoint is reachable - - [ ] tims can be successfully pushed to http endpoint + - [ ] TIMs can be successfully pushed to http endpoint - [ ] capable of ingesting messages via udp (see scripts in `scripts/tests` directory) - - [ ] tims - - [ ] bsms - - [ ] ssms - - [ ] srms - - [ ] spats - - [ ] maps - - [ ] psms + - [ ] TIMs + - [ ] BSMs + - [ ] SSMs + - [ ] SRMs + - [ ] SPaTs + - [ ] Maps + - [ ] PSMs ## jpo-geojsonconverter @@ -257,7 +258,7 @@ None - [ ] unit tests pass - [ ] program starts up correctly - [ ] program can be configured successfully - - [ ] MAP, SPaT, & BSM messages are consumed successfully + - [ ] Map, SPaT, & BSM messages are consumed successfully - [ ] valid ProcessedMaps, ProcessedSpats, and ProcessedMaps are outputted ### 3. Project Reference Updates & Release Creation @@ -280,7 +281,7 @@ None ### 4. DockerHub Image Testing - [ ] image starts up correctly - [ ] program can be configured successfully - - [ ] MAP, SPaT, & BSM messages are consumed successfully + - [ ] Map, SPaT, & BSM messages are consumed successfully - [ ] valid ProcessedMaps, ProcessedSpats, and ProcessedMaps are outputted @@ -298,13 +299,13 @@ None - [ ] code compiles - [ ] unit tests pass - [ ] program starts up correctly - - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) + - [ ] program processes SpAT/Map/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) - [ ] test BSM events - [ ] test connection of travel event - [ ] test intersection reference alignment events - [ ] test lane direction of travel event - - [ ] test MAP broadcast rate event - - [ ] test MAP minimum data event + - [ ] test Map broadcast rate event + - [ ] test Map minimum data event - [ ] test signal group alignment events - [ ] test signal state conflict events - [ ] test SPaT broadcast rate event @@ -334,13 +335,13 @@ None ### 4. DockerHub Image Testing - [ ] image starts up correctly - - [ ] program processes SpAT/MAP/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) + - [ ] program processes SpAT/Map/BSM messages and generates events as expected (see https://github.com/usdot-jpo-ode/jpo-conflictmonitor/wiki/Integration-Tests) - [ ] test BSM events - [ ] test connection of travel event - [ ] test intersection reference alignment events - [ ] test lane direction of travel event - - [ ] test MAP broadcast rate event - - [ ] test MAP minimum data event + - [ ] test Map broadcast rate event + - [ ] test Map minimum data event - [ ] test signal group alignment events - [ ] test signal state conflict events - [ ] test SPaT broadcast rate event @@ -410,7 +411,7 @@ None - [ ] deduplicator code compiles - [ ] deduplicator unit tests pass - [ ] program starts up correctly - - [ ] program processes BSM, SPaT, MAP, and TIM messages + - [ ] program processes BSM, SPaT, Map, and TIM messages - [ ] ProcessedMap, ProcessedSpat, OdeMap, OdeTim, OdeRawEncodedTim, OdeBsm messages are consumed - [ ] A single message is output for each of the input types From a99a4a37dd46fe472ef5e08258598862c8aa8f70 Mon Sep 17 00:00:00 2001 From: Michael7371 <40476797+Michael7371@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:28:17 -0700 Subject: [PATCH 12/16] adding documentation for the utils dockerhub image testing --- docs/release_process_quarterly.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 156e0707a..9772c9279 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -179,6 +179,16 @@ None - [ ] Create a release for the jpo-utils project from the ‘master’ branch and tag the release with the version number of the release. (e.g. jpo-utils-x.x.x) - [ ] Merge master branch into develop branch & verify that CI/CD passes. +### 4. DockerHub Image Testing + - [ ] Change the image references in `docker-compose-kafka.yml` and `docker-compose-connect.yml` to the version number of the release. (e.g. 1.0.0) + - [ ] `docker-compose-kafka.yml` services changed: + - [ ] kafka-setup image: `usdotjpoode/jpo-jikkou:1.0.0` + - [ ] `docker-compose-connect.yml` services changed: + - [ ] kafka-connect image: `usdotjpoode/jpo-kafka-connect:1.0.0` + - [ ] kafka-connect-setup image: `usdotjpoode/jpo-jikkou:1.0.0` + - [ ] jpo-jikkou docker image runs successfully + - [ ] jpo-kafka-connect image runs successfully + - [ ] Verify all connectors are created using connect rest api ## jpo-ode ### Prerequisites From 7871bdf7d5501f30a1023e6cc217577d43faa237 Mon Sep 17 00:00:00 2001 From: Michael7371 <40476797+Michael7371@users.noreply.github.com> Date: Fri, 24 Jan 2025 16:38:31 -0700 Subject: [PATCH 13/16] update to the deduplicator release notes --- docs/release_process_quarterly.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 9772c9279..19ab45b2f 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -427,10 +427,13 @@ None ### 3. Project Reference Updates & Release Creation - [ ] Update version number in pom.xml file for the `jpo-deduplicator` project if not already done. - - [ ] Update git submodule references for the jpo-deduplicator project to point to the tagged commit in jpo-geojsonconverter master branch. Also update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the jpo-deduplicator project. This change will be necessary in the jpo-deduplicator/jpo-deduplicator/pom.xml file. + - [ ] Update the corresponding version number for the jpo-geojsonconverter and jpo-ode-* dependencies in the pom.xml files of the jpo-deduplicator project. This change will be necessary in the jpo-deduplicator/pom.xml file. + - [ ] Update git submodule references for the ‘jpo-ode’ project to point to tagged commits in projects with updated `master` branches. + - [ ] Open the jpo-ode project in an IDE. + - [ ] Navigate to the jpo-utils directory and run `git checkout tags/jpo-utils-x.x.x` to update the submodule reference. - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-deduplicator project, update the existing release tag (e.g. jpo-deduplicator-x.x.x) to point to the newly committed version of jpo-deduplicator - [ ] Create docker image - - [ ] Use the release for the jpo-conflictmonitor to produce docker image with the same tag name, containing the version number. + - [ ] Use the release for the jpo-deduplicator to produce docker image with the same tag name, containing the version number. - [ ] Upload docker image to [DockerHub](https://hub.docker.com/u/usdotjpoode) - [ ] Tag docker image with the version number of the app. (e.g. 1.0.0) - [ ] Tag docker image with year and quarter of release. (e.g. 2024-Q2) From 02d46f3ab390ae1bbf94deb3bde25071dc580621 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Mon, 27 Jan 2025 09:07:04 -0700 Subject: [PATCH 14/16] Added dependency type info to `release_process_quarterly.md` --- docs/release_process_quarterly.md | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index 19ab45b2f..db8cd814a 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -198,6 +198,15 @@ None - [ ] jpo-sdw-depositor release completed - [ ] jpo-utils release completed +#### Dependency Types +| Dependency | Type | +| --- | --- | +| asn1_codec | Git Submodule | +| jpo-cvdp | Git Submodule | +| jpo-security-svcs | Git Submodule | +| jpo-sdw-depositor | Git Submodule | +| jpo-utils | Git Submodule | + ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - [ ] Code changes for release are merged into `develop` @@ -258,6 +267,11 @@ None ### Prerequisites - [ ] jpo-ode release completed +#### Dependency Types +| Dependency | Type | +| --- | --- | +| jpo-ode | Maven, DockerHub | + ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - [ ] Code changes for release are merged into `develop` @@ -300,6 +314,12 @@ None - [ ] jpo-ode release completed - [ ] jpo-geojsonconverter release completed +#### Dependency Types +| Dependency | Type | +| --- | --- | +| jpo-ode | Maven, DockerHub | +| jpo-geojsonconverter | Maven, DockerHub | + ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - [ ] Code changes for release are merged into `develop` @@ -366,6 +386,15 @@ None - [ ] jpo-ode release completed - [ ] jpo-geojsonconverter release completed - [ ] jpo-conflictmonitor release completed + - [ ] asn1_codec release completed + +#### Dependency Types +| Dependency | Type | +| --- | --- | +| jpo-ode | Maven, DockerHub | +| jpo-geojsonconverter | Maven, DockerHub | +| jpo-conflictmonitor | Maven, DockerHub | +| asn1_codec | Git Submodule | ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory @@ -412,6 +441,13 @@ None - [ ] jpo-geojsonconverter release completed - [ ] jpo-conflictmonitor release completed +#### Dependency Types +| Dependency | Type | +| --- | --- | +| jpo-ode | Maven | +| jpo-geojsonconverter | Maven | +| jpo-conflictmonitor | Maven | + ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory - [ ] Code changes for release are merged into `develop` @@ -448,7 +484,18 @@ None ## jpo-cvmanager ### Prerequisites + - [ ] jpo-ode release completed - [ ] jpo-conflictmonitor release completed + - [ ] jpo-geojsonconverter release completed + - [ ] asn1_codec release completed + +#### Dependency Types +| Dependency | Type | +| --- | --- | +| jpo-ode | Maven | +| jpo-geojsonconverter | Maven | +| jpo-conflictmonitor | Maven | +| asn1_codec | Git Submodule | ### 1. Code Ready & Release Notes - [ ] Release notes drafted & added to `Release_notes.md` file in `docs` directory From 71d7471df6a684ad8b708e490981d44ed10a1d17 Mon Sep 17 00:00:00 2001 From: dmccoystephenson Date: Mon, 27 Jan 2025 09:09:18 -0700 Subject: [PATCH 15/16] Updated preliminary testing acceptance criteria for jpo-cvmanager --- docs/release_process_quarterly.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/release_process_quarterly.md b/docs/release_process_quarterly.md index db8cd814a..7e32e0b8e 100644 --- a/docs/release_process_quarterly.md +++ b/docs/release_process_quarterly.md @@ -505,8 +505,15 @@ None ### 2. Preliminary Testing - [ ] code compiles - [ ] unit tests pass + - [ ] python api + - [ ] webapp + - [ ] intersection api - [ ] program starts up correctly - [ ] webapp can be signed into successfully + - [ ] map page displays RSUs status information, RSU filtering, and displaying message counts in side window + heatmap + - [ ] map page displays work zones (wzdx), intersection locations, and supports historic BSM queries + - [ ] intersection map displays live and historic data + - [ ] intersection dashboard displays notifications and assessments ### 3. Project Reference Updates & Release Creation - [ ] Merge `release/(year)-(quarter)` branch into `master` branch for the jpo-cvmanager project, and create a release with the version number of the release. (e.g. jpo-cvmanager-x.x.x) From 96ce6f1b8e2e60402183cc7ff20b4aa9a6cc64f4 Mon Sep 17 00:00:00 2001 From: Matt Cook Date: Mon, 27 Jan 2025 11:12:20 -0700 Subject: [PATCH 16/16] chore: add missing env vars to docker-compose --- docker-compose.yml | 3 +++ sample.env | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 613862fc8..ddf8da8f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -47,6 +47,9 @@ services: KAFKA_RETRIES: ${KAFKA_RETRIES} KAFKA_BATCH_SIZE: ${KAFKA_BATCH_SIZE} KAFKA_COMPRESSION_TYPE: ${KAFKA_COMPRESSION_TYPE} + KAFKA_KEY_SERIALIZER: ${KAFKA_KEY_SERIALIZER} + KAFKA_VALUE_SERIALIZER: ${KAFKA_VALUE_SERIALIZER} + KAFKA_PARTITIONER_CLASS: ${KAFKA_PARTITIONER_CLASS} ODE_TIM_INGEST_MONITORING_ENABLED: ${ODE_TIM_INGEST_MONITORING_ENABLED} ODE_TIM_INGEST_MONITORING_INTERVAL: ${ODE_TIM_INGEST_MONITORING_INTERVAL} depends_on: diff --git a/sample.env b/sample.env index a69004442..87278e05d 100644 --- a/sample.env +++ b/sample.env @@ -75,9 +75,9 @@ KAFKA_BATCH_SIZE=16384 KAFKA_BUFFER_MEMORY=33554432 KAFKA_ACKS="all" KAFKA_RETRIES=0 -KAFKA_KEY_SERIALIZER= -KAFKA_VALUE_SERIALIZER= -KAFKA_PARTITIONER_CLASS= +KAFKA_KEY_SERIALIZER="org.apache.kafka.common.serialization.StringSerializer" +KAFKA_VALUE_SERIALIZER="org.apache.kafka.common.serialization.StringSerializer" +KAFKA_PARTITIONER_CLASS="org.apache.kafka.clients.producer.internals.DefaultPartitioner" # Confluent Cloud API access credentials (only required if KAFKA_TYPE is set to "CONFLUENT") CONFLUENT_KEY=