You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
10
14
11
15
## Repository Organization
12
16
@@ -19,19 +23,56 @@ The Python package requires Python version 3.11+.
19
23
-`build/build_cdm.sh` - used to create a Python package from code generated using CDM Rune definitions
20
24
-`test` - Python unit tests and scripts to run the tests
21
25
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
+
23
31
Detailed build and testing instructions can be found in [BUILDANDTEST.md](./BUILDANDTEST.md)
24
32
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.
26
34
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
32
63
```
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.
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:
45
86
5. Push to the branch (`git push origin feature/fooBar`)
46
87
6. Create a new Pull Request
47
88
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.
49
90
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]*
55
92
56
-
To use a different version of CDM, update CDM_VERSION in the script.
93
+
## Get in touch with the Rune Python Generator Team
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).
62
98
63
99
## Governance
64
100
65
101
This project implements https://community.finos.org/docs/governance/#open-source-software-projects
66
102
67
103
## License
68
104
69
-
Copyright 2019 Fintech Open Source Foundation
105
+
Copyright 2023-2025 CLOUDRISK Limited and FT Advisory LLC
70
106
71
107
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
0 commit comments