Merge pull request #8466 from dokku/update-multi-packages

chore: bump dependencies in tests/apps/multi
This commit is contained in:
Jose Diaz-Gonzalez
2026-04-14 04:23:19 -04:00
committed by GitHub
14 changed files with 442 additions and 3093 deletions

View File

@@ -1,3 +0,0 @@
{
"directory": "static/components"
}

View File

@@ -1,6 +1,6 @@
node_modules
static/components
static/.tmp
.sass-cache
.bundle
.DS_Store
templates/content.html

View File

@@ -1,6 +1,5 @@
source "https://rubygems.org"
ruby '3.1.4'
ruby '4.0.2'
gem 'compass', ">= 1.0.1"
gem 'sass-globbing'
gem 'kramdown', '~> 2.5'

View File

@@ -1,37 +1,22 @@
GEM
remote: https://rubygems.org/
specs:
chunky_png (1.4.0)
compass (1.0.3)
chunky_png (~> 1.2)
compass-core (~> 1.0.2)
compass-import-once (~> 1.0.5)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
sass (>= 3.3.13, < 3.5)
compass-core (1.0.3)
multi_json (~> 1.0)
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
ffi (1.15.5)
multi_json (1.15.0)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
sass (3.4.25)
sass-globbing (1.1.5)
sass (>= 3.1)
kramdown (2.5.2)
rexml (>= 3.4.4)
rexml (3.4.4)
PLATFORMS
ruby
DEPENDENCIES
compass (>= 1.0.1)
sass-globbing
kramdown (~> 2.5)
CHECKSUMS
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
RUBY VERSION
ruby 3.1.4p223
ruby 4.0.2
BUNDLED WITH
2.3.26
4.0.6

View File

@@ -1,43 +0,0 @@
'use strict';
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
compass: {
options: {
sassDir: 'static/styles',
cssDir: 'static/.tmp/styles',
generatedImagesDir: 'static/.tmp/images/generated',
imagesDir: 'static/images',
javascriptsDir: 'static/scripts',
fontsDir: 'static/styles/fonts',
importPath: 'static/components',
httpImagesPath: '/images',
httpGeneratedImagesPath: '/images/generated',
httpFontsPath: '/styles/fonts',
relativeAssets: false,
assetCacheBuster: false,
bundleExec: true,
raw: 'Sass::Script::Number.precision = 10\n'
},
dist: {
options: {
// generatedImagesDir: '<%= yeoman.dist %>/static/images/generated'
}
},
server: {
options: {
debugInfo: false
}
}
}
});
grunt.registerTask('heroku', [
'compass:server'
]);
};

View File

@@ -1,3 +1,3 @@
This is a sample application to test heroku buildpack multi for integrating with [herokuish](https://github.com/gliderlabs/herokuish)
I am choosing to use the python, nodejs, and ruby buildpacks to create a very simple flask app that performs a bower install and a simple grunt task using compass.
It uses the python, nodejs, and ruby buildpacks to create a simple flask app. The ruby buildpack provides kramdown for Markdown-to-HTML conversion. The node buildpack manages Bootstrap via npm and compiles SCSS with dart-sass. The python buildpack runs the Flask application.

View File

@@ -1,9 +1,6 @@
import os
from flask import Flask, render_template
try:
from werkzeug.wsgi import SharedDataMiddleware
except ImportError:
from werkzeug.middleware.shared_data import SharedDataMiddleware
from werkzeug.middleware.shared_data import SharedDataMiddleware
app = Flask(__name__)
@@ -11,8 +8,8 @@ app = Flask(__name__)
def hello_world():
return render_template('index.html')
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, { '/': os.path.join(os.path.dirname(__file__), 'static') })
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, { '/': os.path.join(os.path.dirname(__file__), 'static/.tmp') })
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {'/': os.path.join(os.path.dirname(__file__), 'static')})
app.wsgi_app = SharedDataMiddleware(app.wsgi_app, {'/': os.path.join(os.path.dirname(__file__), 'static/.tmp')})
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)

View File

@@ -1,21 +0,0 @@
{
"name": "test-buildpack-multi",
"version": "0.0.0",
"authors": [
"Al Johri <al.johri@gmail.com>"
],
"license": "MIT",
"private": true,
"directory": "static/components",
"ignore": [
"**/.*",
"node_modules",
"statc/components",
"test",
"tests"
],
"dependencies": {
"bootstrap-sass": "twbs/bootstrap-sass#~3.1.1"
},
"registry": "https://registry.bower.io"
}

View File

@@ -0,0 +1,3 @@
# Hello, world!
This is a sample website using the Heroku Multi Buildpack on Dokku. It uses the Python, Ruby, and Node buildpacks. The Node buildpack compiles SCSS stylesheets with dart-sass and manages frontend dependencies. The Ruby buildpack converts Markdown content to HTML with kramdown. And last but not least, the Python buildpack runs the Flask application.

View File

@@ -0,0 +1,10 @@
require 'kramdown'
input_path = File.join(__dir__, 'content.md')
output_path = File.join(__dir__, 'templates', 'content.html')
markdown = File.read(input_path)
html = Kramdown::Document.new(markdown).to_html
File.write(output_path, html)
puts "Generated #{output_path} from #{input_path}"

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +1,18 @@
{
"author": "Al Johri",
"dependencies": {
"bower": "^1.8.14",
"grunt": "~1.6.1",
"grunt-cli": "~1.5.0",
"grunt-contrib-compass": "~1.1.1",
"load-grunt-tasks": "~5.1.0",
"tmp": "0.2.5"
"bootstrap": "^5.3.8",
"sass": "^1.99.0"
},
"description": "Test application for heroku multi buildpack.",
"engines": {
"node": "12.x.x",
"npm": "6.x.x"
"node": "24.x.x",
"npm": "11.x.x"
},
"license": "ISC",
"name": "test-buildpack-multi",
"scripts": {
"postinstall": "echo $PATH && ./node_modules/bower/bin/bower install --allow-root && ./node_modules/grunt-cli/bin/grunt --verbose --debug heroku"
"postinstall": "bundle exec ruby generate_content.rb && mkdir -p static/.tmp/styles && npx sass static/styles/main.scss static/.tmp/styles/main.css --load-path=node_modules"
},
"version": "0.0.0"
}
}

View File

@@ -1,6 +1,3 @@
// override scss variables within bootsrap by declaring them
// before importing bootstrap
$primary: #428bca;
$brand-primary: #428bca !default;
@import "bootstrap-sass/vendor/assets/stylesheets/bootstrap";
@import "bootstrap/scss/bootstrap";

View File

@@ -6,29 +6,23 @@
<title>Sample Webpage</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<meta name="author" content="">
<link rel="stylesheet" type="text/css" href="/styles/main.css">
<script type="text/javascript" src="/components/bootstap-sass/vendor/assets/javascripts/bootstrap/bootstrap.js"></script>
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="jumbotron">
<h1>
Hello, world!
</h1>
<p>
This is a sample website using the Heroku Multi Buildpack on Dokku. It uses the python, ruby, and node buildpacks. The node buildpack is for using bower and grunt. The ruby buildpack is for running compass. And last but not last, the python buildpack is to run the flask application.
</p>
<p>
<a class="btn btn-primary btn-large" href="#">Learn more</a>
</p>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="p-5 mb-4 bg-body-tertiary rounded-3">
{% include 'content.html' %}
<p>
<a class="btn btn-primary btn-lg" href="#">Learn more</a>
</p>
</div>
</div>
</div>
</div>
</body>
</html>