Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update only generated Code during gRPC Code Re-generation #92

Conversation

wba2hi
Copy link
Contributor

@wba2hi wba2hi commented Sep 4, 2024

The "user-defined" area has been removed from the cpp header template. Instead all code is persisted between two "code re-generations" except of the "auto-generated" code. The "auto-generated" code is correctly updated depending on if services where added or removed between two consecutive "code re-generations".

The following branch can be used for testing:
https://github.com/SoftwareDefinedVehicle/vehicle-app-cpp-template-lattice/tree/update_autogenerated_code_only_test

Tested Scenarios:

given: the gRPC generated header does not exist
and: re-generate code is executed
then: the header is correctly generated using the default template
and: the generated code matches with the proto file

given: the gRPC generated header does exist
and: the existing generated header file has been changed by the user (e.g. a custom constructor is introduced)
and: a new method is added to the proto file
and: re-generate code is executed
then: the auto generated code is updated (e.g. the new method is added to the auto-generated code)
and: the rest of the header file is not changed

analogue for the use case, where a service is removedfrom the proto file definition

The "user-defined" area has been removed from the cpp header template.
Instead all code is persisted between two "code re-generations" except
of the "auto-generated" code. The "auto-generated" code is correctly
updated depending on if services where added or removed between two
consecutive "code re-generations".
grpc-interface-support/src/cpp.py Outdated Show resolved Hide resolved
grpc-interface-support/src/cpp.py Outdated Show resolved Hide resolved
grpc-interface-support/src/cpp.py Outdated Show resolved Hide resolved
grpc-interface-support/src/cpp.py Outdated Show resolved Hide resolved
@Chrylo
Copy link
Contributor

Chrylo commented Sep 6, 2024

Tested:
Regenerating the header file while adding code to the block and outside. Works as expected now. Everything is kept besides the block.

@wba2hi wba2hi marked this pull request as draft September 10, 2024 05:21
@wba2hi
Copy link
Contributor Author

wba2hi commented Sep 10, 2024

Converted to draft until velocitas-lib PR is merged

@wba2hi wba2hi marked this pull request as ready for review September 10, 2024 09:38
@Chrylo
Copy link
Contributor

Chrylo commented Sep 11, 2024

LGTM

Copy link
Member

@BjoernAtBosch BjoernAtBosch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@BjoernAtBosch BjoernAtBosch merged commit b86861a into eclipse-velocitas:main Sep 11, 2024
17 checks passed
@Chrylo Chrylo deleted the update_autogenerated_code_only branch September 11, 2024 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants