Skip to content
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

Work bench PR for one-go Core Data extraction into target #24242

Draft
wants to merge 102 commits into
base: trunk
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
ae6f07a
Convert WordPressData from Swift package to Xcode target
mokagio Mar 12, 2025
3385fc1
Disable automatic code signing for WordPressData framework
mokagio Mar 12, 2025
e8d854a
Disable "Build libraries for distribution" flag in WordPressData
mokagio Mar 12, 2025
854f60a
Let WordPressData read iOS deployment target from the project config
mokagio Mar 12, 2025
46bd417
Use the same `SWIFT_INSTALL_OBJC_HEADER` as WordPressAuthenticator
mokagio Mar 12, 2025
0b5f3e5
Link WordPressData to the Jetpack target
mokagio Mar 12, 2025
001cf75
Add CocoaLumberjack to the WordPressData dependencies
mokagio Mar 12, 2025
f9c6ad7
Move `NSManagedObject+Lookup` and `TaggedManagedObjectID` to WordPres…
mokagio Mar 12, 2025
251bc28
Disable `wpAssertionFailure` in `CoreDataHelper`
mokagio Mar 12, 2025
c12a1ee
Add WordPressKit as a dependency to WordPressData
mokagio Mar 12, 2025
f770a46
Move `PostContentProvider.h` to WordPressData
mokagio Mar 12, 2025
c71a0e1
Move `PostVisibility` definition in `AbstractPost.swift`
mokagio Mar 12, 2025
95c0345
Move various file in staging folder before move to WordPressData
mokagio Mar 13, 2025
980a788
WIP - Attempt to move models and their deps to WordPressData
mokagio Mar 13, 2025
3372b27
Keep moving stuff, still not done...
mokagio Mar 13, 2025
9ed6493
Move a few more files, the next will be `WPAccount`...
mokagio Mar 13, 2025
5e4fc35
Move WPAccount and related dependencies - Build is worse than before
mokagio Mar 13, 2025
165fe80
Remove a stray trailing new line from `PromptRemindersScheduler.swift`
mokagio Mar 13, 2025
0b816e5
Move `SearchManager` back to the app targets
mokagio Mar 13, 2025
64774e2
Move yet more files...
mokagio Mar 13, 2025
d85351b
REBASE EARLIER – Add SFHFKeychainUtils as a WordPressData dependency
mokagio Mar 14, 2025
5f08547
Remove a couple of `WordPress-Swift.h` imports from WordPressData
mokagio Mar 14, 2025
35c53b5
Do not treat warnings as errors in WordPressData
mokagio Mar 14, 2025
53ad7fb
Move more files — Can't find WordPressData-Swift.h?!
mokagio Mar 14, 2025
ded32d9
Add `NSURL+IDN` as a WordPressData dependency
mokagio Mar 14, 2025
33e1b15
Add CocoaLumberjack (not the Swift) as a WordPressData dependency
mokagio Mar 14, 2025
a69641b
Add a bunch of missing imports
mokagio Mar 14, 2025
edf443e
Move `defaultWordPressComAccountRestAPI` definition to WordPressData
mokagio Mar 17, 2025
9300d2e
Remove knowledge of `AppConfiguration` from WPAccount Objective-C
mokagio Mar 17, 2025
24bb623
Move `tokenForUsername` wrapper away from `Lookup` extension
mokagio Mar 17, 2025
188e796
Add precompiled header to WordPressData to configure CocoaLumberjack
mokagio Mar 17, 2025
3eb231a
Remove documentation header params without descripiton
mokagio Mar 17, 2025
7b3c251
Add some missing imports and convert to angle bracket imports
mokagio Mar 17, 2025
546008a
Add dedicated `.m` file for setting `DDLogLevel`
mokagio Mar 17, 2025
8533942
With these hacks, WordPressData compiles as a standalone framework
mokagio Mar 17, 2025
679891e
Fix issue with WordPressData tests attempting to build WordPress
mokagio Mar 17, 2025
046d393
Disable CocoaLumberjack temporarily in WordPressData
mokagio Mar 17, 2025
2672f56
Start addressing build failures when building WordPress
mokagio Mar 17, 2025
1048c3d
Remove a stray file reference in the project
mokagio Mar 17, 2025
e011eeb
Address some more import and access control issues to use WordPressData
mokagio Mar 17, 2025
95048bb
Move `Domain.swift` to WordPressData
mokagio Mar 17, 2025
38090fa
Move `Role` to WordPressData
mokagio Mar 17, 2025
9623e1b
Access control update in `Page`
mokagio Mar 17, 2025
e192e01
Move `BlogQuery` to WordPressData
mokagio Mar 17, 2025
2e52e1d
Access control updates
mokagio Mar 17, 2025
502dae5
Move `Array+Page.swift` to WordPressData
mokagio Mar 17, 2025
8d0361e
Move `Blog+Quota` to WordPressData
mokagio Mar 17, 2025
b66e904
Add CI step for fast iteration tests on WordPressData
mokagio Mar 17, 2025
74f1265
Remove more incomplete documentation comments
mokagio Mar 17, 2025
96a32ea
Address some more access control build failures
mokagio Mar 17, 2025
56c8ae3
Give `BlogQuery` an explicit `init`
mokagio Mar 17, 2025
f739413
Add more necessary import and access control changes
mokagio Mar 18, 2025
3c67c0d
Some more imports and access control changes
mokagio Mar 18, 2025
59ef7b9
Move `PublicizeInfo` to WordPressData
mokagio Mar 18, 2025
d4e17b8
Move `SiteSuggestion` to WordPressData
mokagio Mar 18, 2025
df774c3
Move `UserSuggestion` to WordPressData
mokagio Mar 18, 2025
8b61c53
More access control changes to get the code to compile
mokagio Mar 18, 2025
f55810a
More access control changes
mokagio Mar 18, 2025
04c1b15
Update more access control levels
mokagio Mar 18, 2025
94c90b4
Move `PageTemplateCategory` to WordPressData
mokagio Mar 18, 2025
2228eef
Move `PageTemplateLayout` to WordPressData
mokagio Mar 18, 2025
f1bc3de
More imports and access control
mokagio Mar 18, 2025
e6bdb8e
Actually add `UserSettings` to the WordPressData
mokagio Mar 18, 2025
e192a3b
More...
mokagio Mar 18, 2025
4594802
More...
mokagio Mar 18, 2025
295f3ec
More...
mokagio Mar 18, 2025
bec946e
Remove `WPAccount.h` imports outside WordPressData
mokagio Mar 18, 2025
7f1fac7
Remove imports of classes that are now in WordPressData
mokagio Mar 18, 2025
f9fefef
More...
mokagio Mar 18, 2025
4b0d234
More...
mokagio Mar 18, 2025
b6daef0
Rebase - Move Comment to WordPressData
mokagio Mar 18, 2025
e66a876
Remove unused `AccountService.h` import
mokagio Mar 18, 2025
7414d21
Move `ReaderPost` and related dependencies
mokagio Mar 19, 2025
0d329e1
More...
mokagio Mar 19, 2025
7f05178
More...
mokagio Mar 19, 2025
c92030f
More...
mokagio Mar 19, 2025
1f91caf
Address a couple for `FIXME`s from the `ReaderPost` move
mokagio Mar 19, 2025
955d1c6
More...
mokagio Mar 19, 2025
acf6b00
Update `DataMigrator` for older `SharedDataIssueSolver` changes
mokagio Mar 19, 2025
10773df
More...
mokagio Mar 19, 2025
29a20eb
More...
mokagio Mar 19, 2025
f5bd9de
More...
mokagio Mar 19, 2025
00339b9
More...
mokagio Mar 19, 2025
51714d0
More... — WordPress builds!!! 🎉
mokagio Mar 19, 2025
cdaed70
Remove redundant `public` access-level
mokagio Mar 19, 2025
8c7c8db
Remove useless `NSURL+IDN` import
mokagio Mar 19, 2025
4e461c4
Begin to address test build failures...
mokagio Mar 19, 2025
a5ae271
Move WordPressData files from staging folder to target folder
mokagio Mar 19, 2025
f8d14d2
Split WordPressData in Objective-C and Swift folders
mokagio Mar 19, 2025
9055372
Use same module settings as WordPressAuthenticator
mokagio Mar 19, 2025
5e6e98b
Make WordPress unit tests compile
mokagio Mar 19, 2025
7a2084c
Remove leftover dead references from Jetpack target - Jetpack builds
mokagio Mar 19, 2025
044386b
Use `xcconfig` for WordPressData, same as WordPressAuthenticator
mokagio Mar 19, 2025
3f29984
Use default `PRODUCT_MODULE_NAME` definition
mokagio Mar 19, 2025
6df1375
Add WordPressData tests to the main unit tests `xctestplan`
mokagio Mar 20, 2025
c3b4ef6
Add `BlockedAuthor` to WordPressData
mokagio Mar 20, 2025
2714f9c
Add `BlockedSite` to WordPressData
mokagio Mar 20, 2025
e37414c
Move Gutenberg models to WordPressData
mokagio Mar 20, 2025
2c33aa3
Move `LikeUser*` models to WordPressData
mokagio Mar 20, 2025
25268bf
Move some content group and styles to FormattableContentKit
mokagio Mar 20, 2025
31e84ae
Add FormattableContentKit dependency to WordPressData
mokagio Mar 20, 2025
6b23c53
WIP - Move more models, build still broken
mokagio Mar 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,23 @@ steps:
#################
# Run Unit Tests
#################
- label: "WordPressData tests"
command: |
echo "--- :rubygems: Setting up Gems"
install_gems
echo "--- :swift: Setting up Swift Packages"
install_swiftpm_dependencies
echo "--- :microscope: Test"
FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT=120 bundle exec fastlane run scan \
scheme:WordPressData \
device:'iPhone 16'
plugins: [$CI_TOOLKIT_PLUGIN]
artifact_paths:
- "build/results/*"
notify:
- github_commit_status:
context: "WordPressData Unit Tests"

- label: "🔬 :wordpress: Unit Tests"
command: ".buildkite/commands/run-unit-tests.sh"
depends_on: "build_wordpress"
Expand Down
39 changes: 28 additions & 11 deletions Modules/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ let package = Package(
.library(name: "NotificationServiceExtensionCore", targets: ["NotificationServiceExtensionCore"]),
.library(name: "ShareExtensionCore", targets: ["ShareExtensionCore"]),
.library(name: "SFHFKeychainUtils", targets: ["SFHFKeychainUtils"]),
.library(name: "WordPressData", targets: ["WordPressData"]),
.library(name: "WordPressFlux", targets: ["WordPressFlux"]),
.library(name: "WordPressShared", targets: ["WordPressShared"]),
.library(name: "WordPressUI", targets: ["WordPressUI"]),
Expand Down Expand Up @@ -72,7 +71,18 @@ let package = Package(
resources: [.process("Resources")],
swiftSettings: [.swiftLanguageMode(.v5)]
),
.target(name: "FormattableContentKit", dependencies: ["WordPressShared"]),
.target(
name: "FormattableContentKit",
dependencies: [
"WordPressShared",
"WordPressUI",
.product(name: "Gridicons", package: "Gridicons-iOS"),
// TODO: Remove — It's here just for a NSMutableParagraphStyle init helper
.product(name: "WordPressKit", package: "WordPressKit"),
],
// Set to v5 to avoid @Sendable warnings and errors
swiftSettings: [.swiftLanguageMode(.v5)]
),
.target(name: "JetpackStatsWidgetsCore", swiftSettings: [.swiftLanguageMode(.v5)]),
.target(
name: "ShareExtensionCore",
Expand All @@ -98,14 +108,6 @@ let package = Package(
.product(name: "ScreenObject", package: "ScreenObject"),
.product(name: "XCUITestHelpers", package: "ScreenObject"),
], swiftSettings: [.swiftLanguageMode(.v5)]),
.target(name: "WordPressDataObjC"),
.target(
name: "WordPressData",
dependencies: [
.target(name: "WordPressDataObjC"),
.target(name: "WordPressSharedObjC")
]
),
.target(name: "WordPressFlux", swiftSettings: [.swiftLanguageMode(.v5)]),
.target(name: "WordPressCore", dependencies: [.target(name: "WordPressShared"), .product(name: "WordPressAPI", package: "wordpress-rs")]),
.target(name: "WordPressSharedObjC", resources: [.process("Resources")], swiftSettings: [.swiftLanguageMode(.v5)]),
Expand Down Expand Up @@ -166,6 +168,7 @@ enum XcodeSupport {
.library(name: "XcodeTarget_WordPressTests", targets: ["XcodeTarget_WordPressTests"]),
.library(name: "XcodeTarget_WordPressAuthentificator", targets: ["XcodeTarget_WordPressAuthentificator"]),
.library(name: "XcodeTarget_WordPressAuthentificatorTests", targets: ["XcodeTarget_WordPressAuthentificatorTests"]),
.library(name: "XcodeTarget_WordPressData", targets: ["XcodeTarget_WordPressData"]),
.library(name: "XcodeTarget_ShareExtension", targets: ["XcodeTarget_ShareExtension"]),
.library(name: "XcodeTarget_DraftActionExtension", targets: ["XcodeTarget_DraftActionExtension"]),
.library(name: "XcodeTarget_NotificationServiceExtension", targets: ["XcodeTarget_NotificationServiceExtension"]),
Expand Down Expand Up @@ -220,7 +223,6 @@ enum XcodeSupport {
"NotificationServiceExtensionCore",
"SFHFKeychainUtils",
"ShareExtensionCore",
"WordPressData",
"WordPressFlux",
"WordPressShared",
"WordPressReader",
Expand Down Expand Up @@ -266,6 +268,21 @@ enum XcodeSupport {
]),
.xcodeTarget("XcodeTarget_WordPressAuthentificator", dependencies: wordPresAuthentificatorDependencies),
.xcodeTarget("XcodeTarget_WordPressAuthentificatorTests", dependencies: wordPresAuthentificatorDependencies + testDependencies),
.xcodeTarget(
"XcodeTarget_WordPressData",
dependencies: [
"BuildSettingsKit",
"FormattableContentKit",
"SFHFKeychainUtils",
"WordPressShared",
// FIXME: Having issues with CocoaLumberjack as a transitive dependency when added to Objective-C files
// .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: "WordPressKit", package: "WordPressKit-iOS"),
]
),
.xcodeTarget("XcodeTarget_ShareExtension", dependencies: shareAndDraftExtensionsDependencies),
.xcodeTarget("XcodeTarget_DraftActionExtension", dependencies: shareAndDraftExtensionsDependencies),
.xcodeTarget("XcodeTarget_NotificationServiceExtension", dependencies: [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
public class HeaderContentGroup: FormattableContentGroup {}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
public class SubjectContentGroup: FormattableContentGroup {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import WordPressShared

public class SnippetsContentStyles: FormattableContentStyles {
public var attributes: [NSAttributedString.Key: Any] {
return WPStyleGuide.Notifications.snippetRegularStyle
}

public var quoteStyles: [NSAttributedString.Key: Any]?

public var rangeStylesMap: [FormattableRangeKind: [NSAttributedString.Key: Any]]?

public var linksColor: UIColor?

public var key: String

public init(
quoteStyles: [NSAttributedString.Key : Any]? = nil,
rangeStylesMap: [FormattableRangeKind : [NSAttributedString.Key : Any]]? = nil,
linksColor: UIColor? = nil,
key: String = "SnippetsContentStyles"
) {
self.quoteStyles = quoteStyles
self.rangeStylesMap = rangeStylesMap
self.linksColor = linksColor
self.key = key
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
import WordPressShared
import FormattableContentKit

class SubjectContentStyles: FormattableContentStyles {
var attributes: [NSAttributedString.Key: Any] {
public class SubjectContentStyles: FormattableContentStyles {
public var attributes: [NSAttributedString.Key: Any] {
return WPStyleGuide.Notifications.subjectRegularStyle
}

var quoteStyles: [NSAttributedString.Key: Any]? {
public var quoteStyles: [NSAttributedString.Key: Any]? {
return WPStyleGuide.Notifications.subjectItalicsStyle
}

var rangeStylesMap: [FormattableRangeKind: [NSAttributedString.Key: Any]]? {
public var rangeStylesMap: [FormattableRangeKind: [NSAttributedString.Key: Any]]? {
return [
.user: WPStyleGuide.Notifications.subjectRegularStyle,
.post: WPStyleGuide.Notifications.subjectRegularStyle,
Expand All @@ -21,6 +20,11 @@ class SubjectContentStyles: FormattableContentStyles {
]
}

var linksColor: UIColor? = nil
var key: String = "SubjectContentStyles"
public var linksColor: UIColor?
public var key: String

public init(linkColor: UIColor? = nil, key: String = "SubjectContentStyles") {
self.linksColor = linkColor
self.key = key
}
}
Loading