Skip to content

Commit

Permalink
Update Readme, update release workflow [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
bischoffz committed Apr 14, 2024
1 parent 6018355 commit f00c050
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 20 deletions.
5 changes: 3 additions & 2 deletions .github/workflows/release_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ name: Taskit Release Build

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

jobs:
Expand Down
60 changes: 42 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,86 @@
[![GitHub Workflow Status (with event)][build-shield]][build-url]

# Translation And Serialization Toolkit
A toolkit made to help with converting between input files and Java Objects. This will herein be reffered to as Taskit.

## What is Taskit?
Taskit is a library that was created to faciliate converting from various input files into Java Objects. This is espcially useful for Simulation Models such as [GCM](https://github.com/HHS/ASPR-8).
The Translation and Serialization Tookkil (Taskit) is a library that was created to faciliate converting from various input files into Java Objects. This is espcially useful for Simulation Models such as [GCM](https://github.com/HHS/ASPR-8).

Currently there is only 1 supported serialzation format, and that is protobuf. Other formats such as binary will follow in the future.

As of v3.2.0, this project is in Maven Central.

## 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).

## Usage
To use this project in your project, simply add the following dependency to your `dependencies` section of your pom.xml file.
```
<dependency>
<groupId>gov.hhs.aspr.ms.taskit</groupId>
<artifactId>core</artifactId>
<version>3.2.1</version>
</dependency>
```

To use the protobuf library of taskit, simply add the following dependency to your `dependencies` section of your pom.xml file.
```
<dependency>
<groupId>gov.hhs.aspr.ms.taskit</groupId>
<artifactId>protobuf</artifactId>
<version>3.2.1</version>
</dependency>
```

## Overview
Currently Taskit is composed of a Core library and a Protobuf library.

### Core
[Core](core) is the base taskit engine and contains the root level functionality that drives the translation and serialization.
This library contains the base TranslationController class, the base TranslationSpec class and the base TranslationEngine class.

#### Translation Controller
#### TranslationController
The TranslationController class handles the delgation of reading/writing from/to input/output files.

#### TranslationSpec
The TranslationSpec class is an abstract class that must be impleneted to define how to convert between two Java Types, generally the input Java type and the application Java Type.

#### TranslationEngine
The TranslationEngine class delgates the converting of one type to another as well as doing the actual reading/writing as delegated by the TranslationController.
The TranslationEngine class delgates the converting of one type to another via TranslationSpecs as well as doing the actual reading/writing as delegated by the TranslationController.

### Protobuf
[Protobuf](protobuf) is a version of taskit made specifically to be used with protobuf.
This library builds on the Core library described above and adds a distinct TranslationEngine and TranslationSpecs needed to fully support protobuf.

#### Supported types
This library supports the following proto message types:
- all message types
- messages
- enums
- Any
- basic types (int32, double, etc)
- Date

See [TestObject](protobuf/src/main/proto/gov/hhs/aspr/ms/taskit/protobuf/testobject.proto) for an example proto file.

## Requirements
## Building from Source

### Requirements
- Maven 3.8.x
- Java 17
- Favorite IDE for Java development
- Modeling Util located [here](https://github.com/HHS/ASPR-ms-util)

*Note that Modeling Util is in Maven Central, so there is no need to download and build it.

## Building
To build, navigate into the root directory and run the command ```mvn clean install```
### 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
Documentation has yet to be created. In the interim, the code is mostly commented and the javadocs do provide good detail with regards to method and class expectations.

## 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).


<!-- MARKDOWN LINKS & IMAGES -->
[contributors-shield]: https://img.shields.io/github/contributors/HHS/ASPR-ms-taskit
[contributors-url]: https://github.com/HHS/ASPR-ms-taskit/graphs/contributors
Expand All @@ -70,5 +95,4 @@ Please read the [HHS vulnerability discloure](https://www.hhs.gov/vulnerability-
[dev-build-shield]: https://img.shields.io/github/actions/workflow/status/HHS/ASPR-ms-taskit/dev_build.yml?label=dev-build
[dev-build-url]: https://github.com/HHS/ASPR-ms-taskit/actions/workflows/dev_build.yml
[build-shield]: https://img.shields.io/github/actions/workflow/status/HHS/ASPR-ms-taskit/release_build.yml?label=release-build
[build-url]: https://github.com/HHS/ASPR-ms-taskit/actions/workflows/release_build.yml.yml

[build-url]: https://github.com/HHS/ASPR-ms-taskit/actions/workflows/release_build.yml.yml

0 comments on commit f00c050

Please sign in to comment.