{"id":19040643,"url":"https://github.com/cloudfoundry/buildpack-packager","last_synced_at":"2025-07-14T18:10:26.667Z","repository":{"id":18155055,"uuid":"21251244","full_name":"cloudfoundry/buildpack-packager","owner":"cloudfoundry","description":"Buildpack Packager","archived":false,"fork":false,"pushed_at":"2023-02-23T22:19:56.000Z","size":222,"stargazers_count":24,"open_issues_count":0,"forks_count":31,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-06-14T00:03:14.349Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":"Unmaintained","scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudfoundry.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-26T18:52:40.000Z","updated_at":"2025-02-26T12:05:14.000Z","dependencies_parsed_at":"2024-06-20T11:14:01.640Z","dependency_job_id":"fa8282d0-ed36-4507-94c4-fd25989c7b47","html_url":"https://github.com/cloudfoundry/buildpack-packager","commit_stats":{"total_commits":194,"total_committers":52,"mean_commits":3.730769230769231,"dds":0.8814432989690721,"last_synced_commit":"f88bfee41cf46d5b6ea487d6c30a99ed7c0e51eb"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/cloudfoundry/buildpack-packager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fbuildpack-packager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fbuildpack-packager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fbuildpack-packager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fbuildpack-packager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudfoundry","download_url":"https://codeload.github.com/cloudfoundry/buildpack-packager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudfoundry%2Fbuildpack-packager/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262307403,"owners_count":23291070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T22:24:02.971Z","updated_at":"2025-06-27T23:03:19.133Z","avatar_url":"https://github.com/cloudfoundry.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deprecated\n\nThis repo has been deprecated in favor of https://github.com/cloudfoundry/libbuildpack/tree/master/packager/buildpack-packager\n\n# Buildpack Packager\n\nA [RubyGem](https://rubygems.org/) that provides tooling to package a buildpack for upload to Cloud Foundry.\n\nFor officially supported Cloud Foundry buildpacks, it is used in conjunction with [compile-extensions](https://github.com/cloudfoundry-incubator/compile-extensions).\n\n\n# Usage\n\n## Packaging a Buildpack\n\nWithin your buildpack directory:\n\n1. Create a `Gemfile` and the line `gem 'buildpack-packager', git: 'https://github.com/cloudfoundry-incubator/buildpack-packager'`.\n1. Run `bundle install`.\n1. Create a `manifest.yml`\n1. Run the packager for uncached or cached mode:\n\n\t```\n\tbuildpack-packager [cached|uncached]\n\t```\n\nIn either mode, the packager will add (almost) everything in your\nbuildpack directory into a zip file.  It will exclude anything marked\nfor exclusion in your manifest.\n\nIn `cached` mode, the packager will download and add dependencies as\ndescribed in the manifest.\n\n\n## Examining a manifest\n\nIf you'd like to get a pretty-printed summary of what's in a manifest,\nrun in `list` mode:\n\n```\nbuildpack-packager list\n```\n\nExample output:\n\n```\n+----------------------------+------------------------------+------------+\n| name                       | version                      | cf_stacks  |\n+----------------------------+------------------------------+------------+\n| ruby                       | 2.0.0                        | cflinuxfs2 |\n| ruby                       | 2.1.5                        | cflinuxfs2 |\n| ruby                       | 2.1.6                        | cflinuxfs2 |\n| ruby                       | 2.2.1                        | cflinuxfs2 |\n| ruby                       | 2.2.2                        | cflinuxfs2 |\n| jruby                      | ruby-1.9.3-jruby-1.7.19      | cflinuxfs2 |\n| jruby                      | ruby-2.0.0-jruby-1.7.19      | cflinuxfs2 |\n| jruby                      | ruby-2.2.2-jruby-9.0.0.0.rc1 | cflinuxfs2 |\n| node                       | 0.12.2                       | cflinuxfs2 |\n| bundler                    | 1.9.7                        | cflinuxfs2 |\n| libyaml                    | 0.1.6                        | cflinuxfs2 |\n| openjdk1.8-latest          | -                            | cflinuxfs2 |\n| rails3_serve_static_assets | -                            | cflinuxfs2 |\n| rails_log_stdout           | -                            | cflinuxfs2 |\n+----------------------------+------------------------------+------------+\n```\n\n### Option Flags\n\n#### --force-download\n\nBy default, `buildpack-packager` stores the dependencies that it\ndownloads while building a cached buildpack in a local cache at\n`~/.buildpack-packager`. This is in order to avoid redownloading them\nwhen repackaging similar buildpacks. Running `buildpack-packager\ncached` with the `--force-download` option will force the packager\nto download dependencies from the s3 host and ignore the local cache.\n\n#### --use-custom-manifest\n\nIf you would like to include a different manifest file in your\npackaged buildpack, you may call `buildpack-packager` with the\n`--use-custom-manifest [path/to/manifest.yml]`\noption. `buildpack-packager` will generate a buildpack with the\nspecified manifest. If you are building a cached buildpack,\n`buildpack-packager` will vendor dependencies from the specified\nmanifest as well.\n\n\n# Manifest\n\nThe packager looks for a `manifest.yml` file in the current working\ndirectory, which should be the root of your buildpack.\n\nA sample manifest (all keys (excepting dependency_deprecation_dates) are required):\n\n```yaml\n---\nlanguage: ruby\n\nurl_to_dependency_map:\n- match: bundler-(\\d+\\.\\d+\\.\\d+)\n  name: bundler\n  version: $1\n- match: ruby-(\\d+\\.\\d+\\.\\d+)\n  name: ruby\n  version: $1\n\ndependencies:\n  - name: bundler\n    version: 1.7.12\n    uri: https://pivotal-buildpacks.s3.amazonaws.com/ruby/binaries/lucid64/bundler-1.7.12.tgz\n    sha256: 09b15ac14f7b46ac6d0a85102cef4671d95f6d6581e01dbcdbab0e64df83c4d5\n    cf_stacks:\n      - lucid64\n      - cflinuxfs2\n  - name: ruby\n    version: 2.1.4\n    uri: https://pivotal-buildpacks.s3.amazonaws.com/ruby/binaries/lucid64/ruby-2.1.4.tgz\n    sha256: e3e6023764357324260e9efab1f1690b7bcc0c69f82e8589797b262eb5df2831\n    cf_stacks:\n      - lucid64\n\ndependency_deprecation_dates:\n- match: 2.1.\\\\d\n  version_line: 2.1\n  name: ruby\n  date: 2016-03-30\n\nexclude_files:\n  - .gitignore\n  - private.key\n```\n\n## language (required)\n\nThe language key is used to give your zip file a meaningful name.\n\n\n## url_to_dependency_map (required)\n\nA list of regular expressions that extract and map the values of `name` and `version` to a corresponding dependency. \n\n\n## dependencies (required)\n\n\nThe dependencies key specifies the name, version, uri, sha256, and the\ncf_stacks (the root file system(s) for which it is compiled for) of a\nresource which the buildpack attempts to download during staging. By\nspecifying them here, the packager can download them and install them\ninto the `dependencies/` folder in the zip file.\n\nAll keys are required:\n\n- `name`, `version`, and `uri`:\nRequired for `url_to_dependency_map` to work. Make sure to create a new entry in the `url_to_dependency_map` if a matching regex does not exist for the dependency to be curled.\n\n- `sha256`:\nRequired to ensure that dependencies being packaged for 'cached' mode have not been compromised\n\n- `cf_stacks`:\nRequired to ensure the right binary is selected for the root file system in which an app will be running on.  Currently supported root file systems are lucid64(default) and cflinuxfs2. *Note that if the same dependency is used for both root file systems, both can be listed under the `cf_stacks` key.*\n\nRead more on the [compile-extensions repo](https://github.com/cloudfoundry-incubator/compile-extensions).\n\n\n## dependency_deprecation_dates (optional)\n\n\nThe dependency_deprecation_dates specifies the date at which dependencies\nwill be end of life (and thus removed from the buildpack). By specifying\nEOL here, buildpack maintainers can set a date which will trigger warnings\nfor users 30 days before the EOL date is reached.\n\nAll keys are required:\n\n- `name`, `match`:\nRequired for `dependency_deprecation_dates` to work. Dependencies are matched to the\nname and a regexp of `match` and the dependency version\n\n- `date`, `version_line`:\nRequired to generate the warning message for users, eg:\n`WARNING: Ruby 2.1 will no longer be available in new buildpacks released after 2016-03-30`\n\n## exclude_files (required)\n\nThe exclude key lists files you do not want in your buildpack. This is\nuseful to remove sensitive information or extraneous files before uploading.\n\n# Development\n\n## Propagating Packager Changes to CF Buildpacks\n\nLatest changes to master will not be automatically reflected in the various Cloud Foundry buildpacks.\nTo propagate buildpack-packager changes:\n\n1. Update the version in `lib/buildpack/packager/version.rb`.\n2. Commit this change and push to master.\n3. Tag the new version with a release tag (e.g., `git tag v2.2.6`).\n4. Push the tag to origin with `git push --tags`.\n5. Update the `cf.Gemfile`s in the various buildpacks with the new release tag like so:\n```\ngem 'buildpack-packager', git: 'https://github.com/cloudfoundry/buildpack-packager', tag: 'v2.2.6'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fbuildpack-packager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudfoundry%2Fbuildpack-packager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudfoundry%2Fbuildpack-packager/lists"}