customerio / customerio-reactnative

MIT License
23 stars 11 forks source link

build: speedup sample app installing local SDK #177

Closed levibostian closed 1 year ago

levibostian commented 1 year ago

When you make an update to the SDK source code and you want to test that change in one of the sample apps, you have to run yarn update customerio-reactnative to force yarn to re-install the local copy of the SDK. This step takes many minutes to run and slows down development.

I used --verbose the last time I ran yarn update... and noticed that mostly why it was taking so long was that yarn was installing and caching the sample apps and all of it's subdirectories. This is what was taking up too much time during install.

So, this refactor uses npm pack to build the SDK with only the files that are needed to install the SDK. We then tell npm to install the CIO SDK from the built .tgz file instead of ../../.

From testing, you can now update the local RN SDK source code in a sample app in ~3 seconds. It used to be between 5-10 minutes for me.

github-actions[bot] commented 1 year ago

Pull request title looks good 👍!

If this pull request gets merged, it will not cause a new release of the software. Example: If this project's latest release version is 1.0.0. If this pull request gets merged in, the next release of this project will be 1.0.0. This pull request is not a breaking change.

All merged pull requests will eventually get deployed. But some types of pull requests will trigger a deployment (such as features and bug fixes) while some pull requests will wait to get deployed until a later time.

This project uses a special format for pull requests titles. Expand this section to learn more (expand by clicking the ᐅ symbol on the left side of this sentence)...
This project uses a special format for pull requests titles. Don't worry, it's easy! This pull request title should be in this format: ``` : short description of change being made ``` **If your pull request [introduces breaking changes](https://web.archive.org/web/20220725195319/https://nordicapis.com/what-are-breaking-changes-and-how-do-you-avoid-them/)** to the code, use this format: ``` !: short description of breaking change ``` where `` is one of the following: - `feat:` - A feature is being added or modified by this pull request. Use this if you made any changes to any of the features of the project. - `fix:` - A bug is being fixed by this pull request. Use this if you made any fixes to bugs in the project. - `docs:` - This pull request is making documentation changes, only. - `refactor:` - A change was made that doesn't fix a bug or add a feature. - `test:` - Adds missing tests or fixes broken tests. - `style:` - Changes that do not effect the code (whitespace, linting, formatting, semi-colons, etc) - `perf:` - Changes improve performance of the code. - `build:` - Changes to the build system (maven, npm, gulp, etc) - `ci:` - Changes to the CI build system (Travis, GitHub Actions, Circle, etc) - `chore:` - Other changes to project that don't modify source code or test files. - `revert:` - Reverts a previous commit that was made. ### Examples: ``` feat: edit profile photo refactor!: remove deprecated v1 endpoints build: update npm dependencies style: run formatter ``` Need more examples? Want to learn more about this format? [Check out the official docs](https://www.conventionalcommits.org/). **Note:** If your pull request does multiple things such as adding a feature _and_ makes changes to the CI server _and_ fixes some bugs then you might want to consider splitting this pull request up into multiple smaller pull requests.
levibostian commented 1 year ago

Ready for re-review.

Also, I improved the speed from 10 seconds to ~3 seconds.