Skip to content

Migration smithy initial setup#3861

Draft
sbaluja wants to merge 15 commits into
mainfrom
migration-smithy
Draft

Migration smithy initial setup#3861
sbaluja wants to merge 15 commits into
mainfrom
migration-smithy

Conversation

@sbaluja

@sbaluja sbaluja commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Issue #, if available:

Description of changes:

Check all that applies:

  • Did a review by yourself.
  • Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • Checked if this PR is a breaking (APIs have been changed) change.
  • Checked if this PR will not introduce cross-platform inconsistent behavior.
  • Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • Linux
  • Windows
  • Android
  • MacOS
  • IOS
  • Other Platforms

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

sbaluja added 15 commits June 29, 2026 15:09
- Fix CRITICAL bug: getShapeCppName() now properly handles empty-string resolutions from HARDCODED_COLLISION_RESOLUTIONS map
- Changed null-only check to check both null and empty string: resolved != null && !resolved.isEmpty()
- Empty strings indicate shapes removed from model (e.g., medialive BatchUpdateScheduleResult)
- Added test coverage: getHardcodedResolution and getShapeCppName for medialive empty-string case
- Added ServiceNameUtil documentation comment explaining serviceMap parameter reserved for future use
- Created ServiceNameUtilTest with capitalize tests
- Register ModelCodegenPlugin in SPI file and build.gradle.kts projections
- Fix CppWriter: set 2-space indent, enable trimTrailingSpaces
- Fix CppWriterDelegator: add UTF-8 BOM to match C2J output
- Fix CppTypeMapper: check enum before string (EnumShape extends StringShape),
  add default values for enum (NOT_SET), timestamp, and blob types
- Fix EnumRenderer: use wire values as C++ constants (not member names),
  single/multi-line format based on line length
- Fix MemberRenderer: non-templated setters for primitives and enums,
  enum-aware Add methods for lists, doc comment format escaping
- Fix ModelGenerator: proper namespace structure, indent class body,
  class-level doc comments, Input->Request / Output->Result naming,
  conditional <utility> include
- Fix SerdeStub: remove hardcoded indent (handled by writer)
- Update EnumRendererTest for new format
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.

1 participant