Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
6dfd494
update the pom to save the jar using the bundle and the default and t…
dschwartz-ftadvisory Jul 7, 2025
eb42b7d
store types in Python by namespace, by type name
dschwartz-ftadvisory Jul 14, 2025
97d912b
Merge pull request #25 from finos/develop
dschwartz-ftadvisory Jul 14, 2025
c3acd1c
github action to build and tag from rosetta.bundle
dschwartz-ftadvisory Jul 14, 2025
e378145
Merge pull request #1 from dschwartznyc/cdm-deployment
dschwartz-ftadvisory Jul 14, 2025
6a7f66c
add integration notes
dschwartz-ftadvisory Jul 16, 2025
d57778f
update to .gitignore
dschwartz-ftadvisory Jul 16, 2025
5bbeacb
cdm integration prep
dschwartz-ftadvisory Jul 22, 2025
a57fda0
update bundle and dsl
dschwartz-ftadvisory Jul 22, 2025
14fa826
Update pom.xml
dschwartz-ftadvisory Jul 22, 2025
cfcfb2b
Merge pull request #2 from finos/main
dschwartz-ftadvisory Jul 22, 2025
f4ec030
Merge pull request #3 from dschwartznyc/cdm-deployment
dschwartz-ftadvisory Jul 23, 2025
a6df828
clean up github actions
dschwartz-ftadvisory Jul 23, 2025
fa57903
pom clean up
dschwartz-ftadvisory Jul 23, 2025
34be4a3
Merge pull request #4 from dschwartznyc/cdm-deployment
dschwartz-ftadvisory Jul 23, 2025
95febcc
updated release notes
dschwartz-ftadvisory Jul 23, 2025
c1a7616
update to release notes
dschwartz-ftadvisory Jul 28, 2025
bb3490c
remove dependencies on the Rosetta Bundle
dschwartz-ftadvisory Jul 28, 2025
b631976
Merge pull request #29 from dschwartznyc/main
dschwartz-ftadvisory Jul 28, 2025
c0949e3
update to use dependabot
dschwartz-ftadvisory Jul 28, 2025
3eb9075
dependabot
dschwartz-ftadvisory Jul 28, 2025
783fcb1
Merge branch 'main' into cdm-deployment
dschwartz-ftadvisory Jul 28, 2025
ec691c7
Merge pull request #1 from dschwartznyc/cdm-deployment
dschwartz-ftadvisory Jul 28, 2025
5b6036a
shift from dependabot to renovate
dschwartz-ftadvisory Jul 29, 2025
9f491cb
Merge pull request #2 from dschwartznyc/cdm-deployment
dschwartz-ftadvisory Jul 29, 2025
b6332f6
update renovate config
dschwartz-ftadvisory Jul 29, 2025
b86d8ee
Update renovate.yml
dschwartz-ftadvisory Jul 29, 2025
d0fb444
Update renovate.yml
dschwartz-ftadvisory Jul 29, 2025
6fdaa63
Update renovate.yml
dschwartz-ftadvisory Jul 29, 2025
40288c6
Create renovate.json
dschwartz-ftadvisory Jul 29, 2025
647f2d2
Update renovate.yml
dschwartz-ftadvisory Jul 29, 2025
f5932b5
Update renovate.json
dschwartz-ftadvisory Jul 29, 2025
7a1e2e8
remove top level renovate
dschwartz-ftadvisory Jul 29, 2025
adae16c
update renovate
dschwartz-ftadvisory Jul 29, 2025
b96d2f0
update renovate
dschwartz-ftadvisory Jul 29, 2025
d1d4cf7
Update renovate.json
dschwartz-ftadvisory Jul 29, 2025
32dca0c
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
6ff81bd
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
38a738c
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
e801a81
Update pom.xml
dschwartz-ftadvisory Jul 30, 2025
de840bc
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
bd8dc33
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
60581ef
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
08efb08
Update renovate.yml
dschwartz-ftadvisory Jul 30, 2025
b563cfd
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
7d7b9d1
Update renovate.yml
dschwartz-ftadvisory Jul 30, 2025
dc6692e
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
5e94ac7
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
60f2189
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
3107508
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
799950b
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
6e46f00
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
58f6551
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
a3ec532
Update renovate.json
dschwartz-ftadvisory Jul 30, 2025
2514c8d
todo clean up
dschwartz-ftadvisory Jul 31, 2025
fa73fec
added cli
dschwartz-ftadvisory Jul 31, 2025
79fa3ba
cleanup
dschwartz-ftadvisory Aug 1, 2025
6f45bf9
clean up
dschwartz-ftadvisory Aug 4, 2025
a23688b
clean up pom
dschwartz-ftadvisory Aug 4, 2025
c719ee3
cleanup pom
dschwartz-ftadvisory Aug 4, 2025
c52e82a
Merge pull request #30 from dschwartznyc/main
dschwartz-ftadvisory Aug 4, 2025
41a9e7f
Merge pull request #31 from finos/main
dschwartz-ftadvisory Aug 4, 2025
01bc4e1
pom and github action clean up
dschwartz-ftadvisory Aug 4, 2025
cfaa36f
added javadoc plugin
dschwartz-ftadvisory Aug 4, 2025
f3b8e6f
First step in removing dependency on rosetta.common
dschwartz-ftadvisory Aug 6, 2025
9afa76e
Removed dependency on rune.common
dschwartz-ftadvisory Aug 6, 2025
c002617
Update RELEASE.md
dschwartz-ftadvisory Aug 6, 2025
12b489c
Clean up CLI
dschwartz-ftadvisory Aug 6, 2025
8f3d5a2
Merge branch 'cdm-deployment' of https://github.com/finos/rune-python…
dschwartz-ftadvisory Aug 6, 2025
46fc574
clean up cdm build and unit tests
dschwartz-ftadvisory Aug 7, 2025
8a75b5a
Merge pull request #32 from finos/cdm-deployment
dschwartz-ftadvisory Aug 7, 2025
d282f05
Merge pull request #28 from dschwartznyc/develop
dschwartz-ftadvisory Aug 7, 2025
d32c8e5
test github actions changes
dschwartz-ftadvisory Aug 7, 2025
9a1d338
Merge branch 'main' of https://github.com/dschwartznyc/rune-python-ge…
dschwartz-ftadvisory Aug 7, 2025
a87f410
update
dschwartz-ftadvisory Aug 7, 2025
c23540d
Merge pull request #29 from dschwartznyc/main
dschwartz-ftadvisory Aug 7, 2025
459de9f
update .gitignore
dschwartz-ftadvisory Aug 7, 2025
8b25f21
Merge pull request #30 from dschwartznyc/develop
dschwartz-ftadvisory Aug 7, 2025
ff878af
clean up
dschwartz-ftadvisory Aug 7, 2025
38e1a80
Merge pull request #31 from dschwartznyc/temp
dschwartz-ftadvisory Aug 7, 2025
5f91114
Merge pull request #32 from dschwartznyc/develop
dschwartz-ftadvisory Aug 7, 2025
daf995d
Update README.md
dschwartz-ftadvisory Aug 7, 2025
b934604
Merge pull request #33 from dschwartznyc/dschwartznyc-patch-1
dschwartz-ftadvisory Aug 7, 2025
07d2476
readme update
dschwartz-ftadvisory Aug 7, 2025
88d8383
Merge branch 'main' into develop
dschwartz-ftadvisory Aug 7, 2025
1c89b05
Merge pull request #34 from dschwartznyc/develop
dschwartz-ftadvisory Aug 7, 2025
3a91f4e
dsl version revert to 9.62.0
dschwartz-ftadvisory Aug 7, 2025
9a3001c
Update renovate.json
dschwartz-ftadvisory Aug 7, 2025
544a4a7
Merge pull request #35 from dschwartznyc/dschwartznyc-patch-1
dschwartz-ftadvisory Aug 7, 2025
e5bada3
Update renovate.json
dschwartz-ftadvisory Aug 7, 2025
f5fde7a
Merge pull request #42 from dschwartznyc/dschwartznyc-patch-1
dschwartz-ftadvisory Aug 7, 2025
ca409cd
update dsl version
dschwartz-ftadvisory Aug 7, 2025
777bf4e
Update dependency com.regnosys.rosetta:com.regnosys.rosetta to v9.64.0
github-actions[bot] Aug 8, 2025
2320a4c
Merge pull request #43 from dschwartznyc/renovate/rosetta.dsl.version
dschwartz-ftadvisory Aug 8, 2025
c1dbcdc
update readme
dschwartz-ftadvisory Aug 8, 2025
647e2f6
Merge branch 'main' of https://github.com/dschwartznyc/rune-python-ge…
dschwartz-ftadvisory Aug 8, 2025
52dc200
Merge pull request #33 from dschwartznyc/main
dschwartz-ftadvisory Aug 8, 2025
35979d6
Merge pull request #1 from dschwartznyc/develop
dschwartz-ftadvisory Aug 8, 2025
35e444f
clean up shading
dschwartz-ftadvisory Aug 8, 2025
707a82a
Merge pull request #35 from dschwartznyc/main
dschwartz-ftadvisory Aug 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"prConcurrentLimit": 10,
"prHourlyLimit": 20,
"packageRules": [
{
"description": "Update the Maven property rosetta.dsl.version when com.regnosys.rosetta releases a new version",
"matchManagers": ["maven"],
"matchPackageNames": [
"com.regnosys.rosetta:com.regnosys.rosetta",
"rosetta.dsl.version"
],
"enabled": true
},
{
"description": "Disable all that are not maven AND not those names",
"matchManagers": ["maven"],
"excludePackageNames": [
"com.regnosys.rosetta:com.regnosys.rosetta",
"rosetta.dsl.version"
],
"enabled": false
}
]
}
34 changes: 2 additions & 32 deletions .github/workflows/build-and-test-main.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Build and Test JAR
name: Build and Test JAR on Main Branch

on:
push:
Expand All @@ -16,26 +8,4 @@ on:

jobs:
build_and_test:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Run Python Unit Tests
run: |
chmod +x build/setup_python_env.sh
chmod +x test/python_unit_tests/setup_unit_test_env.sh
chmod +x test/python_unit_tests/run_python_unit_tests.sh
test/python_unit_tests/run_python_unit_tests.sh
uses: ./.github/workflows/build-and-test.yml
29 changes: 29 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Build and Test (Reusable)

on:
workflow_call:

jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build with Maven
run: mvn -B package -Psign-artifacts --file pom.xml
- name: Run Python Unit Tests
run: |
chmod +x test/python_setup/setup_python_env.sh
chmod +x test/python_setup/cleanup_python_env.sh
chmod +x test/python_unit_tests/setup_unit_test_env.sh
chmod +x test/python_unit_tests/run_python_unit_tests.sh
test/python_unit_tests/run_python_unit_tests.sh
5 changes: 3 additions & 2 deletions .github/workflows/create-tagged-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Build JAR on Tag
name: Create Tagged Release
# Build JAR and create tagged release

on:
push:
Expand Down Expand Up @@ -36,7 +37,7 @@ jobs:
TAG_NAME=${GITHUB_REF#refs/tags/}
echo "Updating POM version to $TAG_NAME"
mvn -B versions:set -DnewVersion=$TAG_NAME
mvn -B package
mvn -B package -Psign-artifacts

- name: Revert POM changes
run: git checkout -- pom.xml
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/renovate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# This workflow runs Renovate Bot on a schedule or on demand.
# It uses the configuration file located at .github/renovate.json

name: Renovate
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Runs the workflow on a schedule (e.g., every day at 2 AM)
schedule:
- cron: '0 2 * * *'

jobs:
renovate:
runs-on: ubuntu-latest
# Grants the GITHUB_TOKEN the necessary permissions for Renovate to read repository content and create pull requests.
permissions:
contents: write
pull-requests: write
steps:
# Checks out the repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
# Runs the Renovate GitHub Action
- name: Renovate
# Using a slightly newer version of the action
uses: renovatebot/github-action@v40.2.2
with:
# The token is required to create pull requests.
token: ${{ secrets.GITHUB_TOKEN }}
# Specifies the path to your Renovate configuration file.
configurationFile: .github/renovate.json
env:
RENOVATE_REPOSITORIES: ${{ github.repository }} # This tells Renovate to scan the current repo
# Add a build and test job that depends on renovate
build_and_test:
needs: renovate
uses: ./.github/workflows/build-and-test.yml
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,5 +55,6 @@ __pycache__
**/rune.runtime-*.*.*-py3-none-any.whl
**/test_helper-0.0.0-py3-none-any.whl
**/test/serialization_tests/rune-common
**/build/common-domain-model
**/build/resources/serialization
**/test/cdm_tests/common-domain-model/
src/generated/
*.todo
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Before making a contribution, please take the following steps:
1. Check whether there's already an open issue related to your proposed contribution. If there is, join the discussion and propose your contribution there.
2. If there isn't already a relevant issue, create one, describing your contribution and the problem you're trying to solve.
3. Respond to any questions or suggestions raised in the issue by other developers.
4. Fork the project repository and prepare your proposed contribution.
4. Fork the project repository and prepare your proposed contribution. The contribution must include unit tests to confirm that it behaves as expected.
5. Submit a pull request.

NOTE: All contributors must have a contributor license agreement (CLA) on file with FINOS before their pull requests will be merged. Please review the FINOS [contribution requirements](https://community.finos.org/docs/governance/Software-Projects/contribution-compliance-requirements) and submit (or have your employer submit) the required CLA before submitting a pull request.
Expand Down
7 changes: 3 additions & 4 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
Rune Python Generator - FINOS
Copyright 2023-2025 CLOUDRISK Limited (info@cloudrisk.uk) and FT Advisory LLC (info@ftadvisory.co)

This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/).
# Rune Python Generator - FINOS

Copyright 2023-2025 CLOUDRISK Limited (<info@cloudrisk.uk>) and FT Advisory LLC (<info@ftadvisory.co>)

This product includes software developed at the Fintech Open Source Foundation (<https://www.finos.org/>).
50 changes: 40 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[![FINOS - Incubating](https://cdn.jsdelivr.net/gh/finos/contrib-toolbox@master/images/badge-incubating.svg)](https://community.finos.org/docs/governance/Software-Projects/stages/incubating)[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/10725/badge)](https://www.bestpractices.dev/projects/10725)[![Maven CI](https://github.com/finos/rune-python-generator/actions/workflows/cve-scanning.yml/badge.svg)](https://github.com/finos/rune-python-generator/actions/workflows/cve-scanning.yml)


<img align="right" width="15%" src="https://www.finos.org/hubfs/FINOS/finos-logo/FINOS_Icon_Wordmark_Name_RGB_horizontal.png">
<img align="right" width="15%" alt="FINOS" src="https://www.finos.org/hubfs/FINOS/finos-logo/FINOS_Icon_Wordmark_Name_RGB_horizontal.png">

# Rune Python Generator

Expand All @@ -10,6 +9,7 @@
The generated Python relies upon the [RunePythonRuntime](https://github.com/finos/rune-python-runtime) library and requires Python version 3.11+.

## Release Notes

The features of the current version can be found in the [release notes](./RELEASE.md)

## Repository Organization
Expand All @@ -26,41 +26,59 @@ The features of the current version can be found in the [release notes](./RELEAS
## Development setup

### Setup for developers

This guide is meant for everyone who wants to contribute to the Rune Python Generator and needs to get things up and running.

Detailed build and testing instructions can be found in [BUILDANDTEST.md](./BUILDANDTEST.md)

If this guide does not work for you, be sure to raise an issue. This way we can help you figure out what the problem is and update this guide to prevent the same problem for future users.

### 1. Building with Maven

Start by cloning the project: `git clone https://github.com/finos/rune-python-generator`

Our project runs with Java 21. Make sure that your Maven also uses this version of Java by running `mvn -v`.

To build the project, run `mvn clean install`.
To build the project, run `mvn clean package`.

#### UNIT Testing

Building the project using Maven will run JUNIT-based unit tests. All tests should pass. To run the Python unit tests follow the instructions in [BUILDANDTEST.md](./BUILDANDTEST.md)

### 2. Setting things up in Eclipse

#### Install Eclipse IDE for Java and DSL Developers

Install version `2025-06` of the "Eclipse IDE for Java and DSL Developers" using the [Eclipse Installer](https://www.eclipse.org/downloads/packages/installer). You might have to enable "Advanced Mode" in the settings of the Eclipse Installer to install a specific version.

#### Configure Eclipse with the right version of Java

Xtend files cannot be built with any Java version later than 21. In Eclipse, go to Settings... > Java > Installed JREs and make sure the checked JRE points to a Java version of 21.

#### Install the Checkstyle plugin

We use [Checkstyle](https://checkstyle.sourceforge.io/) for enforcing good coding practices. The Eclipse plugin for Checkstyle can be found here: [https://checkstyle.org/eclipse-cs/#!/](https://checkstyle.org/eclipse-cs/#!/).

#### Open the project in Eclipse

Go to Import... > Existing Maven Project, select the right folder, click Finish.

### Standalone CLI

The generator includes a standalone CLI which can be invoked to generate Python from a single file or from directory. To invoke the CLI, first build the project and then:

```sh
java -cp target/python-0.0.0.main-SNAPSHOT.jar com.regnosys.rosetta.generator.python.PythonCodeGeneratorCLI
```

### To Generate CDM from Rune

Use this script to generated the Python version of CDM

```sh
build/build_cdm.sh
test/cdm_tests/cdm_setup/build_cdm.sh
```

The script will use the CDM from the branch specified in the file (E.G. master) of the [FINOS Repo](https://github.com/finos/common-domain-model) and generate a wheel in the project directory `target/python-cdm`

To use a different version of CDM, update CDM_VERSION in the script.
Expand All @@ -69,21 +87,33 @@ To use a different version of CDM, update CDM_VERSION in the script.

The Roadmap will be aligned to the [Rune-DSL](https://github.com/finos/rune-dsl/) and [CDM](https://github.com/finos/common-domain-model/blob/master/ROADMAP.md) roadmaps.

### Rune-DSL Updates

Renovate will generate a PR when the version of the DSL has been updated at com.regnosys.rosetta:com.regnosys.rosetta. The PR will clarify whether the change succsessfully builds and passes JUNIT and Python unit testing.

Any maintainer can merge changes that successfully build and pass the tests. To make the revised generator available to CDM, post merge a new release tagged with the version # of the updated DSL will be required.

Build or testing failures should be escalated to [@plamen-neykov](https://github.com/plamen-neykov) or [@dschwartznyc](https://github.com/dschwartznyc) for remediation.

## Contributing

For any questions, bugs or feature requests please open an [issue](https://github.com/finos/rune-python-generator/issues)
For anything else please send an email to {project mailing list}.

To submit a contribution:

1. Fork it (<https://github.com/finos/rune-python-generator/fork>)
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Read our [contribution guidelines](.github/CONTRIBUTING.md) and [Community Code of Conduct](https://www.finos.org/code-of-conduct)
4. Commit your changes (`git commit -am 'Add some fooBar'`)
5. Push to the branch (`git push origin feature/fooBar`)
6. Create a new Pull Request

_NOTE:_ Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
*_NOTE:* Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR
who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged
and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.

Unsure if you are covered under an existing CCLA? Email help@finos.org*
If you are unsure if you are covered under an existing CCLA send an email to <help@finos.org>

## Get in touch with the Rune Python Generator Team

Expand All @@ -93,7 +123,7 @@ Unsure if you are covered under an existing CCLA? Email help@finos.org*

## Governance

This project implements https://community.finos.org/docs/governance/#open-source-software-projects
This project implements <https://community.finos.org/docs/governance/#open-source-software-projects>

## License

Expand All @@ -105,8 +135,8 @@ SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)

## Contributors

- [CLOUDRISK Limited](https://www.cloudrisk.uk), email: info@cloudrisk.com
- [FT Advisory LLC](https://www.ftadvisory.co), email: info@ftadvisory.co
- [TradeHeader SL](https://www.tradeheader.com), email: info@tradeheader.com
- [CLOUDRISK Limited](https://www.cloudrisk.uk), email: <info@cloudrisk.com>
- [FT Advisory LLC](https://www.ftadvisory.co), email: <info@ftadvisory.co>
- [TradeHeader SL](https://www.tradeheader.com), email: <info@tradeheader.com>

SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)
28 changes: 19 additions & 9 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,27 @@

_What is being released?_

This release adds support for meta data and for serialization / deserialization consistent with the [serialization specifications in CDM issue #3236](https://github.com/finos/common-domain-model/issues/3236)
This release adds support for metadata and for serialization / deserialization consistent with the [serialization specifications in CDM issue #3236](https://github.com/finos/common-domain-model/issues/3236)

Also included is support for circular dependencies and increased testing of operators.
Also included is support for:

# Reading From and Writing To a String
- circular Type definitions
- increased testing of operators
- generating Python across multiple namespaces
- Command line (CLI) generation of Python from a Rune source file or directory. To execute the CLI (assuming
the default process wherein the JAR is built in the target directory):

```bash
java -cp target/python-0.0.0.main-SNAPSHOT.jar com.regnosys.rosetta.generator.python.PythonCodeGeneratorCLI -s [rune source files] -t [target directory for generated Python]
```

## Reading From and Writing To a String

The generated Python code can deserialize and serialize an object.

## Deserializing from a string
### Deserializing from a string

To deserialize from a string and create a object of the model specified in the string invoke the function:
To deserialize from a string and create an object of the model specified in the string invoke the function:

`BaseDataClass.rune_deserialize` with the following parameters

Expand All @@ -27,9 +37,11 @@ To deserialize from a string and create a object of the model specified in the s
Returns:
BaseModel: The Rune model.

To serialize from an object ("[obj]") of a generated class, invoke the function:
### Serialize to a string

To serialize from a Rune object ("obj"), invoke the function:

`[obj].rune_serialize` with the following parameters:
`obj.rune_serialize` with the following parameters:

validate_model (bool, optional): Validate that the model passes all Rune defined constraings prior to serialization. Setting to False allows serialization of an invalid Model. Defaults to True.

Expand Down Expand Up @@ -59,7 +71,5 @@ To serialize from an object ("[obj]") of a generated class, invoke the function:

exclude_none (bool, optional): Determines whether to exclude fields that have a value of `None`. If True, fields set to None will be included. Defaults to False.


Returns:
A string.

Loading