Skip to content

Move model files from apps targets to WordPressData #24378

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 71 commits into
base: trunk
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
91e07dc
Configure `Package.swift` with WordPressData framework deps
mokagio Apr 1, 2025
c3a2409
Add `WordPress-Swift.h` to WordPressData to work around build fail
mokagio Apr 1, 2025
e1e775e
Add prefix header
mokagio Apr 1, 2025
7345eb5
Add all required sources to WordPressData
mokagio Apr 1, 2025
8a7b763
Add required imports to Swift layer
mokagio Apr 1, 2025
14f7a94
Extract `defaultWordPressComAccountRestAPI` method to WordPressData
mokagio Apr 1, 2025
3e0bcbe
Add `Blog+SelfHosted` to WordPressData, including dependencies
mokagio Apr 1, 2025
1f9d64c
Hack `ContextManager.swift` to compile
mokagio Apr 1, 2025
221c026
Replicate Keystone preprocessor macro hack for WordPressData-Swift.h
mokagio Apr 1, 2025
4332c7a
Add `Media+Blog.swift` to WordPressData to compile `PostHelper.m`
mokagio Apr 1, 2025
68c883b
Add `RemotePost+Metadata` source to WordPressData for `PostHelper.m`
mokagio Apr 1, 2025
6da4929
Add `PostServiceRemoteFactory` to WordPressData to fix `PostService.m`
mokagio Apr 1, 2025
e677336
Add `PostHelper+JetpackSocial` to WordPressData to fix `PostHelper.m`
mokagio Apr 1, 2025
300b531
Add `WordPressOrgRestApi+WordPress` to WordPressData
mokagio Apr 1, 2025
82be13c
Add `.m` file in WordPressData only to config CocoaLumberJack
mokagio Apr 1, 2025
ec7db66
Add some `import CocoaLumberJackSwift` required by WordPressData
mokagio Apr 1, 2025
fe086c9
Use `_private_wordPressComRestApi` in `Blog+WordPressComRestAPI.swift…
mokagio Apr 1, 2025
532f357
Add CocoaLumberjack as a dependency to the extensions to fix compilation
mokagio Apr 2, 2025
6b9b64c
Remove `WordPress-Swift.h` hack from WordPressData
mokagio Apr 2, 2025
edafd64
Add `Blog+Lookup` to WordPressData
mokagio Apr 2, 2025
9f02bf9
Add `WordPress.xcdatamodeld` to WordPressData
mokagio Apr 2, 2025
03c4a9f
Duplicate test infra in WordPressData in order to run `BlogTests`
mokagio Apr 2, 2025
9ee192d
Remove unnecessary `CocoaLumberJackConfiguration.h` header
mokagio Apr 2, 2025
100f461
Remove WordPressData types from WordPress and Jetpack
mokagio Apr 3, 2025
3c632cf
Update imports after removing WordPressData files from WP and Jetpack
mokagio Apr 3, 2025
b947be8
Disambiguate `Notification` usages — `/: Notification\)/`
mokagio Apr 3, 2025
af7fa5e
Disambiguate `Notification` usages — `/: Notification$/`
mokagio Apr 3, 2025
34b3b5e
Disambiguate `Notification` usages — `/, Notification(?!s)/`
mokagio Apr 3, 2025
f16406e
Disambiguate `Notification` usages — `/as\? Notification/`
mokagio Apr 3, 2025
df071a5
Disambiguate `Notification` usages — `/ Notification \{/`
mokagio Apr 3, 2025
4f7f1e5
Disambiguate `Notification` usages — `/ Notification\?/`
mokagio Apr 3, 2025
9e0fb36
Disambiguate `Notification` usages — `/ Notification,$/`
mokagio Apr 3, 2025
4ff6119
Disambiguate `Notification` usages — `/\[Notification\]/`
mokagio Apr 3, 2025
3801955
Disambiguate `Notification` usages — `/ Notification\:/`
mokagio Apr 3, 2025
08e58ac
Disambiguate `Notification` usages — `/: Notification,/`
mokagio Apr 3, 2025
ee5465e
Disambiguate `Notification` usages — `/\(Notification\)/`
mokagio Apr 4, 2025
4958b45
Disambiguate `Notification` usages — `/Notification else/`
mokagio Apr 4, 2025
e5d1cbd
Disambiguate `Notification` usages — `/Notification\!/`
mokagio Apr 4, 2025
8ad1658
Disambiguate `Notification` usages — `/as\? Notification/`
mokagio Apr 4, 2025
8abacbd
Add CocoaLumberjack to notification service extensions
mokagio Apr 3, 2025
7a16fce
Update imports after `Notification` disambiguation
mokagio Apr 3, 2025
c6972a7
Replace all `#import` of headers now in WordPressData with `@import W…
mokagio Apr 3, 2025
10aa25c
Work around (temporarily?!) a build failure after the WordPressData move
mokagio Apr 3, 2025
3556965
Remove unused `AccountService` import from `Blog.m`
mokagio Apr 3, 2025
0954ffb
Move some `MenuItem` imports from `.h` to `.m`
mokagio Apr 4, 2025
ca8f713
Remove WordPressData types from `WordPress-Bridging-Header.h`
mokagio Apr 4, 2025
b3d37ec
Address module verifier warnings in WordPressData
mokagio Apr 4, 2025
6fa7ea6
Extract Swift-dependant logic from `Theme`
mokagio Apr 5, 2025
a404d29
Make `Media` extension `public`
mokagio Apr 6, 2025
52f76a3
Remove unused WordPressData import from NotificationServiceExtension
mokagio Apr 6, 2025
fc8e70b
Add CocoaLumberjack to extensions Jetpack uses to avoid compile failure
mokagio Apr 6, 2025
ec9fb17
Make WordPressData Swift API available to ObjC framework consumers
mokagio Apr 6, 2025
45ac8cd
Add `testable import WordPressData` to unit tests
mokagio Apr 7, 2025
e18e2d3
Update `WordPress.Notification` to `WordPressData.Notification` in tests
mokagio Apr 7, 2025
74e14d0
Add more required `@testable import WordPressData`
mokagio Apr 7, 2025
e418c3c
Add WordPressData as a WordPressTests dependency
mokagio Apr 7, 2025
f54716d
Add missing dependencies to WordPressTesting post WordPressData addition
mokagio Apr 7, 2025
23b6052
Load model from the `ContextManager` bundle in the unit tests
mokagio Apr 7, 2025
6c206fa
Replace `AppEnvironment` with `WordPressComRestApi.apiBaseURL` in Res…
mokagio Apr 7, 2025
21eeceb
No longer access `_private_wordPressComRestApi` in `Blog`
mokagio Apr 7, 2025
726655c
Fix WordPressData linkage in Keystone and move sources
mokagio Apr 7, 2025
517ff5d
Update access of types required by Keystone for WordPressData link
mokagio Apr 7, 2025
5353a83
Explicitly add WebKit as a Keystone dependency
mokagio Apr 7, 2025
3f1727e
Revert `CookieJar` `public` access level
mokagio Apr 7, 2025
66b0653
REVERT ME - Only run WordPress tests
mokagio Apr 7, 2025
172031e
Switch all models to use "Global Namespace"
mokagio Apr 7, 2025
7725149
Replace all string values passed to `forEntityName` with `entityName()`
mokagio Apr 23, 2025
cbdbe14
Replace all `NSStringFromClass` values passed to `forEntityName`
mokagio Apr 23, 2025
b34dc5c
Replace all `Self.classNameWithoutNamespaces()` with `entityName()`
mokagio Apr 23, 2025
1deadc6
Replace all `classNameWithoutNamespace()` calls with `entityName()`
mokagio Apr 23, 2025
200048d
Fix WordPressData runtime issues (#24494)
kean Apr 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
70 changes: 70 additions & 0 deletions Modules/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ enum XcodeSupport {
.library(name: "XcodeTarget_App", targets: ["XcodeTarget_App"]),
.library(name: "XcodeTarget_Keystone", targets: ["XcodeTarget_Keystone"]),
.library(name: "XcodeTarget_WordPressTests", targets: ["XcodeTarget_WordPressTests"]),
.library(name: "XcodeTarget_WordPressData", targets: ["XcodeTarget_WordPressData"]),
.library(name: "XcodeTarget_WordPressAuthentificator", targets: ["XcodeTarget_WordPressAuthentificator"]),
.library(name: "XcodeTarget_WordPressAuthentificatorTests", targets: ["XcodeTarget_WordPressAuthentificatorTests"]),
.library(name: "XcodeTarget_ShareExtension", targets: ["XcodeTarget_ShareExtension"]),
Expand Down Expand Up @@ -228,6 +229,16 @@ enum XcodeSupport {
"WordPressUI",
"TextBundle",
"TracksMini",
// Even though the extensions are all in Swift, we need to include the Objective-C
// version of CocoaLumberjack to avoid linking issues with other dependencies that
// use it.
//
// Example:
//
// Undefined symbols for architecture arm64:
// "_OBJC_CLASS_$_DDLog", referenced from:
// in AppExtensionsService.o
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
.product(name: "Down", package: "Down"),
.product(name: "Gridicons", package: "Gridicons-iOS"),
Expand Down Expand Up @@ -299,6 +310,17 @@ enum XcodeSupport {
.product(name: "Gravatar", package: "Gravatar-SDK-iOS"),
.product(name: "Nimble", package: "Nimble"),
.product(name: "BuildkiteTestCollector", package: "test-collector-swift"),
// Needed by WordPressData because of how linkage works...
//
"BuildSettingsKit",
"FormattableContentKit",
"SFHFKeychainUtils",
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
.product(name: "NSObject-SafeExpectations", package: "NSObject-SafeExpectations"),
.product(name: "NSURL+IDN", package: "NSURL-IDN"),
.product(name: "WordPressAPI", package: "wordpress-rs"),
.product(name: "WordPressKit", package: "WordPressKit-iOS"),
]),
.xcodeTarget("XcodeTarget_WordPressAuthentificator", dependencies: wordPresAuthentificatorDependencies),
.xcodeTarget("XcodeTarget_WordPressAuthentificatorTests", dependencies: wordPresAuthentificatorDependencies + testDependencies),
Expand All @@ -311,6 +333,18 @@ enum XcodeSupport {
"SFHFKeychainUtils",
"TracksMini",
"WordPressShared",
// Even though the extensions are all in Swift, we need to include the Objective-C
// version of CocoaLumberjack to avoid linking issues with other dependencies that
// use it.
//
// Example:
//
// EmitSwiftModule normal arm64 (in target 'WordPressNotificationServiceExtension' from project 'WordPress')
// cd /path/to/repo/WordPress
//
// <unknown>:0: error: missing required modules: 'CocoaLumberjack', 'CocoaLumberjackSwiftSupport'
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
]),
.xcodeTarget("XcodeTarget_StatsWidget", dependencies: [
"BuildSettingsKit",
Expand All @@ -319,18 +353,54 @@ enum XcodeSupport {
"TracksMini",
"WordPressShared",
"WordPressUI",
// Even though the extensions are all in Swift, we need to include the Objective-C
// version of CocoaLumberjack to avoid linking issues with other dependencies that
// use it.
//
// Example:
//
// Undefined symbols for architecture arm64:
// "_OBJC_CLASS_$_DDLog", referenced from:
// in AppExtensionsService.o
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
.product(name: "WordPressAPI", package: "wordpress-rs"),
]),
.xcodeTarget("XcodeTarget_Intents", dependencies: [
"BuildSettingsKit",
"JetpackStatsWidgetsCore",
// Even though the extensions are all in Swift, we need to include the Objective-C
// version of CocoaLumberjack to avoid linking issues with other dependencies that
// use it.
//
// Example:
//
// Undefined symbols for architecture arm64:
// "_OBJC_CLASS_$_DDLog", referenced from:
// in AppExtensionsService.o
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
]),
.xcodeTarget("XcodeTarget_UITests", dependencies: [
"UITestsFoundation",
.product(name: "BuildkiteTestCollector", package: "test-collector-swift"),
]),
.xcodeTarget(
"XcodeTarget_WordPressData",
dependencies: [
"BuildSettingsKit",
"FormattableContentKit",
"SFHFKeychainUtils",
"WordPressShared",
.product(name: "CocoaLumberjack", package: "CocoaLumberjack"),
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
.product(name: "Gravatar", package: "Gravatar-SDK-iOS"),
.product(name: "NSObject-SafeExpectations", package: "NSObject-SafeExpectations"),
.product(name: "NSURL+IDN", package: "NSURL-IDN"),
.product(name: "WordPressAPI", package: "wordpress-rs"),
.product(name: "WordPressKit", package: "WordPressKit-iOS"),
]
),
]
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import Foundation

public struct __Empty {}
17 changes: 0 additions & 17 deletions Sources/Keystone/WordPress.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ FOUNDATION_EXPORT const unsigned char WordPressVersionString[];
#import <WordPress/ActivityLogViewController.h>
#import <WordPress/AccountService.h>

#import <WordPress/Blog.h>
#import <WordPress/BlogService.h>
#import <WordPress/BlogSyncFacade.h>
#import <WordPress/BlogDetailsViewController.h>
Expand All @@ -20,11 +19,7 @@ FOUNDATION_EXPORT const unsigned char WordPressVersionString[];
#import <WordPress/CommentsViewController.h>
#import <WordPress/Constants.h>

#import <WordPress/LocalCoreDataService.h>

#import <WordPress/Media.h>
#import <WordPress/MediaService.h>
#import <WordPress/MenuItem.h>
#import <WordPress/MenuItemsViewController.h>
#import <WordPress/MenusService.h>
#import <WordPress/MenusViewController.h>
Expand All @@ -33,20 +28,11 @@ FOUNDATION_EXPORT const unsigned char WordPressVersionString[];
#import <WordPress/NSObject+Helpers.h>

#import <WordPress/PageSettingsViewController.h>
#import <WordPress/PostContentProvider.h>
#import <WordPress/PostCategory.h>
#import <WordPress/PostCategoryService.h>
#import <WordPress/PostContentProvider.h>
#import <WordPress/PostHelper.h>
#import <WordPress/PostMetaButton.h>
#import <WordPress/PostService.h>
#import <WordPress/PostServiceOptions.h>
#import <WordPress/PostSettingsViewController.h>
#import <WordPress/PostTag.h>
#import <WordPress/PostTagService.h>

#import <WordPress/ReaderGapMarker.h>
#import <WordPress/ReaderPost.h>
#import <WordPress/ReaderPostService.h>
#import <WordPress/ReaderSiteService.h>
#import <WordPress/ReaderSiteService_Internal.h>
Expand All @@ -58,19 +44,16 @@ FOUNDATION_EXPORT const unsigned char WordPressVersionString[];
#import <WordPress/SettingsTextViewController.h>
#import <WordPress/SharingViewController.h>
#import <WordPress/SiteSettingsViewController.h>
#import <WordPress/SourcePostAttribution.h>
#import <WordPress/StatsViewController.h>
#import <WordPress/SuggestionsTableView.h>
#import <WordPress/SuggestionsTableViewCell.h>

#import <WordPress/Theme.h>
#import <WordPress/ThemeService.h>

#import <WordPress/UIAlertControllerProxy.h>
#import <WordPress/UIApplication+Helpers.h>
#import <WordPress/UIView+Subviews.h>

#import <WordPress/WPAccount.h>
#import <WordPress/WPActivityDefaults.h>
#import <WordPress/WPAppAnalytics.h>
#import <WordPress/WPUploadStatusButton.h>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
#import "AbstractPost.h"
#import "Media.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"
#import "BasePost.h"

@import WordPressKit;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
#import "Blog.h"
#import "WPAccount.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
@import WordPressShared;
#import "WordPressData-Swift.h"

@import SFHFKeychainUtils;
@import WordPressShared;
@import NSObject_SafeExpectations;
@import NSURL_IDN;
@import WordPressKit; // FIXME: Is it required?

@class Comment;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@import CocoaLumberjack;

DDLogLevel ddLogLevel = DDLogLevelInfo;

void SetCocoaLumberjackObjCLogLevel(NSUInteger ddLogLevelRawValue)
{
ddLogLevel = (DDLogLevel)ddLogLevelRawValue;
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
#import "Media.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"

@implementation Media

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
#import "PostHelper.h"
#import "AbstractPost.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"
@import WordPressShared; // FIXME: Is this needed?

@import WordPressKit;
@import NSObject_SafeExpectations;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@
#import "PostServiceOptions.h"
#import "PostCategory.h"
#import "Media.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"
#import "PostHelper.h"
@import WordPressKit;
@import WordPressShared;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
#import "ReaderPost.h"
#import "SourcePostAttribution.h"
#import "WPAccount.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"
@import WordPressKit; // FIXME: Is this needed?

@import WordPressShared;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
#import "Theme.h"
#import "Blog.h"
#import "WPAccount.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif

@import WordPressShared;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
@import SFHFKeychainUtils;
#import "WPAccount.h"
#ifdef KEYSTONE
#import "Keystone-Swift.h"
#else
#import "WordPress-Swift.h"
#endif
#import "WordPressData-Swift.h"
@import WordPressKit;

@interface WPAccount ()

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "BasePost.h"
#import <WordPressData/BasePost.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import <Foundation/Foundation.h>
#import "Blog.h"
#import "PostContentProvider.h"
#import <WordPressData/Blog.h>
#import <WordPressData/PostContentProvider.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import <CoreData/CoreData.h>
#import "Blog.h"
#import "AbstractPost.h"
#import <WordPressData/Blog.h>
#import <WordPressData/AbstractPost.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#import <CoreData/CoreData.h>
#import "Blog.h"
#import <WordPressData/Blog.h>

extern NSString * const PostCategoryEntityName;
extern NSString * const PostCategoryNameKey;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "PostService.h"
#import <WordPressData/PostService.h>

@class AbstractPost, RemotePost;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#import <Foundation/Foundation.h>
#import "LocalCoreDataService.h"
#import <WordPressData/LocalCoreDataService.h>

@class AbstractPost;
@class Blog;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@import WordPressKit;
#import <WordPressKit/WordPressKit.h>

/**
@class PostServiceSyncOptions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "BasePost.h"
#import <WordPressData/BasePost.h>

typedef NS_ENUM(NSUInteger, SourceAttributionStyle) {
SourceAttributionStyleNone,
Expand Down
Loading