Skip to content

Commit

Permalink
Upgrade to Swift 5
Browse files Browse the repository at this point in the history
  • Loading branch information
sindresorhus committed Mar 26, 2019
1 parent 5c47c60 commit e0ef252
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 76 deletions.
194 changes: 134 additions & 60 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,128 @@
disabled_rules:
- file_length
- line_length
- identifier_name
- todo
- vertical_whitespace
- force_cast
- force_try
- large_tuple
- function_body_length
- nesting
- type_body_length
opt_in_rules:
- empty_count
- prohibited_super_call
- conditional_returns_on_newline
- implicit_return
- overridden_super_call
- private_outlet
- redundant_nil_coalescing
- first_where
- explicit_init
- switch_case_on_newline
- number_separator
- closure_end_indentation
- closure_spacing
- operator_usage_whitespace
- nimble_operator
whitelist_rules:
- anyobject_protocol
- array_init
- attributes
- fatal_error_message
- unneeded_parentheses_in_closure_argument
- trailing_closure
- block_based_kvo
- discouraged_direct_init
- joined_default_parameter
- pattern_matching_keywords
- class_delegate_protocol
- closing_brace
- closure_end_indentation
- closure_parameter_position
- closure_spacing
- collection_alignment
- colon
- comma
- compiler_protocol_init
- conditional_returns_on_newline
- contains_over_first_not_nil
- fallthrough
- array_init
- literal_expression_end_indentation
- sorted_first_last
- private_action
- yoda_condition
- required_enum_case
- control_statement
- deployment_target
- discarded_notification_center_observer
- discouraged_direct_init
- discouraged_object_literal
- discouraged_optional_boolean
- empty_string
- untyped_error_in_catch
- discouraged_optional_collection
- modifier_order
- unavailable_function
- multiline_function_chains
- redundant_set_access_control
- duplicate_imports
- dynamic_inline
- empty_count
- empty_enum_arguments
- empty_parameters
- empty_parentheses_with_trailing_closure
- empty_string
- empty_xctest_method
- multiline_arguments
- anyobject_protocol
- redundant_type_annotation
- no_extension_access_modifier
- legacy_random
- toggle_bool
- explicit_init
- fallthrough
- fatal_error_message
- first_where
- for_where
- generic_type_name
- identical_operands
- collection_alignment
- static_operator
- identifier_name
- implicit_getter
- implicit_return
- inert_defer
- is_disjoint
- joined_default_parameter
- last_where
- leading_whitespace
- legacy_cggeometry_functions
- legacy_constant
- legacy_constructor
- legacy_hashing
- legacy_nsgeometry_functions
- legacy_random
- literal_expression_end_indentation
- lower_acl_than_parent
- mark
- modifier_order
- multiline_arguments
- multiline_function_chains
- multiline_literal_brackets
- multiline_parameters
- multiline_parameters_brackets
- vertical_whitespace_opening_braces
- vertical_whitespace_closing_braces
- legacy_hashing
- multiple_closures_with_trailing_closure
- nimble_operator
- no_extension_access_modifier
- no_fallthrough_only
- notification_center_detachment
- number_separator
- object_literal
- last_where
- unused_control_flow_label
- opening_brace
- operator_usage_whitespace
- operator_whitespace
- overridden_super_call
- pattern_matching_keywords
- private_action
- private_outlet
- private_unit_test
- prohibited_super_call
- protocol_property_accessors_order
- redundant_discardable_let
- redundant_nil_coalescing
- redundant_objc_attribute
- redundant_optional_initialization
- redundant_set_access_control
- redundant_string_enum_value
- redundant_type_annotation
- redundant_void_return
- required_enum_case
- return_arrow_whitespace
- shorthand_operator
- sorted_first_last
- statement_position
- static_operator
- strong_iboutlet
- superfluous_disable_command
- switch_case_alignment
- switch_case_on_newline
- syntactic_sugar
- todo
- toggle_bool
- trailing_closure
- trailing_comma
- trailing_newline
- trailing_semicolon
- trailing_whitespace
- type_name
- unavailable_function
- unneeded_break_in_switch
- unneeded_parentheses_in_closure_argument
- untyped_error_in_catch
- unused_closure_parameter
- unused_control_flow_label
- unused_enumerated
- unused_optional_binding
- unused_setter_value
- valid_ibinspectable
- vertical_parameter_alignment
- vertical_parameter_alignment_on_call
- vertical_whitespace_closing_braces
- vertical_whitespace_opening_braces
- void_return
- weak_computed_property
- weak_delegate
- xct_specific_matcher
- xctfail_message
- yoda_condition
analyzer_rules:
- unused_import
- unused_private_declaration
Expand All @@ -80,3 +134,23 @@ object_literal:
image_literal: false
discouraged_object_literal:
color_literal: false
identifier_name:
max_length:
warning: 100
error: 100
min_length:
warning: 2
error: 2
validates_start_with_lowercase: false
allowed_symbols:
- '_'
excluded:
- 'x'
- 'y'
- 'a'
- 'b'
- 'x1'
- 'x2'
- 'y1'
- 'y2'
macOS_deployment_target: '10.12'
2 changes: 1 addition & 1 deletion Example/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate {
preferencesWindowController.showWindow()
}

@IBAction func preferencesMenuItemActionHandler(_ sender: NSMenuItem) {
@IBAction private func preferencesMenuItemActionHandler(_ sender: NSMenuItem) {
preferencesWindowController.showWindow()
}
}
8 changes: 4 additions & 4 deletions Example/Base.lproj/MainMenu.xib
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<development version="10000" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14313.18"/>
<development version="9000" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
Expand Down Expand Up @@ -634,7 +634,7 @@
<menuItem title="Show Sidebar" keyEquivalent="s" id="kIP-vf-haE">
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
<connections>
<action selector="toggleSourceList:" target="-1" id="iwa-gc-5KM"/>
<action selector="toggleSidebar:" target="-1" id="iwa-gc-5KM"/>
</connections>
</menuItem>
<menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
Expand Down
5 changes: 4 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
// swift-tools-version:4.2
// swift-tools-version:5.0
import PackageDescription

let package = Package(
name: "Preferences",
platforms: [
.macOS(.v10_12)
],
products: [
.library(
name: "Preferences",
Expand Down
2 changes: 1 addition & 1 deletion Preferences.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ Pod::Spec.new do |s|
s.authors = { 'Sindre Sorhus' => '[email protected]' }
s.source = { :git => 'https://github.com/sindresorhus/Preferences.git', :tag => "v#{s.version}" }
s.source_files = 'Sources/**/*.swift'
s.swift_version = '4.2'
s.swift_version = '5'
s.platform = :macos, '10.12'
end
14 changes: 7 additions & 7 deletions Preferences.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -202,21 +202,21 @@
TargetAttributes = {
E34E9EE620E6149B002F8F86 = {
CreatedOnToolsVersion = 9.4.1;
LastSwiftMigration = 1000;
LastSwiftMigration = 1020;
SystemCapabilities = {
com.apple.Sandbox = {
enabled = 0;
};
};
};
"Preferences::Preferences" = {
LastSwiftMigration = 1000;
LastSwiftMigration = 1020;
};
};
};
buildConfigurationList = OBJ_2 /* Build configuration list for PBXProject "Preferences" */;
compatibilityVersion = "Xcode 10.0";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
Expand Down Expand Up @@ -360,7 +360,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
Expand Down Expand Up @@ -399,7 +399,7 @@
PRODUCT_BUNDLE_IDENTIFIER = com.sindresorhus.PreferencesExample;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
};
name = Release;
};
Expand All @@ -424,7 +424,7 @@
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
TARGET_NAME = Preferences;
};
name = Debug;
Expand All @@ -450,7 +450,7 @@
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
TARGET_NAME = Preferences;
};
name = Release;
Expand Down
4 changes: 2 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Just pass in some view controllers and this package will take care of the rest.
## Requirements

- macOS 10.12+
- Xcode 10+
- Swift 4.2+
- Xcode 10.2+
- Swift 5+


## Install
Expand Down

5 comments on commit e0ef252

@aaronrogers
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm no cocoapods expert, but don't you have to bump the version in the Podspec file?

@sindresorhus
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aaronrogers
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, sorry, I wasn't clear, I meant s.version = '0.2.1' to something like 0.2.2 or 0.3.0.

@sindresorhus
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no new version yet. There's nothing worth doing a version for. The current version should work fine in Swift 5 projects.

@aaronrogers
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it works. Xcode wants me to update it and I was hoping for a new version of Preferences.

Please sign in to comment.