Skip to content

Commit

Permalink
Merge branch 'main' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
bischoffz authored Apr 15, 2024
2 parents 42c64a4 + 7a01f76 commit f5b2a8c
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 58 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/dev_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
push:
branches: [ "dev" ]
pull_request:
branches-ignore: ["main", "master"]
branches-ignore: ["main"]

jobs:
build:
Expand All @@ -33,14 +33,17 @@ jobs:
echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
- name: Checkout Util
if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
uses: actions/checkout@v4
with:
repository: HHS/ASPR-ms-util
path: util
ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }}
ref: dev

- name: Build Util
if: ${{ endsWith(env.util_version, 'SNAPSHOT') }}
run: mvn clean install -DskipTests --file util/pom.xml

- name: Build GCM
run: mvn clean install --file pom.xml

Expand Down
23 changes: 5 additions & 18 deletions .github/workflows/release_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@
# separate terms of service, privacy policy, and support
# documentation.

name: Create Release
name: GCM Release Build

on:
push:
tags:
- 'v*'
paths-ignore:
- 'README.md'
- 'LICENSE'
branches: ["main"]

jobs:
Expand All @@ -28,20 +29,7 @@ jobs:
with:
java-version: '17'
distribution: 'temurin'

- name: Get Util Version
run: |
echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"

- name: Checkout Util
uses: actions/checkout@v4
with:
repository: HHS/ASPR-ms-util
path: util
ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }}

- name: Build Util
run: mvn clean install -DskipTests --file util/pom.xml
- name: Build GCM
run: mvn clean install -Prelease --file pom.xml

Expand All @@ -52,8 +40,7 @@ jobs:
- name: Make Release
uses: ncipollo/release-action@v1
with:
artifacts: "simulation/target/simulation-${{ env.version }}*.jar"
prerelease: ${{ endsWith(env.version, 'SNAPSHOT') || contains(env.version, '-RC') }}
artifacts: "simulation/target/simulation-${{ env.version }}*"
name: "v${{ env.version }}"
tag: "v${{ env.version }}"
generateReleaseNotes: true
Expand Down
15 changes: 1 addition & 14 deletions .github/workflows/release_pr_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# separate terms of service, privacy policy, and support
# documentation.

name: Pull Request for Main Build
name: GCM Release Pull Request Build

on:
pull_request:
Expand All @@ -25,19 +25,6 @@ jobs:
java-version: '17'
distribution: 'temurin'

- name: Get Util Version
run: |
echo "util_version=v$(mvn help:evaluate -Dexpression=util.version -q -DforceStdout --file pom.xml)" >> "$GITHUB_ENV"
- name: Checkout Util
uses: actions/checkout@v4
with:
repository: HHS/ASPR-ms-util
path: util
ref: ${{ (endsWith(env.util_version, 'SNAPSHOT') && 'dev') || env.util_version }}

- name: Build Util
run: mvn clean install -DskipTests --file util/pom.xml
- name: Build GCM
run: mvn clean install -Prelease --file pom.xml

Expand Down
52 changes: 28 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,57 +4,61 @@
[![GitHub Workflow Status (with event)][dev-build-shield]][dev-build-url]
[![GitHub Workflow Status (with event)][release-build-shield]][release-build-url]



# General Computational Model
This repository contains the source code for the General Computational Model herein reffered to as GCM, along with a set of lessons that have been created to aide new users with using this model.
The General Computational Model (GCM) is a Java based simulation framework for building disease progression models.

## What is GCM?
GCM is a Java based simulation framework for building disease progression models.
Users of GCM should have a general familiarity with Java and object oriented programming and would benefit from some exposure to event based modeling.

This repository contains the source code, along with a set of lessons that have been created to aide new users with using this simulation framework.

## License
Distributed under the GPLv3 License. See [LICENSE](LICENSE) for more information.

Please read the [HHS vulnerability discloure](https://www.hhs.gov/vulnerability-disclosure-policy/index.html).

## Overview
There are 3 core tenants to GCM.

### Simulation
GCM is an event based simulation composed of data managers, actors and an event engine.
The data managers contain the state of the simulation and generate events when that state changes.
GCM is an event based simulation framework composed of data managers, actors and an event engine.
<p>The data managers contain the state of the simulation and generate events when that state changes.
The actors contain the business logic of your model and act on the data managers.
The engine transports events generated by the data managers to any data managers and actors that subscribe to those events.
<p>The engine transports events generated by the data managers to any data managers and actors that subscribe to those events.

### Plugins
Data managers and actors are organized into plugins. A GCM model is thus composed of the core simulation and a suite of plugins.
The plugin architecture provides for the scalable reuse of concepts and capabilities between models.
GCM is provided with a set of existing plugins that define many of the concepts useful to a broad range of models such as the management of people, their properties, social group structures and the like.

The modeler is free to compose a model from their choice of plugins.
<p>The plugin architecture provides for the scalable reuse of concepts and capabilities between models.
<p>GCM is provided with a set of existing plugins that define many of the concepts useful to a broad range of models such as the management of people, their properties, and social group structures.
<p>The modeler is free to compose a model from their choice of plugins.

### Experiment
GCM also provides an experiment management system.
Each plugin contains zero to many data objects that define the initial state of its actors and data managers. Each such data object may be altered freely.
The complete set of all combinations (scenarios) of the variant plugin data objects form an experiment and a separate simulation instance is executed for each combination.
<p>GCM also provides an experiment management system.
<p>Each plugin contains zero to many data objects that define the initial state of its actors and data managers. Each such data object may be altered freely.
<p>The complete set of all combinations (scenarios) of the variant plugin data objects form an experiment and a separate simulation instance is executed for each combination.

## Building from Source

## Requirements
### Requirements
- Maven 3.8.x
- Java 17
- Your favroite IDE for developing Java projects
- Modeling Utilities located [here](https://github.com/HHS/ASPR-ms-util)

## Building
Once you have cloned the repo and imported it into your favorite IDE, navigate into the root directory on the command line.
Once there, run the following command: ```mvn clean install```
That's all there is to building the project.
*Note that Modeling Utilities is in Maven Central, so there is no need to clone and build it.

### Building
To build this project:
- Clone the repo
- open a command line terminal
- navigate to the root folder of this project
- run the command: `mvn clean install`

## Documentation
The documentation can be found at [https://hhs.github.io/ASPR-8/](https://hhs.github.io/ASPR-8/)

## Lessons
The documentation contains lessons which the code can be found in [lessons](lessons).

## License
Distributed under the GPLv3 License. See [LICENSE](LICENSE) for more information.


<!-- MARKDOWN LINKS & IMAGES -->
[contributors-shield]: https://img.shields.io/github/contributors/HHS/ASPR-8
[contributors-url]: https://github.com/HHS/ASPR-8/graphs/contributors
Expand Down

0 comments on commit f5b2a8c

Please sign in to comment.