Skip to content

Commit bf9e3eb

Browse files
Merge pull request #22 from finos/main
align develop with main
2 parents f57f21b + 719f582 commit bf9e3eb

33 files changed

+161
-115
lines changed

.github/workflows/create-tagged-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
TAG_NAME=${GITHUB_REF#refs/tags/}
3737
echo "Updating POM version to $TAG_NAME"
3838
mvn -B versions:set -DnewVersion=$TAG_NAME
39-
mvn -B package --file pom.xml -DskipTests
39+
mvn -B package
4040
4141
- name: Revert POM changes
4242
run: git checkout -- pom.xml

.github/workflows/cve-scanning.yml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@ on:
55
branches:
66
- main
77

8+
# Cancel previous jobs
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
11+
cancel-in-progress: true
12+
813
jobs:
9-
depchecktest:
14+
depchecktest:
1015
runs-on: ubuntu-latest
1116
name: depecheck_test
1217
steps:
@@ -18,23 +23,24 @@ jobs:
1823
java-version: '21'
1924
distribution: 'temurin'
2025
- name: Build with Maven
21-
run: mvn install -DskipTests
26+
run: mvn -B clean package -DskipTests
2227
working-directory: .
2328
- name: Depcheck
24-
uses: dependency-check/Dependency-Check_Action@1.1.0
29+
uses: dependency-check/Dependency-Check_Action@main
2530
id: Depcheck
2631
env:
2732
JAVA_HOME: /opt/jdk
2833
with:
2934
project: ${{github.repository}}
3035
path: '.'
3136
format: 'HTML'
32-
out: 'reports' # this is the default, no need to specify unless you wish to override it
3337
args: >
3438
--suppression ./allow-list.xml
3539
--failOnCVSS 7
3640
--enableRetired
37-
41+
--exclude **/*-javadoc.jar
42+
--exclude **/*-sources.jar
43+
--out ./reports
3844
- name: Upload Test results
3945
if: ${{ always() }}
4046
uses: actions/upload-artifact@v4

.github/workflows/license-scanning-maven.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ jobs:
5252
runs-on: ubuntu-latest
5353
steps:
5454
- uses: actions/checkout@v4
55-
- name: Set up JDK 17
55+
- name: Set up JDK 21
5656
uses: actions/setup-java@v4
5757
with:
58-
java-version: 17
58+
java-version: 21
5959
cache: maven
6060
distribution: 'adopt'
6161
- name: Install XQ
@@ -77,4 +77,4 @@ jobs:
7777
uses: actions/upload-artifact@v4
7878
with:
7979
name: license-xml-report
80-
path: './**/${{ env.REPORT_PATH }}'
80+
path: './**/${{ env.REPORT_PATH }}'

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@
186186
same "printed page" as the copyright notice for easier
187187
identification within third-party archives.
188188

189-
Copyright 2025 CLOUDRISK Limited and FT Advisory LLC
189+
Copyright 2023-2025 CLOUDRISK Limited and FT Advisory LLC
190190

191191
Licensed under the Apache License, Version 2.0 (the "License");
192192
you may not use this file except in compliance with the License.

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Rune Python Generator - FINOS
2-
Copyright 2025 - 2025 CLOUDRISK Limited ([email protected]) and FT Advisory LLC ([email protected])
2+
Copyright 2023-2025 CLOUDRISK Limited ([email protected]) and FT Advisory LLC ([email protected])
33

44
This product includes software developed at the Fintech Open Source Foundation (https://www.finos.org/).
55

README.md

Lines changed: 69 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
[![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)
1+
[![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/regnosys/rune-python-generator/actions/workflows/cve-scanning.yml/badge.svg)](https://github.com/regnosys/rune-python-generator/actions/workflows/cve-scanning.yml)
22

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

56
# Rune Python Generator
67

7-
This repository creates a generator that will produce Python from a model developed using [Rune](https://github.com/finos/rune-dsl). The generated Python relies upon the [RunePythonRuntime]() library.
8-
9-
The Python package requires Python version 3.11+.
8+
*Rune Python Generator* - the generator enables creation of Python from [Rune](https://github.com/finos/rune-dsl). It supports the full Rune type syntax, and, as described in [EXPRESSION_SUPPORT.md](./EXPRESSION_SUPPORT.md), expression coverage is comprehensive. The generator does not yet fully implement function generation.
9+
10+
The generated Python relies upon the [RunePythonRuntime](https://github.com/regnosys/rune-python-runtime) library and requires Python version 3.11+.
11+
12+
## Release Notes
13+
The features of the current version can be found in the [release notes](./RELEASE.md)
1014

1115
## Repository Organization
1216

@@ -19,19 +23,56 @@ The Python package requires Python version 3.11+.
1923
- `build/build_cdm.sh` - used to create a Python package from code generated using CDM Rune definitions
2024
- `test` - Python unit tests and scripts to run the tests
2125

22-
## Installation Steps
26+
## Development setup
27+
28+
### Setup for developers
29+
This guide is meant for everyone who wants to contribute to the Rune Python Generator and needs to get things up and running.
30+
2331
Detailed build and testing instructions can be found in [BUILDANDTEST.md](./BUILDANDTEST.md)
2432

25-
A quick overview follows:
33+
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.
2634

27-
1. Make a local copy of this repo
28-
2. Build and test using Maven
29-
```
30-
cd rune-python-generator
31-
mvn -s clean install
35+
### 1. Building with Maven
36+
Start by cloning the project: `git clone https://github.com/regnosys/rune-python-generator`
37+
38+
Our project runs with Java 21. Make sure that your Maven also uses this version of Java by running `mvn -v`.
39+
40+
To build the project, run `mvn clean install`.
41+
42+
#### UNIT Testing
43+
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)
44+
45+
### 2. Setting things up in Eclipse
46+
#### Install Eclipse IDE for Java and DSL Developers
47+
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.
48+
49+
#### Configure Eclipse with the right version of Java
50+
Xtend files cannot be build 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.
51+
52+
#### Install the Checkstyle plugin
53+
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/#!/).
54+
55+
#### Open the project in Eclipse
56+
Go to Import... > Existing Maven Project, select the right folder, click Finish.
57+
58+
### To Generate CDM from Rune
59+
60+
Use this script to generated the Python version of CDM
61+
```sh
62+
build/build_cdm.sh
3263
```
33-
All the tests should pass.
64+
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`
65+
66+
To use a different version of CDM, update CDM_VERSION in the script.
67+
68+
## Roadmap
69+
70+
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.
3471

72+
## Contributors
73+
- [CLOUDRISK Limited](https://www.cloudrisk.uk), email: [email protected]
74+
- [FT Advisory LLC](https://www.ftadvisory.co), email: [email protected]
75+
- [TradeHeader SL](https://www.tradeheader.com), email: [email protected]
3576

3677
## Contributing
3778
For any questions, bugs or feature requests please open an [issue](https://github.com/regnosys/rune-python-generator/issues)
@@ -45,29 +86,32 @@ To submit a contribution:
4586
5. Push to the branch (`git push origin feature/fooBar`)
4687
6. Create a new Pull Request
4788

48-
# To Generate CDM from Rune
89+
_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.
4990

50-
Use this script to generated the Python version of CDM
51-
```sh
52-
build/build_cdm.sh
53-
```
54-
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`
91+
Unsure if you are covered under an existing CCLA? Email [email protected]*
5592

56-
To use a different version of CDM, update CDM_VERSION in the script.
93+
## Get in touch with the Rune Python Generator Team
5794

58-
## Contributors
59-
- [CLOUDRISK Limited](https://www.cloudrisk.uk), email: [email protected]
60-
- [FT Advisory LLC](https://www.ftadvisory.co), email: [email protected]
61-
- [TradeHeader SL](https://www.tradeheader.com), email: [email protected]
95+
Get in touch with the Rune team by creating a [GitHub issue](https://github.com/REGnosys/rune-python-generator/issues/new) and labelling it with "help wanted".
96+
97+
We encourage the community to get in touch via the [FINOS Slack](https://www.finos.org/blog/finos-announces-new-community-slack).
6298

6399
## Governance
64100

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

67103
## License
68104

69-
Copyright 2019 Fintech Open Source Foundation
105+
Copyright 2023-2025 CLOUDRISK Limited and FT Advisory LLC
70106

71107
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
72108

73109
SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)
110+
111+
## Contributors
112+
113+
- [CLOUDRISK Limited](https://www.cloudrisk.uk), email: [email protected]
114+
- [FT Advisory LLC](https://www.ftadvisory.co), email: [email protected]
115+
- [TradeHeader SL](https://www.tradeheader.com), email: [email protected]
116+
117+
SPDX-License-Identifier: [Apache-2.0](https://spdx.org/licenses/Apache-2.0)

allow-list.xml

Lines changed: 5 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,11 @@
1616
-->
1717

1818
<suppressions xmlns="https://jeremylong.github.io/DependencyCheck/dependency-suppression.1.3.xsd">
19-
<suppress>
20-
<notes><![CDATA[
21-
This CVE only affects projects fetching p2 repo's over HTTP, but we use HTTPS.
22-
]]></notes>
23-
<cve>CVE-2021-41033</cve>
24-
</suppress>
25-
<suppress>
26-
<notes><![CDATA[
27-
We are using Reload4j, which is a secure drop-in replacement for log4j.
28-
]]></notes>
29-
<cve>CVE-2020-9493</cve>
30-
</suppress>
3119
<suppress>
32-
<notes><![CDATA[
33-
We are using Reload4j, which is a secure drop-in replacement for log4j.
34-
]]></notes>
35-
<cve>CVE-2022-23307</cve>
20+
<notes><![CDATA[
21+
This CVE only affects projects fetching p2 repo's over HTTP, but we use HTTPS.
22+
]]></notes>
23+
<cve>CVE-2021-41033</cve>
3624
</suppress>
3725
<suppress>
3826
<notes><![CDATA[
@@ -47,36 +35,4 @@
4735
]]></notes>
4836
<cve>CVE-2019-10249</cve>
4937
</suppress>
50-
<suppress>
51-
<notes><![CDATA[
52-
Calling the method `com.google.common.io.Files.createTempDir` is a vulnerability,
53-
but we do not call it.
54-
]]></notes>
55-
<cve>CVE-2020-8908</cve>
56-
</suppress>
57-
<suppress>
58-
<notes><![CDATA[
59-
We are not creating SVG's with Batik of Apache XML Graphics.
60-
]]></notes>
61-
<cve>CVE-2022-41704</cve>
62-
</suppress>
63-
<suppress>
64-
<notes><![CDATA[
65-
We are not creating SVG's with Batik of Apache XML Graphics.
66-
]]></notes>
67-
<cve>CVE-2022-42890</cve>
68-
</suppress>
69-
<suppress>
70-
<notes><![CDATA[
71-
This CVE is not about org.eclipse.e4.emf.xpath. It seems the check is
72-
too loose.
73-
]]></notes>
74-
<cve>CVE-2022-41852</cve>
75-
</suppress>
76-
<suppress>
77-
<notes><![CDATA[
78-
This only affects milestone and RC versions, but we use a stable release.
79-
]]></notes>
80-
<cve>CVE-2020-15824</cve>
81-
</suppress>
82-
</suppressions>
38+
</suppressions>

build/build_cdm.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
#!/bin/bash
2+
#
3+
# utility script - builds CDM using PythonFilesGeneratorTest::generateCDMPythonFromRosetta
4+
# to use:
5+
# 1. remove disabled test by commenting @Disabled
6+
# 2. specify which version of CDM to pull in get_cdm.sh
7+
# 3. run this script
8+
#
29
function error
310
{
411
echo

build/get_cdm.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
#!/bin/bash
2+
#
3+
# utility script - pulls the version of CDM specified by CDM_VERSION
4+
# supports build_cdm.sh
5+
#
6+
27
function error
38
{
49
echo

pom.xml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154

155155
<apache.commons.lang.version>3.13.0</apache.commons.lang.version>
156156
<apache.commons.text.version>1.11.0</apache.commons.text.version>
157-
<commons-io.version>2.11.0</commons-io.version>
157+
<commons-io.version>2.19.0</commons-io.version>
158158
<guava.version>32.0.1-jre</guava.version>
159159

160160
<!-- Release -->
@@ -163,7 +163,7 @@
163163
<stagingTimeoutInMinutes>20</stagingTimeoutInMinutes>
164164

165165
<rosetta.dsl.version>9.54.0</rosetta.dsl.version>
166-
<rosetta.bundle.version>11.63.1</rosetta.bundle.version>
166+
<rosetta.bundle.version>11.64.0</rosetta.bundle.version>
167167

168168
<xtext.version>2.38.0</xtext.version>
169169
<guice.version>6.0.0</guice.version>
@@ -386,19 +386,15 @@
386386
<groupId>org.eclipse.emf</groupId>
387387
<artifactId>org.eclipse.emf.codegen.ecore</artifactId>
388388
</dependency>
389-
<dependency>
390-
<groupId>com.google.inject</groupId>
391-
<artifactId>guice</artifactId>
392-
</dependency>
393389
<dependency>
394390
<groupId>org.apache.maven</groupId>
395391
<artifactId>maven-model</artifactId>
396-
<version>3.3.9</version>
392+
<version>3.9.10</version>
397393
</dependency>
398394
<dependency>
399395
<groupId>org.apache.commons</groupId>
400396
<artifactId>commons-configuration2</artifactId>
401-
<version>2.8.0</version>
397+
<version>2.12.0</version>
402398
</dependency>
403399
<!-- migrated from Python POM: end -->
404400
</dependencies>

0 commit comments

Comments
 (0)