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
*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.
8
+
The Rune Python Generator creates Python code from [Rune](https://github.com/finos/rune-dsl). It fully supports the Rune type syntax and has comprehensive [expression coverage](./EXPRESSION_SUPPORT.md), though function generation is not yet fully implemented.
8
9
9
-
The generated Python relies upon the [RunePythonRuntime](https://github.com/finos/rune-python-runtime) library and requires Python version 3.11+.
10
+
The generated code requires the [RunePythonRuntime](https://github.com/finos/rune-python-runtime) library and Python 3.11+.
10
11
11
-
## Release Notes
12
+
## Releases
12
13
13
-
The features of the current version can be found in the [release notes](./RELEASE.md)
14
+
Releases are [triggered manually](./.github/workflows.yml) and follow a four-part semantic versioning scheme (x.y.z.n). The first three numbers match the **rosetta.dsl.version** in the **pom.xml**, and the fourth number tracks generator changes.
14
15
15
-
## Releases
16
+
For example, when the DSL version updates to **9.64.1**, the first release will be tagged **9.64.1.0**. Subsequent releases will only increment the fourth digit (e.g., **9.64.1.1**) until the DSL version changes again.
16
17
17
-
Releases are made automatically by invoking the [release workflow](./.github/workflows.yml). Releases will be sequentially tagged using four semantic elements (x.y.z.n). Each change of the value of rosetta.dsl.version in the POM resets the fourth digit.
18
+
Releases **should** not be manually tagged.
18
19
19
-
For example, if the dsl version is 9.64.1, the release will be tagged 9.64.1.0. Until a new dsl version, each subsequent release will increment the fourth digit (i.e. the next release would be tagged 9.64.1.1).
20
+
### Release Notes
20
21
21
-
Releases should not be manually tagged.
22
+
The features of the current version can be found in the [release notes](./RELEASE.md)
22
23
23
24
### Rune-DSL Updates
24
25
25
-
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.
26
-
27
-
A PR must be raised for changes to address address build or testing failures.
26
+
The Renovate bot automatically handles DSL updates by creating a pull request. Maintainers can merge this PR if it passes the automated build and unit tests. Manual changes including a new PR are required if the tests fail.
28
27
29
28
## Repository Organization
30
29
@@ -39,13 +38,13 @@ A PR must be raised for changes to address address build or testing failures.
39
38
40
39
## Development setup
41
40
42
-
### Setup for developers
41
+
### For developers
43
42
44
43
This guide is meant for everyone who wants to contribute to the Rune Python Generator and needs to get things up and running.
45
44
46
45
Detailed build and testing instructions can be found in [BUILDANDTEST.md](./BUILDANDTEST.md)
47
46
48
-
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.
47
+
Troubleshooting: If you run into issues, please open an [issue](https://github.com/finos/rune-python-generator/issues). This helps us improve the guide for everyone.
49
48
50
49
### 1. Building with Maven
51
50
@@ -79,66 +78,59 @@ Go to Import... > Existing Maven Project, select the right folder, click Finish.
79
78
80
79
### Standalone CLI
81
80
82
-
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:
81
+
To generate Python code from a single file or directory, after building the project use the standalone CLI by executing the following command:
Use this script to generated the Python version of CDM
89
+
To generate the Python version of the Common Domain Model (CDM), use the **build_cdm.sh** script. This script uses the branch specified in the file and creates a wheel in target/python-cdm.
91
90
92
-
```sh
91
+
```bash
93
92
test/cdm_tests/cdm_setup/build_cdm.sh
94
93
```
95
94
96
-
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`
97
-
98
-
To use a different version of CDM, update CDM_VERSION in the script.
95
+
To use a different version of CDM, simply update the **CDM_VERSION** variable in the script.
99
96
100
-
## Roadmap
97
+
## Roadmap, Contributing, Getting in Touch, and Governance
101
98
102
-
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.
99
+
###Roadmap
103
100
104
-
## Contributing
101
+
The project roadmap is aligned with the [Rune-DSL](https://github.com/finos/rune-dsl/) and [CDM](https://github.com/finos/common-domain-model/blob/master/ROADMAP.md) roadmaps.
105
102
106
-
For any questions, bugs or feature requests please open an [issue](https://github.com/finos/rune-python-generator/issues)
107
-
For anything else please send an email to {project mailing list}.
103
+
### Contributing
108
104
109
-
To submit a contribution:
105
+
We welcome contributions! Please follow these steps to get started:
110
106
111
-
1. Fork it (<https://github.com/finos/rune-python-generator/fork>)
107
+
1. Fork the repository (<https://github.com/finos/rune-python-generator/fork>)
112
108
2. Create your feature branch (`git checkout -b feature/fooBar`)
113
109
3. Read our [contribution guidelines](.github/CONTRIBUTING.md) and [Community Code of Conduct](https://www.finos.org/code-of-conduct)
114
110
4. Commit your changes (`git commit -am 'Add some fooBar'`)
115
111
5. Push to the branch (`git push origin feature/fooBar`)
116
112
6. Create a new Pull Request
117
113
118
-
*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
119
-
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
120
-
and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
114
+
**NOTE: FINOS repositories require an executed and active FINOS Individual Contributor License Agreement (ICLA) or an executed and active FINOS Corporate Contribution License Agreement (CCLA). The FINOS Clabot tool (or EasyCLA) will flag and block commits from individuals not covered. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.**
121
115
122
-
If you are unsure if you are covered under an existing CCLA send an email to [email protected]
116
+
If you are unsure if you are covered under an existing CCLA send an email to <[email protected]>
123
117
124
-
## Get in touch with the Rune Python Generator Team
118
+
###Get In Touch
125
119
126
-
Get in touch with the Rune team by creating a [GitHub issue](https://github.com/finos/rune-python-generator/issues/new) and labelling it with "help wanted".
120
+
Get in touch with the Rune Python Generator team by creating a [GitHub issue](https://github.com/finos/rune-python-generator/issues/new) and labelling it with "help wanted".
127
121
128
-
We encourage the community to get in touch via the [FINOS Slack](https://www.finos.org/blog/finos-announces-new-community-slack).
122
+
We also encourage the community to get in touch via the [FINOS Slack](https://www.finos.org/blog/finos-announces-new-community-slack).
129
123
130
-
## Governance
124
+
###Governance
131
125
132
-
This project implements<https://community.finos.org/docs/governance/#open-source-software-projects>
126
+
This project is governed by the FINOS Open Source Software Project Governance<https://community.finos.org/docs/governance/#open-source-software-projects>
133
127
134
-
## License
128
+
###License
135
129
136
130
Copyright 2023-2025 CLOUDRISK Limited and FT Advisory LLC
137
131
138
132
Distributed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).
0 commit comments