Closed markphelps closed 3 weeks ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 85.48%. Comparing base (
0656f38
) to head (d0a2f11
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Refactor packaging so that we only include files for the supported platforms in the sdks
With the introduction of Swift it was trying to download the iOS engine builds for non-Swift SDKs
This also tries to clean up the logic to make it a bit more object-oriented and hopefully easier to parse
This pull request introduces a set of new SDKs for various programming languages and a new
Platform
type in thepackage/ffi
directory. The changes include defining platform-specific constants and structs, as well as implementing build processes for each SDK.Platform Definitions:
package/ffi/platform/platform.go
: Added a newPlatform
type with constants for different platforms and libraries (glibc
,musl
). This includes platform-specific IDs and targets.SDK Implementations:
C# SDK:
package/ffi/sdks/csharp.go
: AddedCSharpSDK
with a build process usingdotnet
commands. It includes support for pushing to NuGet if theNUGET_API_KEY
is set.Dart SDK:
package/ffi/sdks/dart.go
: AddedDartSDK
with a build process usingdart
commands. It includes support for publishing topub.dev
if thePUB_TOKEN
is set.Go SDK:
package/ffi/sdks/go.go
: AddedGoSDK
with a build process that supports multiple platforms based on theLibc
type. It includes GitHub token handling for repository access.Java SDK:
package/ffi/sdks/java.go
: AddedJavaSDK
with a build process usinggradle
. It includes handling for different directory structures required by JNA and support for publishing to Maven if the necessary environment variables are set.Python SDK:
package/ffi/sdks/python.go
: AddedPythonSDK
with a build process usingpoetry
. It includes support for publishing to PyPI if thePYPI_API_KEY
is set.Ruby SDK:
package/ffi/sdks/ruby.go
: AddedRubySDK
with a build process usingbundle
andrake
. It includes support for pushing to RubyGems if theRUBYGEMS_API_KEY
is set.Swift SDK:
package/ffi/sdks/swift.go
: AddedSwiftSDK
with a build process that includes GitHub token handling for repository access and support for pushing to a target repository.Common Changes:
package/ffi/sdks/sdk.go
: Defined common types and utilities for SDKs, includingBuildOpts
,SDK
interface, andBaseSDK
struct. It also includes a utility function to check if a directory is empty or does not exist.