You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RFC 0007 has been accepted and merged. This is a tracking issue for implementing this work.
Step 1 - Development backwards compatibility
In order to allow for the development of new buildpacks such as <web-server>-zero-configuration and <web-server>-start we will need a buildpack that can provide the web-server in question without doing any other configuration. In order to achieve this I propose the nginx and httpd buildpacks each respectively utilize a new provision nginx-development and httpd-development or'd to the existing buildpack. The new buildpacks will be able to require the development provisions and when the <web-server> buildpack detects that a development provision was required it can modify it's build process to only provide the <web-server> dependency. This will also have the advantage of isolating the provision steps in build which will be useful when those parts are the only ones that will be needed in the buildpack going forward. This API will allow the buildpack to continue to function as it normally would but allow buildpacks to be developed using the future expected behavior.
The new buildpacks that cover existing functionality in the <web-server> buildpacks such as zero configuration and writing start commands are being exported to new buildpacks. These need to be written and tested in the same way that they are in the current <web-server> buildpacks.
Step 3 - Convert existing buildpacks and update API
Once the new buildpacks are developed the existing <web-server> buildpacks can be converted into their new role and dependency providing buildpacks. The development API can also be removed at this stage and the developed buildpacks can swap over.
This will make the web-server buildpacks more similar to existing buildpack ecosystems and will make the dependencies easier to utilize by other buildpack families.
The text was updated successfully, but these errors were encountered:
ForestEckhardt
changed the title
Implement RFC 0007
Implement RFC 0007 - Web Server Re-architecture
Sep 26, 2022
Web Server Re-architecture
Describe the Enhancement
RFC 0007 has been accepted and merged. This is a tracking issue for implementing this work.
Step 1 - Development backwards compatibility
In order to allow for the development of new buildpacks such as
<web-server>-zero-configuration
and<web-server>-start
we will need a buildpack that can provide theweb-server
in question without doing any other configuration. In order to achieve this I propose thenginx
andhttpd
buildpacks each respectively utilize a new provisionnginx-development
andhttpd-development
or'd to the existing buildpack. The new buildpacks will be able to require the development provisions and when the<web-server>
buildpack detects that a development provision was required it can modify it's build process to only provide the<web-server>
dependency. This will also have the advantage of isolating the provision steps in build which will be useful when those parts are the only ones that will be needed in the buildpack going forward. This API will allow the buildpack to continue to function as it normally would but allow buildpacks to be developed using the future expected behavior.Step 2 - Develop new buildpacks
The new buildpacks that cover existing functionality in the
<web-server>
buildpacks such as zero configuration and writing start commands are being exported to new buildpacks. These need to be written and tested in the same way that they are in the current<web-server>
buildpacks.Nginx
nginx-zero-configuration
nginx-zero-configuration#1nginx-start
nginx-start#1HTTPD
httpd-zero-configuration
httpd-zero-configuration#1httpd-start
httpd-start#1Step 3 - Convert existing buildpacks and update API
Once the new buildpacks are developed the existing
<web-server>
buildpacks can be converted into their new role and dependency providing buildpacks. The development API can also be removed at this stage and the developed buildpacks can swap over.Nginx
nginx
build order after re-architecture #129HTTPD
httpd
build order after re-architecture #130Motivation
This will make the
web-server
buildpacks more similar to existing buildpack ecosystems and will make the dependencies easier to utilize by other buildpack families.The text was updated successfully, but these errors were encountered: