Replies: 1 comment
-
Current work is on my repo. Checked off what's covered right now (App bundles with test bundles for iOS & OS X). |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Currently, breaking the setup flow for Nimble is easy because of the many supported installation methods in various configurations:
Platforms - Supporting
latest
andlatest - 1
when possible; Assumes the same version of Xcode can be used. Simulator-only is acceptable.Subject Target - The binary target that's being tested. Static libraries and CLI is currently unsupported. Build-processes differ between both targets that may break specific configurations.
Test Target - The target that Nimble assertions reside in. This target links directly to Nimble. CLI may be a future target.
Installation Method - How end-users install Nimble into their projects
Configurations - How end-users / consumers configure Nimble
This is a combinatorial explosion that's difficult to ensure we don't break anything. Not all combinations are possible (UI Test Bundle w/o XCTest is impossible), but there's still a lot of possible configurations. And it will only get worse as time progresses.
A good first-step is to have an acceptance test suite that pulls in the latest commit of Nimble and runs sample projects in each of those configurations. I definitely don't expect we'll get this coverage with one large PR, but it doesn't hurt to build this over time.
To be clear, these sample projects should simply check that Nimble can be linked + run with those sample projects. There shouldn't be any significant assertions other than running some Nimble code to assert that Nimble successfully links and runs in the configuration.
Question for @Quick/contributors: should this be inside the Nimble project itself or as a separate project under the Quick org? A separate project would require triggering another build as needed (which is a bit more infrastructure work to setup), although I'm leaning towards that.
Some common configurations we should support (in order of importance):
Beta Was this translation helpful? Give feedback.
All reactions