-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spin core refactor #763
Spin core refactor #763
Conversation
4df420f
to
87ee7f5
Compare
89d253d
to
50b2b39
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Thanks for taking on this huge effort!
This looks great to me! I especially love the design of DynamocHostComponent that can update host components' data in runtime (whene http request comes in), and the design of LockedComponent. I do wonder why do you decide to impl In addition, what is the use cases of |
HostComponent Data is currently constructed per-request, not at startup. Preinitialization of some data would be possible but I don't see much benefit for the current set of host components.
One purpose is to provide a more stable interface between |
dc57dd8
to
4053aef
Compare
4053aef
to
a35ed5d
Compare
Have switched to this branch as the Spin binary I am using on a daily basis, and I am hitting the error below when trying to run https://github.com/coderoflagos/bartholomew-sample.
|
Bartholomew tries to create a cache file: https://github.com/fermyon/bartholomew/blob/c602220ee4da6b2a22b17f0b04ff8eba1b8adc75/src/content.rs#L133 Looks like Spin currently allows writing new files even without |
ff6f5db
to
c179934
Compare
Bartholomew issue should be fixed in fermyon/bartholomew#135 |
Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Signed-off-by: Lann Martin <lann.martin@fermyon.com>
This will replace spin-trigger in a future commit. Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Signed-off-by: Lann Martin <lann.martin@fermyon.com>
It isn't clear why this was included in the first place and it doesn't appear to be used now. Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Also add AppComponent::require_metadata for interface consistency. Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Also add AppComponent::require_metadata for interface consistency. Signed-off-by: Lann Martin <lann.martin@fermyon.com>
Signed-off-by: Lann Martin <lann.martin@fermyon.com>
The new trigger code expects the working directory to be absolute, which is the case for tempdirs but not necessarily `--temp`. Fix by `.canonicalize()`ing the work dir. Signed-off-by: Lann Martin <lann.martin@fermyon.com>
c179934
to
c12caa5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been using a build from this branch as my main Spin binary for a while now and everything appears to be in order.
As we start working on various parts of the codebase, I am sure we will start finding small bits that we can improve, but overall, the improvements in this PR are great!
Thank you!
LGTM
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Closes fermyon#799. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Closes fermyon#799. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Closes fermyon#799. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Closes fermyon#799. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: fermyon#763. Closes fermyon#799. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
Set base path in spin-http rather than joining it as part of the route. Split test configs in spin-testing because the trigger's configuration is different for http and redis. Refs: fermyon#763. Signed-off-by: Konstantin Shabanov <mail@etehtsea.me>
This refactors Spin to use the new
spin-core
andspin-app
crates that we've been developing in an internal prototype.With a few small exceptions I have attempted to not change the visible behavior of
spin up
, but with so many updates I'm sure I've missed some things.There are thousands of lines of changes here, so I've tried to split things up into reasonable commits for those who prefer to review that way.