Skip to content
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

Update to latest #1

Merged
merged 39 commits into from
Dec 22, 2022
Merged

Update to latest #1

merged 39 commits into from
Dec 22, 2022

Conversation

niels-van-den-broeck
Copy link

No description provided.

schneems and others added 30 commits September 27, 2019 16:03
The goal of this PR is to add a github action that checks for the presence of a changelog entry.

It is better to add entries as a PR is merged instead of having to remember what was merged and generate a changelog at release time.

By automating this check, it's one less thing the maintainer has to remember, and it's one less thing a change might be blocked on i.e. "Looks good, but please add a changelog entry".

Let me know if you have any questions and Happy Friday!
The previous PR had a bug where the REGEX for grep was not properly escaped. This PR fixes that issue.
…x-escaping

[changelog skip] Fix Escaping in Changelog Script
And clean up the existing changelog slightly.

Closes heroku#175.
Bumps [json](https://github.com/flori/json) from 2.0.2 to 2.3.1.
- [Release notes](https://github.com/flori/json/releases)
- [Changelog](https://github.com/flori/json/blob/master/CHANGES.md)
- [Commits](flori/json@v2.0.2...v2.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rake](https://github.com/ruby/rake) from 10.4.0 to 12.3.3.
- [Release notes](https://github.com/ruby/rake/releases)
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc)
- [Commits](ruby/rake@v10.4.0...v12.3.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [excon](https://github.com/excon/excon) from 0.54.0 to 0.78.0.
- [Release notes](https://github.com/excon/excon/releases)
- [Changelog](https://github.com/excon/excon/blob/master/changelog.txt)
- [Commits](excon/excon@v0.54.0...v0.78.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#179)

Bumps [rack](https://github.com/rack/rack) from 1.6.11 to 1.6.13.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](rack/rack@1.6.11...1.6.13)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Since with exit on error, if that line is ever reached,
the exit code will always be zero anyway.
In order to prevent the build completing apparently successfully, but
the app fail to boot at runtime due to stack incompatibility.

At first glance this would seem unnecessary due to the stack-specific
URL meaning the `curl` would 404 on supported stacks. However heroku#165
means the Cedar-14 binary is installed on all stacks, and on Heroku-20
causes the failures at runtime seen in heroku#166.

Future PRs will fix the curl/binary handling to use stack-specific URLs,
however it's still nicer to explicitly handle unsupported stacks with a
clear error message than a 404.
The caching of the nginx archive isn't used in production (nothing ever
writes to the cached file) or in CI. Whilst it may speed up some local
development workflows slightly, on a fast connection downloading from
S3 takes less than a second, so isn't worth the added `bin/compile`
complexity / confusion as to behaviour in production.
- The `s3-external-1` endpoint is a legacy reference to `us-east-1`:
  https://stackoverflow.com/a/26622229
- The path based bucket specification is deprecated:
  https://aws.amazon.com/blogs/aws/amazon-s3-path-deprecation-plan-the-rest-of-the-story/
Previously the nginx version command was failing since the
`nginx-$STACK` binary does not exist, resulting in output like:

```
remote: -----> Installed directory to /app/bin
```

This failure went unnoticed since `pipefail` mode is not enabled.

The nginx binary path has been fixed, and the command now uses
`-v` instead of `-V` since the former only output one line, avoiding
the need to `head -n1`. In addition, the `cut` usage shows more of
the original line in the case of no match.

Fixes heroku#174.
Enables the following bash modes:
- `u`: error on undefined variables
- `pipefail`: error if an earlier command in a pipe sequence exits
  non-zero, rather than only if the final command is non-zero

See:
http://redsymbol.net/articles/unofficial-bash-strict-mode/
Buildpack compile fixes and refactoring
Since currently the archive on the buildpack registry contains
a lot more than the ~15 files needed at compile time:

```
$ curl -sSf https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku-community/static.tgz | tar -zt | wc -l
234
```

See:
https://devcenter.heroku.com/articles/buildpack-registry#creating-a-buildpack-descriptor
The `mruby_post_read_handler` directive should always have been outside
the `location` block, however due to a bug in ngx_mruby the previous
implementation happened to still work.

In ngx_mruby 1.18.4 this silently stopped being the case:
matsumotory/ngx_mruby#210

And in ngx_mruby 1.18.5 this incorrect usage was turned into an error:
matsumotory/ngx_mruby#217

Moving `mruby_post_read_handler` outside the location block is a no-op
for the older ngx_mruby currently used by this buildpack, but ensures
compatibility with the newer ngx_mruby being used in the upcoming
Heroku-20 support PR.

See matsumotory/ngx_mruby#210.
This adds support for the new Heroku-20 stack:
https://devcenter.heroku.com/articles/heroku-20-stack

The buildpack's binaries were previously generated by:
https://github.com/hone/docker-nginx-builder

However that repository is quite out of date, and much of its complexity
is no longer required thanks to improvements to `ngx_mruby`'s upstream
build scripts/process:
https://github.com/matsumotory/ngx_mruby/tree/v2.2.3/docs/install
https://github.com/matsumotory/ngx_mruby/blob/v2.2.3/build.sh

The new build script has been co-located in this buildpack to improve
discoverability, and prevent needing to open PRs against multiple repos
when performing updates.

The buildpack previously used a subdirectory of the Ruby buildpack's
S3 bucket, however I've created a new S3 bucket to improve isolation.

This PR adds support for building new binaries for all stacks, however
for now only switches to them for Heroku-20, so that the newer nginx
version can be tested on the new stack for a while before backporting
to the others.

The newer ngx_mruby required a compatibility fix, however that has
already landed in heroku#181.

The binaries have been uploaded already, using the newly documented
steps in the README.

Closes heroku#166.
Closes W-8367040.
Previously the compile silently skipped the SSL module:

```
Configuration summary
  ...
  + OpenSSL library is not used
```

Which causes failures if SSL related directives are used.

Now the `--with-http_ssl_module` flag is passed, which results in:

```
Configuration summary
  ...
  + using system OpenSSL library
```

And `nginx -V` now includes an additional line:

```
built with OpenSSL 1.1.1f  31 Mar 2020
```

See:
https://github.com/matsumotory/ngx_mruby/tree/master/docs/install#3-a-using-buildsh

Fixes heroku#185.
Closes W-8449334.
Upgrades nginx from 1.9.7 to 1.19.0, to match that already used for
Heroku-20. In addition, the buildpack now uses the correct binaries
for these stacks, rather than using a binary compiled for Cedar-14.

Fixes heroku#165.
Since this buildpack exists on the buildpack registry under the name
`heroku-community/static`, and using buildpack registry versions is
recommended over the GitHub URLs.
The error message is now output to `stderr` otherwise it's not shown.

Closes GUS-W-8799430.
Refs heroku#198.
To pick up heroku#202.

Refs GUS-W-8799430.
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
edmorley and others added 9 commits May 18, 2022 12:08
…u#236)

Bumps [sinatra](https://github.com/sinatra/sinatra) from 1.4.7 to 2.2.0.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](sinatra/sinatra@v1.4.7...v2.2.0)

---
updated-dependencies:
- dependency-name: sinatra
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Since they are EOL and it's no longer possible to perform builds
using them.

Closes heroku#214.
GUS-W-10346704.
The binary build process for this buildpack uses the default `nginx`
version specified by `ngx_mruby`. As such, updating `ngx_mruby`
from `2.2.3` to `2.2.4` means the bundled `nginx` version is also
updated from `1.19.0` to `1.21.3`:
https://github.com/matsumotory/ngx_mruby/blob/v2.2.3/nginx_version
https://github.com/matsumotory/ngx_mruby/blob/v2.2.4/nginx_version

Changes:
https://github.com/matsumotory/ngx_mruby/releases/tag/v2.2.4
https://nginx.org/en/CHANGES

GUS-W-10346704.
To pick up heroku#238 and heroku#240.

GUS-W-10346704.
…#242)

Bumps [rack](https://github.com/rack/rack) from 2.2.3 to 2.2.3.1.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md)
- [Commits](rack/rack@2.2.3...2.2.3.1)

---
updated-dependencies:
- dependency-name: rack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Deprecate buildpack

This build pack is currently not maintained by a team and carries no support obligations. Let's make this clearer by deprecating the build pack.

This is done right before the release of heroku-22 as supporting new stacks require maintenance effort. Also before the desire to re-write it as a CNB comes into play.

* Bring back Readme contents

Having README docs makes it easier for developers to lookup features while they transition off the buildpack.

* Update docs for deprecation

- Mention the need to re-write mruby parts
- Link to a specific nginx build pack and give commands on how to add it
- Give specific command to remove this buildpack from app
- Mention in README we're open to extra docs/help for people migrating off.
- Space after testing header because it's my thing and I looked at those docs. 
- Added a link to where  `Nginx::Request` is defined because it's not obvious it comes from ngx_mruby

* Update README.md

Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>

* Update bin/compile

Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>

* Address PR comments

Co-authored-by: Ed Morley <501702+edmorley@users.noreply.github.com>
@niels-van-den-broeck niels-van-den-broeck merged commit b038b69 into master Dec 22, 2022
@niels-van-den-broeck niels-van-den-broeck deleted the update-to-latest branch December 22, 2022 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants