Testing and creating a new Python generator release is complicated and very time consuming especially since testing includes ensuring that the generator creates a valid form of CDM.
After taking a copy of the current repo, the steps we follow are:
To develop and test changes:
Update the Python POM to point to a recent version of the complete CDM Rune mode
Enable CDM generation in python/src/test/java/com/regnosys/rosetta/generator/python/PythonFilesGeneratorTest.xtend
Build the codebase mvn clean install
Invoke the Python build script
Run the test script
Once dev and local testing finishes, test the Codefresh config by use of docker
Once development is finished and all tests pass, to prep for a PR:
Undo (1) and (2) above
Push the changes
Raise a PR
Changes may be required in the CDM repo
To enable testing of new generator, update the top level CDM POM to force use of the local version of the generator
Build the Python version of CDM
Run tests locally
Use docker to test the Python Codefresh build commands
Once finished, back out (1)
Raise a PR once the generator PR has been merged
Describe the solution you'd like
The desired solution would allow skipping and reverting local config changes
Describe alternatives you've considered
We considered and rejected scripting changes to the environment as potentially fragile because they rely upon knowledge of the POM and code.
Description
Testing and creating a new Python generator release is complicated and very time consuming especially since testing includes ensuring that the generator creates a valid form of CDM.
After taking a copy of the current repo, the steps we follow are:
To develop and test changes:
python/src/test/java/com/regnosys/rosetta/generator/python/PythonFilesGeneratorTest.xtend
mvn clean install
Once development is finished and all tests pass, to prep for a PR:
Changes may be required in the CDM repo
Describe the solution you'd like
The desired solution would allow skipping and reverting local config changes
Describe alternatives you've considered
We considered and rejected scripting changes to the environment as potentially fragile because they rely upon knowledge of the POM and code.