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

fix(Go): always generate code in an order #758

Merged
merged 17 commits into from
Jan 9, 2025

Conversation

rishav-karanjit
Copy link
Member

@rishav-karanjit rishav-karanjit commented Jan 7, 2025

Issue #, if available:

Description of changes:
We want smithy dafny generated code to have same order so that we can check git diff. To have same order, we need to avoid hashmap and hashsets. This PR sorts the top level shape before getting into shape visitor in a natural order (like A-Z for strings, or 1,2,3 for numbers). Once inside shape visitor, all the shapes will be sorted in the order they are getting visited.

Reference:

This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

https://docs.oracle.com/javase/8/docs/api/?java/util/HashMap.html

It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time.

https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html

Similar PR in for Smithy Dafny Java: #238

Testing
Tested these changes in MPL on https://github.com/aws/aws-cryptographic-material-providers-library/tree/check-go-polymorph-diff. See the github action triggered from the latest commit on this branch (I made changes to workflow file to run CI to check diff when I commit on this branch)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@rishav-karanjit rishav-karanjit changed the title chore(Go): change HashMap to LinkedHashMap fix(Go): always generate in a order Jan 8, 2025
@rishav-karanjit rishav-karanjit changed the title fix(Go): always generate in a order fix(Go): always generate code in an order Jan 8, 2025
@rishav-karanjit rishav-karanjit marked this pull request as ready for review January 9, 2025 00:57
@rishav-karanjit rishav-karanjit requested a review from a team as a code owner January 9, 2025 00:57
Copy link
Contributor

@ajewellamz ajewellamz left a comment

Choose a reason for hiding this comment

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

LGTM

@rishav-karanjit rishav-karanjit merged commit 7a86bc8 into main-1.x Jan 9, 2025
86 checks passed
@rishav-karanjit rishav-karanjit deleted the rishav-fix-shape-sorting branch January 9, 2025 17:34
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.

2 participants