I want to build wrappers quickly
Motivation
Currently the polywrap build command requires docker, which has a few down-sides:
- new developer startup cost is high, as base images need to be downloaded
- slow if too much of the cache is invalidated
- requires a "heavy" system-wide dependency (docker)
- hard for developers to customize
This causes the build system to be slow and hard to iterate with. Some suggested solutions for this are:
- ensure docker builds are optimized, and too much of the cache are not invalidated often
- enable developers to build without docker
- make it easier for developers to customize the docker build steps
Sub-Tasks
Ensure docker builds are optimized
We should have a set of benchmarks that are run for each wrapper development language. These benchmarks should cover common invalidation scenarios:
- [ ] https://github.com/polywrap/monorepo/issues/1115
- [ ] https://github.com/polywrap/monorepo/issues/1116
- [ ] https://github.com/polywrap/monorepo/issues/1117
- [ ] https://github.com/polywrap/monorepo/issues/1118
Enable developers to build without docker
Developers should be able to build wrappers without needing docker. This can be done by having simple to follow dependency setup instructions, along with build step instructions that they can perform locally on their development machine.
- [x] https://github.com/polywrap/monorepo/issues/1119
Make it easier for developers to customize the docker build steps
Developers should be able to easily customize the Dockerfile's build steps when needed. This can already be performed manually by copying the Dockerfile from the .polywrap/wasm/build/image/ directory, but it should be a bit easier for developers to do this. This can be achieved by exposing a new eject command:
- [ ] https://github.com/polywrap/monorepo/issues/419
Explore and implement reproducible solutions with different Docker approaches
- [x] https://github.com/polywrap/monorepo/issues/1246