Initial Package Creation
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0023a53
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+.DS_Store
+/.build
+/Packages
+xcuserdata/
+DerivedData/
+.swiftpm/configuration/registries.json
+.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+.netrc
diff --git a/Package.swift b/Package.swift
new file mode 100644
index 0000000..5270af2
--- /dev/null
+++ b/Package.swift
@@ -0,0 +1,69 @@
+// swift-tools-version: 5.9
+// The swift-tools-version declares the minimum version of Swift required to build this package.
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import CompilerPluginSupport
+import PackageDescription
+
+let dependencies: [Package.Dependency] = [
+ // Core Dependencies
+ .package(url: "https://github.com/grpc/grpc-swift.git", from: "1.19.0"),
+ .package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"),
+ .package(url: "https://github.com/apple/swift-argument-parser", from: "1.2.0"),
+
+ // Additional Transform Dependencies
+ .package(url: "https://github.com/awslabs/aws-sdk-swift.git", from: "0.23.0"),
+ .package(url: "https://github.com/googleapis/google-auth-library-swift",from:"0.0.0"),
+
+ // Swift Macro Support
+ .package(url: "https://github.com/apple/swift-syntax.git", branch: "main"),
+
+ // Swift Package Manager Plugins
+ .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
+ .package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.52.3"),
+]
+
+
+let package = Package(
+ name: "ApacheBeam",
+ products: [
+ // Products define the executables and libraries a package produces, making them visible to other packages.
+ .library(
+ name: "ApacheBeam",
+ targets: ["ApacheBeam"]),
+ ],
+ dependencies: dependencies,
+ targets: [
+ // Targets are the basic building blocks of a package, defining a module or a test suite.
+ // Targets can depend on other targets in this package and products from dependencies.
+ .target(
+ name: "ApacheBeam",
+ dependencies: [
+ .product(name: "GRPC",package:"grpc-swift"),
+ .product(name: "Logging",package:"swift-log"),
+ .product(name: "AWSS3",package:"aws-sdk-swift"),
+ .product(name: "OAuth2", package:"google-auth-library-swift"),
+ .product(name: "ArgumentParser", package:"swift-argument-parser")
+ ]
+ ),
+ .testTarget(
+ name: "ApacheBeamTests",
+ dependencies: ["ApacheBeam"]),
+ ]
+)
diff --git a/Sources/ApacheBeam/ApacheBeam.swift b/Sources/ApacheBeam/ApacheBeam.swift
new file mode 100644
index 0000000..6ae2981
--- /dev/null
+++ b/Sources/ApacheBeam/ApacheBeam.swift
@@ -0,0 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+enum ApacheBeamError: Error {
+ case runtimeError(String)
+}
diff --git a/Tests/ApacheBeamTests/ApacheBeamTests.swift b/Tests/ApacheBeamTests/ApacheBeamTests.swift
new file mode 100644
index 0000000..100676f
--- /dev/null
+++ b/Tests/ApacheBeamTests/ApacheBeamTests.swift
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@testable import ApacheBeam
+import XCTest
+
+final class ApacheBeamTests: XCTestCase {
+ //TODO: Remove this someday
+ func testDummy() throws {
+ // XCTest Documentation
+ // https://developer.apple.com/documentation/xctest
+
+ // Defining Test Cases and Test Methods
+ // https://developer.apple.com/documentation/xctest/defining_test_cases_and_test_methods
+ }
+}