Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/swiftyfinch/Rugby
đ Cache CocoaPods for faster rebuild and indexing Xcode project.
https://github.com/swiftyfinch/Rugby
cache-cocoapods cache-pods cocoapods cocoapods-binary cocoapods-frameworks cocoapods-optimisation cocoapods-performance compile-time hacktoberfest macos prebuild-pods precompiled-frameworks swift xcode xcode-indexing xcode-performance
Last synced: 3 days ago
JSON representation
đ Cache CocoaPods for faster rebuild and indexing Xcode project.
- Host: GitHub
- URL: https://github.com/swiftyfinch/Rugby
- Owner: swiftyfinch
- License: mit
- Created: 2021-02-13T10:23:57.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T16:48:52.000Z (8 months ago)
- Last Synced: 2024-04-14T16:14:23.472Z (8 months ago)
- Topics: cache-cocoapods, cache-pods, cocoapods, cocoapods-binary, cocoapods-frameworks, cocoapods-optimisation, cocoapods-performance, compile-time, hacktoberfest, macos, prebuild-pods, precompiled-frameworks, swift, xcode, xcode-indexing, xcode-performance
- Language: Swift
- Homepage: https://swiftyfinch.github.io/tags/rugby/
- Size: 5.38 MB
- Stars: 648
- Watchers: 3
- Forks: 51
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-ios - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Tools / Web View)
- open-source-mac-os-apps - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. ![swift_icon] (Applications / Utilities)
- awesome-swift - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Libs / Utility)
- awesome-ios-star - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Tools / Web View)
- fucking-awesome-swift - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Libs / Utility)
- awesome-swift-macos-apps - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Utilities / Text)
- awesome-swift-macos-apps - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. (Utilities / Text)
- open-source-mac-os-apps - Rugby - đ Cache CocoaPods for faster rebuild and indexing Xcode project. ![swift_icon] (Applications / Utilities)
README
# Motivation
Why do we need some optimizations while working on huge projects with [CocoaPods](https://github.com/CocoaPods/CocoaPods)?\
`-` Slow and unnecessary indexing of pods targets, which implementation we rarely try to edit;\
`-` Redundant rebuild time, probably as a result of problems, related to CocoaPods or Xcode;\
`-` Freezing UI during navigating through a project or editing it;\
`-` Broken or extremely slow autocompletion;\
`-` Noisy laptop turbines, heated aluminum, and infinite spinning pinwheel.More in the đ [foundation](https://swiftyfinch.github.io/en/2021-03-09-rugby-story/) and [remastering](https://swiftyfinch.github.io/en/2023-04-22-rugby-remastered/) stories.
## Description
đ `Rugby` is CLI tool that was developed to solve the above problems:\
`+` Cache all pods dependencies and remove their targets from the Pods project;\
`+` Rebuild only changed pods or even download them;\
`+` Delete any unneeded targets with sources from a project and reduce its size.## What makes it different?
đ Not a project dependency, just an optional step;\
đą Doesn't change Podfile and Podfile.lock;\
âī¸ Can run [a sequence of commands from a YAML file](Docs/commands-help/plan.md);\
đšī¸ Single command usage;\
đŗ Ready for [remote cache](Docs/remote-cache.md);\
đ§Ŗ Cozy log output;\
đ Swiftish and uses native Xcode build system.Ruby alternatives: [PodBuilder](https://github.com/Subito-it/PodBuilder) | [CocoaPods Binary Cache](https://github.com/grab/cocoapods-binary-cache) | [CocoaPods Binary](https://github.com/leavez/cocoapods-binary)
# How to install đĻ
First of all, if you have the first version `Rugby 1.x`, you need to delete it.\
Then call `where rugby` command and be sure that there are no any of paths to rugby.### First Install
```sh
curl -Ls https://swiftyfinch.github.io/rugby/install.sh | bash
```### Self-Update
If you already have Rugby, which version is at least `2.0.0b2`, you can use such a command.
```sh
> rugby update
```### Full Guide
Read more in the guide [how to install](Docs/how-to-install.md) it.\
If you look for the legacy `Rugby 1.x`, visit [this page](https://github.com/swiftyfinch/Rugby/tree/1.23.0#how-to-install-).## How to use đ
Preconditions
1. If you use Objective-C in your project, be sure that you import modules correctly.\
Use `@import Something` instead of `#import "Something.h"`.\
Because Rugby will include built frameworks in your project;
2. Before using Rugby you should be sure that your project source code is finalized.\
đ¸ For example: if you use `SwiftGen`, run it before calling Rugby.\
Otherwise, your source code will be modified during building with Rugby. Then the hashes of binaries will not be suited.\
If you encounter a problem, try to use [`rugby build pre`](Docs/commands-help/build/pre.md) to prebuild your project and finalize source code;
3. Be sure that all your pods (including development) are ready to build standalone.\
Otherwise, you can get a state when one of them can't be reused correctly without the source of its dependencies.\
As a temporary workaround, you can exclude some pods like `rugby -e BadPod`.\
đ¸ For example: if some of your pods use incorrect headers.
Then run this command in your project directory after each `pod install`.\
It will build all targets by default:
```sh
> rugby
```Deintegrate it with the [rollback](Docs/commands-help/rollback.md) command:
```sh
> rugby rollback
```Also, you can write a custom [plan](Docs/commands-help/plan.md) (sequence of commands).\
Use đ [RugbyPlanner](https://github.com/swiftyfinch/RugbyPlanner) for visualizing changes in your project without applying them.\
For advanced usage, please read the documentation below.## đ Documentation
đĻ [How to Install](Docs/how-to-install.md)\
đ [Commands Help](Docs/commands-help/README.md)\
đ [Migration Guide](Docs/migration-guide.md)\
đŗ [Remote Cache](Docs/remote-cache.md)
## đ¤ Contribution
Feel free [to open a pull request](https://github.com/swiftyfinch/rugby/contribute) or [a discussion](https://github.com/swiftyfinch/Rugby/discussions).
| Known Issues đ |
| :--- |
| [#394](https://github.com/swiftyfinch/Rugby/discussions/394): Unable to run tests via Xcode (via `make test` they run perfectly) |
| [#270](https://github.com/cpisciotta/xcbeautify/issues/270): Missing public `OutputType` |## đŽ Support
If you want to support this project, you can do some of these:\
`1)` Press âī¸. It's a nice mark which means that Rugby is useful;\
`2)` Share the project đ somewhere with somebody;\
`3)` Leave feedback in the discussions đŦ section.Let's Roll-oll đ