Skip to content

πŸ”— Update rules_wasm_component integration to use external componentΒ #6

@avrabe

Description

@avrabe

Overview

Update rules_wasm_component to consume the external file operations component instead of the embedded Go binary, with backward compatibility.

Tasks

  • Add bazel-file-ops-component as dependency in rules_wasm_component
  • Update file_ops_actions.bzl to use external component
  • Maintain backward compatibility during transition
  • Add configuration options for implementation selection
  • Update toolchain configuration to use external component
  • Create migration guide and documentation
  • Add integration tests with external component
  • Performance comparison and validation

Integration Changes

  • Update MODULE.bazel to include external component dependency
  • Modify tools/bazel_helpers/file_ops_actions.bzl
  • Update toolchain configuration in toolchains/
  • Add component selection configuration options

Backward Compatibility

  • Maintain existing JSON configuration format
  • Keep existing function signatures and behavior
  • Add deprecation warnings for embedded tools
  • Provide migration path and timeline

Configuration Options

# In rules_wasm_component configuration
file_ops_config(
    implementation = "auto",      # auto, embedded, external
    external_component = "@bazel_file_ops_component//:file_ops_component",
    security_level = "high",
    migration_mode = True,      # Enable compatibility mode
)

Acceptance Criteria

  • External component integration works seamlessly
  • All existing functionality remains unchanged
  • Performance is equal or better than embedded version
  • Security improvements are properly leveraged
  • Migration guide is comprehensive and clear
  • Integration tests validate all functionality
  • Documentation reflects new architecture

Migration Strategy

  1. Phase 1: Add external component as optional dependency
  2. Phase 2: Make external component default with embedded fallback
  3. Phase 3: Deprecate embedded version with warnings
  4. Phase 4: Remove embedded version in next major release

Related

Part of Phase 6 ecosystem integration. Final step in complete migration to external component architecture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions