Skip to content

Commit

Permalink
Refactor Project Structure, Break Request Types Out Into Separate Fil…
Browse files Browse the repository at this point in the history
…es (Alamofire#3819)

### Goals ⚽
Alamofire's project structure has grown from its original single-file
origin into many files on disk. Unfortunately, as the project has grown,
the `Request.swift` file has grown rather gigantic, topping 2600 lines
after the recent addition of `WebSocketRequest`. This PR breaks up
`Request.swift` into separate files for each request type. It also moves
all the previous serialization extensions from
`ResponseSerialization.swift` to their associated type's files.

This PR also restructures some of the project's layout on disk to make
some Xcode groups proper folders.

This PR also creates the `AFInfo` namespace and moves the previously
internal `version` value into it to make it public.

This PR also adds primary associated types to the serialization
protocols.
  • Loading branch information
jshier authored Jan 27, 2024
1 parent a3fd84e commit 563595b
Show file tree
Hide file tree
Showing 61 changed files with 4,245 additions and 4,086 deletions.
5 changes: 5 additions & 0 deletions .spi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
version: 1
external_links:
documentation: "https://alamofire.github.io/Alamofire/"
metadata:
authors: "Jon Shier, Christian Noon"
189 changes: 126 additions & 63 deletions Alamofire.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
LastUpgradeVersion = "1530"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// swift-tools-version:5.9
// swift-tools-version:5.10
//
// Package.swift
//
// Copyright (c) 2022 Alamofire Software Foundation (http://alamofire.org/)
// Copyright (c) 2024 Alamofire Software Foundation (http://alamofire.org/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
Expand Down
50 changes: 50 additions & 0 deletions [email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// swift-tools-version:5.9
//
// [email protected]
//
// Copyright (c) 2022 Alamofire Software Foundation (http://alamofire.org/)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//

import PackageDescription

let package = Package(name: "Alamofire",
platforms: [.macOS(.v10_13),
.iOS(.v11),
.tvOS(.v11),
.watchOS(.v4)],
products: [
.library(name: "Alamofire", targets: ["Alamofire"]),
.library(name: "AlamofireDynamic", type: .dynamic, targets: ["Alamofire"])
],
targets: [.target(name: "Alamofire",
path: "Source",
exclude: ["Info.plist"],
linkerSettings: [.linkedFramework("CFNetwork",
.when(platforms: [.iOS,
.macOS,
.tvOS,
.watchOS]))]),
.testTarget(name: "AlamofireTests",
dependencies: ["Alamofire"],
path: "Tests",
exclude: ["Info.plist", "Test Plans"],
resources: [.process("Resources")])],
swiftLanguageVersions: [.v5])
7 changes: 5 additions & 2 deletions Source/Alamofire.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,8 @@ import Foundation
/// Reference to `Session.default` for quick bootstrapping and examples.
public let AF = Session.default

/// Current Alamofire version. Necessary since SPM doesn't use dynamic libraries. Plus this will be more accurate.
let version = "5.8.1"
/// Namespace for informational Alamofire values.
public enum AFInfo {
/// Current Alamofire version.
public static let version = "5.8.1"
}
File renamed without changes.
Loading

0 comments on commit 563595b

Please sign in to comment.