[MOB-3113] Add Ecosia Framework, remove Core and update tests#837
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
This reverts commit 5e12431.
936a200 to
2a2f75f
Compare
lucaschifino
left a comment
There was a problem hiding this comment.
Awesome job bringing this to the upgrade 👏 `Also great to see gitmodules worked out for snapshot, I agree it's a big improvement 🎉
Most of the review #816 is persistent and looks good to me!
Added a couple minor comments, the one about CD might be more relevant? Also waiting for the slack discussion about security to resolve before approving.
This reverts commit 7c647ba.
MOB-3113
Context
Original work #835
This PR is the result of a series of improvements in the overall handling of:
CoreremovalApproach
Consider everything we did as part of #835 and review it in favor of the major improvement for Snapshot Testing 📸 .
As further context, we explored the possibility of implementing Git LFS to improve how we handle the raw snapshots' artifacts.
Specifically, we wanted to remove all these artifacts from the main repo.
Git LFS seemed the perfect solution to implement right away.
Unfortunately, this option would not fit into our project structure because:
Source
However, option two, which quickly became available, consisted of implementing submodules.
We all know how quickly things may become messy with submodules, but it is worth a try for this precise scenario of purely serving resources and not code.
The first challenge was to include the submodule only for
*.pngartifacts as we didn't want to make another source for our code (as we challenged ourselves to solve this in the first place portingCoreafter all 😅 ).The way the Snapshot Testing library works https://github.com/pointfreeco/swift-snapshot-testing is to make a
__Snapshots__subfolder at each of the paths our tests live.To make submodules work, we wanted to decouple the artifact source of truth from the test domains.
Fortunately, the library provides us with a not-so-straightforward solution for that, eventually defining a custom directory while keeping our standard folder layout.
GIt LFS implementation
With the submodule challenge sorted out, going the extra mile and further improving the newly created submodule felt almost like a no-brainer.
Therefore, I actioned it.
By doing so, we are maximizing effort and resources when it comes to performing such tests while keeping the repos as lightweight as possible.
Other
We will need to monitor the Git LFS billing as per the repo size, but in the worst-case scenario, we can always roll back Git LFS and deal with raw artifacts, while keeping them in the submodule.
Before merging
Checklist
// Ecosia:helper comments where needed