Skip to content

Latest commit

 

History

History
124 lines (77 loc) · 3.83 KB

README.md

File metadata and controls

124 lines (77 loc) · 3.83 KB
develop master versioning license contributing dependencies
Build Status Build Status GitHub version License Contributing Dependency Status

Run Loop

Requirements

  • at least Xcode 10.3
  • ruby >= 2.3

The most recent version of Xcode is strongly recommended.

License

Run Loop is available under the MIT license. See the LICENSE file for more info.

Licenses for third-party software can be found in ./vendor-licenses.

Versioning

Run Loop follows the spirit of Semantic Versioning. [1] However, the semantic versioning spec is incompatible with RubyGem's patterns for pre-release gems.[2]

"But returning to the practical: No release version of SemVer is compatible with Rubygems." - David Kellum

If a method, class, or constant is marked with:

# @!visibility private

it is not part of the public API and the behavior is subject to change at any time.

For Run Loop Gem Developers

IMPORTANT note to devs RE: udidetect submodule

The current head of the udidetect head does not include the udidetect binary.

If you are compelled to update, you must rebuild and replace the scripts/udidetect binary.

At this time, there is no reason to update.

Building Device Agent Resources

It is your responsibility for checking the git branch.

$ rake device_agent:install

Tests

CI

Unit Tests

$ be rake unit

Integration Tests

Take a break because these test launch and quit the simulator multiple times. You have enough time to take some deep breaths and do some stretching. You'll feel better afterward.

Make sure you have hardware keyboard disabled if testing on the simulator.

For continuous TDD/BDD see the Guard section below.

$ be rake integration
Device Testing
  • Requires ideviceinstaller.
  • Requires devices to be connected with USB.
  • Each compatible device will be targeted with tests.
  • These are integration tests
Regression vs. Xcode version

If you have alternative Xcode installs that look like this:

/Xcode/9.4.1/Xcode.app
/Xcode/10.0/Xcode.app
/Xcode/10.1/Xcode.app
/Xcode/10.2/Xcode-Beta.app

the rspec tests will do regression testing against each version.

Guard

Guard requires terminal-notifier-guard

https://github.com/Codaisseur/terminal-notifier-guard

$ brew install terminal-notifier-guard
$ be guard

Only the unit tests are run by guard.