robb/Cartography 7140
A declarative Auto Layout DSL for Swift :iphone::triangular_ruler:
A hamburger button transition
github/Rebel 1132
Cocoa framework for improving AppKit
robb/FLXView 484
A UIView that uses Flexbox for layouting. :sparkles:
Geometry functions for Cocoa and Cocoa Touch
robb/Asterism 221
Asterism is yet another functional toolbelt for Objective-C. It tries to be typesafe and simple.
jspahrsummers/enemy-of-the-state 209
My talk explaining what state is and why it's so harmful
Generic model framework
robb/Fantastical-Alfred-Workflow 155
A simple Alfred 2 workflow for Fantastical.
These are my .dotfiles. There are many like them, but these ones are mine.
issue commentMantle/Mantle
Unknown type name 'mtl_cleanupBlock_t' on Mantle 2.1.5 + libextobjc
I merged and drafted 2.1.6 – @stephenkopylov can you confirm this addressed your issue?
comment created time in 9 days
push eventMantle/Mantle
commit sha fb00019b98dc8e0942c9215c380e4fdd074debb7
Rename internal libextobjc files to avoid clashes with standalone libextobjc files
commit sha dd3ca5c069f0f48655ea00358d5c0a0e9f445707
Prefix internal struct for consistency
commit sha eb4ad298d81c023bcba20810ceffba695378ded4
Merge pull request #872 from SRGSSR/libextobjc-conflict-fix Fix for compilation issue when Mantle 2.1.5 is integrated alongside libextobjc with CocoaPods
push time in 9 days
PR merged Mantle/Mantle
As discussed in issue #871, attempting to use Mantle and libextobjc in a single Podfile results in a compilation error due to some header files being found both in Mantle and libextobjc pods (since part of libextobc is directly embedded in Mantle source code).
This issue arose following changes made in PR #870 and appeared in version 2.1.5 of Mantle. I didn't search for the exact reason why this did not happen in 2.1.4 and why this happens in 2.1.5 (CocoaPods is making quite a lot of wizardry after all), but the nature of the compilation error provides an obvious solution: Avoiding name clashes by prefixing embedded libextobjc source files.
This PR therefore:
- Prefixes internal libextobjc source files with MTL, e.g.
EXTScope.hbecomesMTLEXTScope.h. - Rename the internal
EXTSpecialProtocolasMTLSpecialProtocolfor consistency, though this was not strictly required for the project to compile fine. I applied the same approach as for existing function and macro prefixing in internal libextobjc files.
I tested this change proposal on a test branch and could integrate both Mantle and libextobjc in a project successfully.
We can of coures discuss these changes further should you think something can be improved.
Thanks in advance!
pr closed time in 9 days
pull request commentMantle/Mantle
Fix for compilation issue when Mantle 2.1.5 is integrated alongside libextobjc with CocoaPods
Looks great, thanks for taking the time. 💖
comment created time in 9 days
push eventrobb/robb.swift
commit sha 431701bec61aef81f6fe1302eb85b1b8448300d4
Update swift-cmark
commit sha 0128af2a293813bd395e0faac07513ae94283b1a
Update to Swim
push time in 9 days
push eventrobb/HTML-DSL
commit sha aa8dd8114b49a662ce0055e4552591b42762e544
Extract Swim
commit sha 6fac5f56918e0b6f7e8584f07718e090f719b969
Use @_exported import for Swim
commit sha 0a1e1a36aed50ef039ef47697591cca8c3f23b75
Add empty Swim test
commit sha 582f63e7bc3ce55f78f90420c4852183a56063c2
Explicit import in example
commit sha 46d115e249f9e07a765c9e3aa8d6b1f434485a48
Merge pull request #13 from robb/swim Rename to Swim, move HTML into its own target.
push time in 9 days
PR merged robb/HTML-DSL
This should help compartmentalize e.g. an SVG library.
pr closed time in 9 days
push eventrobb/HTML-DSL
commit sha 582f63e7bc3ce55f78f90420c4852183a56063c2
Explicit import in example
push time in 9 days
push eventrobb/HTML-DSL
commit sha 0a1e1a36aed50ef039ef47697591cca8c3f23b75
Add empty Swim test
push time in 9 days
PR opened robb/HTML-DSL
This should help compartmentalize e.g. an SVG library.
pr created time in 9 days
push eventrobb/HTML-DSL
commit sha 6fac5f56918e0b6f7e8584f07718e090f719b969
Use @_exported import for Swim
push time in 9 days
push eventrobb/HTML-DSL
push time in 9 days
push eventrobb/HTML-DSL
commit sha 6fac5f56918e0b6f7e8584f07718e090f719b969
Use @_exported import for Swim
push time in 9 days
issue commentMantle/Mantle
Unknown type name 'mtl_cleanupBlock_t' on Mantle 2.1.5 + libextobjc
@defagos Agreed, prefixing sounds good :+1:
comment created time in 9 days
issue commentMantle/Mantle
Unknown type name 'mtl_cleanupBlock_t' on Mantle 2.1.5 + libextobjc
@defagos You reckon this could've happened in #870?
comment created time in 11 days
issue commentMantle/Mantle
Unknown type name 'mtl_cleanupBlock_t' on Mantle 2.1.5 + libextobjc
Weird, did this not happen to you before this update?
comment created time in 11 days
startedsoulverteam/SoulverCore
started time in 11 days
pull request commentMantle/Mantle
Yup, I'll draft one.
I also took the liberty to invite the both of you to become members as an effort to debottleneck myself.
comment created time in 12 days
push eventMantle/Mantle
commit sha 0f5275883147227ff8bfad1e987a6fa06002190b
Add support for Swift Package Manager
commit sha 2c0df36536f78cc9640b3632c1999c0c9f1a9405
Update integration documentation
commit sha d123b3aa351b6b98155ab489deaacc56e1a84b4b
Merge pull request #870 from SRGSSR/spm Swift Package Manager support
push time in 21 days
PR merged Mantle/Mantle
Hi,
Thanks for still actively maintaining Mantle. It is especially nice that, though Apple development is all about Swift nowadays, people still care about their community and improve existing libraries written in good ol' Objective-C to ensure they remain compatible with recent Xcode and OS versions. 👏
So here is our way to return the favor, as we are still using Mantle in our products. This PR namely adds Swift Package Manager support. The manifest requires 5.1, which should ensure proper compatibility with old versions of Xcode.
Swift Package Manifest and Implementation Considerations
SPM requires public headers to reside in a corresponding directory. There exist several strategies to achieve this result (e.g. moving files to a common directory or using symlinks). I chose to move the files to include directories (the SPM convention) because I noticed by opening the existing Xcode project that logical and physical structures were already different. Symlinks also require support to be enabled in the local git configuration, something I wouldn't assume in general.
Two targets have been defined, one for the internal libextobjc files, the other one for Mantle itself. For both targets public headers have been moved to a corresponding include directory, and the following changes have been made accordingly:
- The Xcode project header files point at the new location so that the project still compile correctly.
- The CocoaPods specification file has been updated accordingly so that all source files are still correctly located.
Note that the Swift Package manifest here only cares about the packaging and does not include any test target, as tests can still be run with the usual Xcode project.
Headers and Imports
The tricky part is to ensure that Mantle and code using it correctly compile with all possible integration methods (manual integration, Carthage, CocoaPods and now SPM). The problem is mostly with headers and how they should be imported depending on the kind of integration.
The situation is made a bit more complicated as Objective-C provides @import Mantle; and #import <Mantle/Mantle.h> as syntax options, while you can only use import Mantle in Swift. Moreover, as of Xcode 12 new warnings namely appear if some framework public header references another public header with double-quote syntax instead of angle-brackets. Apparently these warnings only appear when using @import to import the framework from Objective-C code, but still they must be avoided.
I therefore implemented the following strategy:
- In implementation files we use the double-quote syntax.
- For public headers we check the kind of syntax required first with
__has_include, for example:#if __has_include(<Mantle/MTLModel.h>) #import <Mantle/MTLModel.h> #else #import "MTLModel.h" #endif - In the framework global
Mantle.hheader, a single check is made with__has_include(<Mantle/Mantle.h>).
This way the correct syntax will be used depending on the kind of integration used. An alternative would be to always use __has_include(<Mantle/Mantle.h>) as test condition, this is of course something we can discuss and change.
Tests
I tested all four kinds of integrations with the proposed code changes and they all work fine. I tested Swift and Objective-C projects, as well as all possible import syntax options available.
Note that I had to add version information to the podspec JSON to test local development pod integration (otherwise the pod command fails with an error), but I assume this version is automatically added when the spec is pushed to the master CocoaPods repository (it has been several years I haven't pushed any podspec to it, so I am not sure how everything works now, sorry).
Documentation
The documentation was updated with SPM integration instructions and a compatibility badge at the top.
Next Steps
Some implementation changes can of course be discussed. I stay at your disposal should you request any changes or should something not meet your expectations.
Thank you very much in advance for your assistance!
pr closed time in 21 days
pull request commentMantle/Mantle
Looks ace 🥰, might take me a moment to review personally but obviously everyone is happy to beat me to it /cc @Mantle/mantle
comment created time in 25 days
push eventMantle/Mantle
commit sha e625bd686dbeb0d90b57be09c9e96052b2961a3c
Revert "Trigger workflow manually, set GITHUB_ACCESS_TOKEN"
commit sha 583ce3a1ef99db0efa616ca744c8c2939c8c8e12
Merge pull request #869 from Mantle/revert-868-actions-with-github-token Revert "Trigger workflow manually, set GITHUB_ACCESS_TOKEN"
push time in a month
delete branch Mantle/Mantle
delete branch : revert-868-actions-with-github-token
delete time in a month
create barnchMantle/Mantle
branch : revert-868-actions-with-github-token
created branch time in a month
push eventMantle/Mantle
commit sha da6a862ff2c620c09a9037cdf5d7d8071430a8c1
Trigger workflow manually, set GITHUB_ACCESS_TOKEN
commit sha 7f30aad2f37c43f60a634e0686f5b5db898cbdeb
Merge pull request #868 from Mantle/actions-with-github-token Trigger workflow manually, set GITHUB_ACCESS_TOKEN
push time in a month
pull request commentMantle/Mantle
Trigger workflow manually, set GITHUB_ACCESS_TOKEN
Here goes nothing
comment created time in a month
issue openedCarthage/Carthage
- carthage install method: [ ] .pkg, [ ] homebrew, [ ] source [x] unsure, comes with GitHub actions
which carthage:carthage version: 0.36.0xcodebuild -version: Xcode 11.7 11E801a- Are you using
--no-build? no - Are you using
--no-use-binaries? no - Are you using
--use-submodules? no - Are you using
--cache-builds? no - Are you using
--new-resolver? no
Cartfile.private
github "jspahrsummers/xcconfigs" "1ef9763"
github "Quick/Quick" ~> 2.0.0
github "Quick/Nimble" ~> 8.0.1
Carthage Output
*** Skipped downloading Nimble.framework binary due to the error:
8
"API rate limit exceeded for 199.7.166.17. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)"
…
Actual outcome Carthage did not have an GITHUB_ACCESS_TOKEN set and got rate-limited.
Expected outcome
Carthage should have used the GITHUB_TOKEN from the GitHub Actions environment instead.
created time in a month
push eventMantle/Mantle
commit sha 41e20b73ceb2d0aee9344e96657f9bad2c8e7aad
fixed variable acess
commit sha f8e7129216c48f4d7dd77dd8b7f907c1fc44ea37
Merge pull request #867 from 3a4oT/fixUploadStep Fixed upload workflow!
push time in a month
push eventrobb/Asterism
commit sha 44ed990473b3df93fee976c69f16d8b256c32e6e
Fix typo
push time in a month
pull request commentMantle/Mantle
Would this mechanism work? https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
comment created time in a month
pull request commentMantle/Mantle
Looks good, do you think you can add a way to trigger it manually, too? Then we don't need to push a new tag each time we want to push fresh binaries.
comment created time in a month
pull request commentMantle/Mantle
Generate binary framework for Carthage users.
Hmm, doesn't seem to have worked https://github.com/Mantle/Mantle/actions/runs/267467413.
comment created time in a month
startedMantle/Mantle
started time in a month
push eventMantle/Mantle
commit sha c65fbdd626dcccc64b25029c148215c0441c465d
Improved CI. Added a step that verifies that Carthage able to build Mantle. Create and automaticly upload Mantle framework to github releases on new tag.
commit sha 261ef4fffc975d4dfa114925c2d90d0ff3a22e4f
run all tests on pull request.
commit sha 454fbdecf36d83dcf9f5dcebc89ce1116c744356
Merge pull request #866 from 3a4oT/carthage-assets-release-upload Generate binary framework for Carthage users.
push time in a month
PR merged Mantle/Mantle
-
Refactored existing
on pushworkflow. -
Added a workflow which verifies that Carthage is able to build Mantle.
-
Added a workflow that creates and automatically uploads the Mantle.framework.zip to GitHub releases on a new tag was pushed. (For example, you pushed new tag 2.3 - this step will automatically create GitHub release and attach binary framework to it so Carthage users can pull it instead of building from source).
pr closed time in a month
pull request commentMantle/Mantle
Generate binary framework for Carthage users.
Looks sharp, thanks a lot 💖
comment created time in a month
push eventrobb/HTML-DSL
commit sha 67bae85a4590f6444ef6e874272f3b415335d8eb
Update tag definitions
commit sha 4b25b2edb5db5a2c755d3e576a2eebf3e52fd91f
Merge pull request #12 from robb/whatwg Update tag definitions
push time in a month
PR merged robb/HTML-DSL
pr closed time in a month
push eventrobb/robb.swift
commit sha 6def5cefa5bad2cff69fac31bdfe48adeac651f7
Add sitemap.xml
push time in a month
push eventrobb/robb.swift
commit sha 63c7fa23ed17d6c563158d107e0e76a64098beaf
Remove deprecated type, fix whitespace
push time in a month
issue commentMantle/Mantle
I published 2.1.2, let me know if it does the trick.
comment created time in a month
push eventjuliakloiber/juliakloiber.github.io
commit sha bf427ef365c331520d8b2294828ff46a583b7f2a
Update Inter
push time in a month
push eventjuliakloiber/juliakloiber.github.io
commit sha df3cd525d4d83abb80984c770c81e15da8ff8d5a
Add structured data
push time in a month
issue closedMantle/Mantle
How to set NSInteger property in model
Hi, I have a problem using NSInteger, it seems that the support for int is limited. My model here:
@interface Feed : MTLModel <MTLJSONSerializing>
@property (assign, nonatomic, readonly) NSInteger likes;
@property (strong, nonatomic, readonly) NSString *imageURL;
@end
And the blocks in method transformerUsingForwardBlock is id input and id output, but NSInteger is a Primitive type, How should I transform this NSInteger?
closed time in a month
SayHelloToWorldissue commentMantle/Mantle
How to set NSInteger property in model
Mantle uses Key Value Coding, using NSNumber for the likes property should do the trick.
comment created time in a month
issue commentMantle/Mantle
I'll investigate cutting a release this weekend. That said, if you'd like to help out I'd gladly add you to the team.
comment created time in a month
PR opened robb/HTML-DSL
pr created time in 2 months
push eventrobb/HTML-DSL
commit sha 67bae85a4590f6444ef6e874272f3b415335d8eb
Update tag definitions
push time in 2 months
push eventrobb/robb.swift
commit sha beb6fb4d7cb911f4337701f451b473df9b99d885
Cache ISO8601 data formatter
commit sha 8b279d4545b85579358da9f13a64d25cf2728643
Write files in parallel
push time in 2 months
push eventrobb/robb.swift
commit sha 3c3c383daecbd449118089642460d0f1a5d628b2
Make Layout generic
commit sha 35fd67b0a374c28c96b65fc1c1b7bd12d2e024e8
Cache ISO8601 data formatter
commit sha f70a431322d77c5edc897359581bc6b4b85c4be6
Write files in parallel
push time in 2 months
push eventrobb/robb.swift
commit sha 55e72fe5565d67abce394b47734060eeb0bdd715
Remove test target
push time in 2 months
push eventrobb/robb.swift
commit sha ac899f465416f6b6c2a1785065405dd046f50df3
Merge Inline and Resources directories
push time in 2 months
push eventrobb/robb.swift
commit sha 6d9e66521b6ca4cf12199e5dfcc20546d8a43834
Update dependencies
push time in 2 months
push eventrobb/HTML-DSL
commit sha 9eaa4c3342eee96066616e60415f03a0915ac2dc
Move Generator into its own package
commit sha 8aaaa9db9566861e3125c41f111bde7debebc0aa
Merge pull request #11 from robb/separate-packages Move Generator into its own package
push time in 2 months
PR merged robb/HTML-DSL
This makes clients no longer have a dependency on SwiftSyntax or ArgumentParser.
pr closed time in 2 months
push eventrobb/HTML-DSL
commit sha 2eeb5ee50b638e0c74805699191bd15bb6b7c1f2
Use SwiftSyntax to build tag functions
commit sha e52e2754172e25db8bb7bb06812d4e4bdb8979d4
Merge branch 'master' into swift-syntax
commit sha 80a3ad29f2420139c845e8efea86c286d0fb3ae0
Merge pull request #10 from robb/swift-syntax Use SwiftSyntax to build tag functions
push time in 2 months
issue commentMantle/Mantle
I got this error [modelClass isSubclassOfClass:MTLModel.class]
isSubclassOfClass works transitively, so there's likely something else going on – It's a little hard to say without knowing more about your project though.
comment created time in 2 months
push eventrobb/HTML-DSL
commit sha a4e29dcc9e768c61fadd70af3a214502c5bb84df
Add default implementation for Void visitors
commit sha 17483ad6733a352d6b09bf350bab75c2b364a2a8
Merge pull request #8 from robb/void-visitor Add default implementation for Void visitors
commit sha e52e2754172e25db8bb7bb06812d4e4bdb8979d4
Merge branch 'master' into swift-syntax
push time in 2 months
issue commentMantle/Mantle
I got this error [modelClass isSubclassOfClass:MTLModel.class]
Can you help us and share what kind of modelClass is?
comment created time in 2 months
push eventrobb/robb.swift
commit sha a4b78a281b47de96249c208bdeb03e22bdc603bf
Set button role on frontpage tokens
commit sha 1aef4702bbec189735d0b2e68061442eb7cc60fa
Update URL of CreativeDash dribbble
push time in 2 months
push eventrobb/robb.swift
commit sha 8aec8e9d45dce6d7f98e363e03cff812117cd695
Add USA picture
push time in 3 months
push eventrobb/.dotfiles
commit sha 3fe757b6210445b0a785f9f9eac67d7de8d86db0
Remove unary mv
commit sha 4cfc08984ed513acf88b0bda681564d109d12afd
Use ⌘1–0 to switch between tabs in VS Code
commit sha ba4fc832156c7b0a271a3f27f6c3ab3706ca15c0
Don't confirm sync with git in VS Code
push time in 3 months
pull request commentMantle/Mantle
Fix build error w/ Xcode 12 with casting NSInteger
Thanks! 💖
comment created time in 3 months
push eventMantle/Mantle
commit sha d734fbd8891b303f643434ae61bdf3db250eb349
Fix build error w/ Xcode 12 with casting NSInteger Error ``` Values of type 'NSInteger' should not be used as format arguments; add an explicit cast to 'long' instead ``` Fix-it ``` Replace '%d", @""), ' with '%ld", @""), (long)' ```
commit sha 35ad71e50f8dcb819585e34a85dda130dbf80995
Merge pull request #862 from yhkaplan/fix-for-xcode-12 Fix build error w/ Xcode 12 with casting NSInteger
push time in 3 months