Paketo Buildpacks | Blog

paketo.io

Paketo Java Buildpacks Updates Default to Java 21

It’s that time again, time to update the default Java version in Paketo Java buildpacks! Through our community RFC process, the Paketo Java subteam adopted an official policy on updating the default version of the JVM, RFC #0014. The policy states that “the default should be changed once the latest released LTS version of Java is at least one year old”. Java 21 was released in September of 2023, and it’s now October of 2024 which puts us over a year from the release.

Oracle GraalVM Support has Arrived!

Oracle GraalVM Support has Arrived! Today marks the start of support for building native image applications with Oracle GraalVM. Since Oracle released Oracle GraalVM under the GraalVM Free License, we’ve been receiving lots of feedback to add support for it. Starting with the 3.11.0 release of the Paketo Buildpack for Oracle we now have official support! With this first release, you can build native image applications with Oracle GraalVM. Building your application is simple.

Paketo's Bionic Builder Is Unsafe

Paketo’s Bionic Builder Is Unsafe It’s a strange thing for the Paketo Project to call out its builder as being unsafe, but the key detail here is that it’s the Ubuntu Bionic Builder we’re saying is unsafe. On May 31st, 2023, Ubuntu 18.04 (Bionic Beaver) went out of support for OSS customers (source). At the same time, the Paketo Project stopped supporting its Bionic Stacks and Builders based on Ubuntu 18.

Paketo buildpacks team is welcoming new contributors from Hacktoberfest!

What is Hacktoberfest? Hacktoberfest is a recurring (yearly) event that lasts the whole month of October and encourages participants to contribute to Open Source projects. The contributions can be technical (code) but also about documentation - the goal is to make a new population of developers familiar with Open Source. Digital Ocean and other companies organize this event each year and of course you win awards participating! You already have a Github account?

Bionic End of Support

As of May 31, 2023, Ubuntu 18.04 (Bionic Beaver) is out of support for open-source customers. As a result, Paketo will stop supporting Bionic in the project. If you currently depend on our Bionic-based offerings, this blog post will contain all of the relevant information about what this means and how to migrate. End of Support Details The removal of Bionic support in Paketo was announced and ratified in the Bionic End of Support RFC.

Java Buildpacks enhancements

During the last few weeks, some enhancements were brought to buildpacks related to the Java ecosystem. Let’s discover what’s new! TL;DR Checkout the samples repository for Java examples and the Paketo Buildpacks official documentation - those provide way more details about Paketo uses cases (native, certificates, network-less, etc.) than the different build plugins (Maven and Gradle) documentation. And they’re always up-to-date! In the rare event they’re not, create an issue or Pull Request or reach us on Slack, and we will fix that!

Manually testing changes to a Paketo Buildpack

While this article is mainly about how to manually test Java family Paketo buildpacks, still, most of the instructions should work fine with other Paketo buildpacks; and even non Paketo buildpacks! Suppose that you started working on a new feature for the spring-boot buildpack… Unit tests first Of course, during your development, you will make sure that you did not break any tests, regularly running go test -v ./... but you would also add new tests covering your new code; the classic combination go test -v .

Paketo Java Buildpacks Updates its Default JVM Version

Time and tides wait for no one, nor does software. The Oracle and the OpenJDK project have been steadily releasing new versions of Java for years now, with new Java versions every six months and now long-term support releases every two years (with Java 21, it’s dropped to two years from three). As of writing this post, the Java buildpack is currently using Java 11 as its default. This has been the same default version since the Paketo Java buildpack was released, but we’re falling behind and it’s time for a change.

Paketo Buildpacks 2023 - Onward and Upward

This last year was a big one for the project. We grew significantly, matured our buildpack and stack offerings, and found new ways to engage with our users. For 2023, we hope for all of that and more. We want to thank everyone who contributed to the project in 2022. Whether that was direct contibution to our codebases or feedback in the form of issues, discussions, or Slack messages, you’ve been a big part of the success we’ve had this year.

Paketo Buildpacks 2022 - Another Year in Review

In 2022, the major roadmap themes were improvements and expansions of our stack offerings, paying down significant technical debt in our dependency management system, and making efforts to improve buildpack authoring tools. Improving and Expanding our Base Image / Stack / Builder Offering We launched sweeping support for Ubuntu 2022.04 Jammy Jellyfish across our stacks, buildpacks, and builders. This was a tremendous effort with contributions across the entire Paketo Core team and community.

Buildpack Development: Selecting a Cloud-Native Buildpacks Library

In the Paketo Buildpacks community, we’ve standardized around writing our buildpacks using the Go language. Go works great for buildpack development because it compiles down to a relatively compact static binary, so our buildpack images are small, and it runs very fast, so our buildpacks run fast. It also provides great support for testing and since we want to have rock solid buildpacks, testing is very important as well. To write a buildpack in the Go language, it helps if you have a library that implements the Cloud-Native Buildpacks (CNB) specification.

Introducing the Contributor of the Month initiative

Why someone contributes to open source? The Open Source Way 2.0 guidebook describes some of the diverse motivations that lead individuals to participate in open source communities, including: Extrinsic motivation: contributing to OSS is part of their job, career advancement by developing code that it’s in the open or to collaboratively solve a problem they are facing. Intrinsic motivation: a sense of purpose while contributing to a cause that is beneficial to a community, collaborative learning and the perceived professional benefit that it produces.

WebSphere Liberty now available

I am pleased to announce that WebSphere Liberty is now included in the Paketo Liberty buildpack and available to currently entitled WebSphere Liberty users. WebSphere Liberty is built on Open Liberty and is a lightweight, efficient, Java™ EE, Jakarta EE and MicroProfile cloud-native runtime. The Paketo Liberty buildpack now gives you a choice to use WebSphere Liberty or Open Liberty to run your application. To use WebSphere Liberty in your container, set the BP_LIBERTY_INSTALL_TYPE environment variable to specify the install type wlp:

Growing a healthy open source community, one metric at a time

In this post, I plan to share the framework the Paketo Buildpacks project will be using to approach the goal of building and sustaining an inclusive community of users, contributors and maintainers; and how it translates to a set of action items we will be executing during the remaining of 2022. Currently, the project follows the Community Engagement guidelines and best practices outlined here as they represent a diverse set of initiatives designed to provide the community with tools and processes for improved collaboration.

Introducing the Paketo Web Servers Buildpack

The Paketo team is pleased to introduce the Web Servers buildpack, available in the Paketo Full Builder as of version 0.2.74. This buildpack allows you to serve static content using the popular NGINX or HTTPD web servers, with a variety of utilities for ease of use. Whether you have static files and a server configuration file that you want to package in an image, or you need to transform your dynamic content into static files and want the buildpack to generate the necessary server configuration file, the Web Servers buildpack has you covered.

Reintroducing the PHP Buildpack

There’s a new and exciting development in the Paketo Buildpacks project! The Paketo PHP Buildpack has been fully re-architected and is ready to make containerizing PHP applications simple and transparent. With the rearchitecture, the same base set of functionality is supported as in the original PHP buildpack, but the buildpacks have been modernized using the newest Paketo tooling and modularized to separate concerns into individual buildpacks. What’s new? Breaking it down The rearchitecture has made it vastly easier for maintainers and contributors to add new functionality to the language family, by breaking down what used to be three larger buildpacks, into 10+ new buildpacks responsible for single parts of the build process.

Paketo Buildpacks 2022 - Full speed ahead

Before we share the big plans we have for 2022, the Paketo Buildpacks Steering Committee would like to thank everyone that joined in the 2022 roadmap discussion, as well as everyone that’s provided feedback across all of the Paketo Buildpacks in 2021. The team is grateful for all of the feedback that we receive, as it helps to shape the project and ensure we’re building the tools that everyone wants to use.

Paketo Buildpacks 2021 - A Year in Review

Thanks so much to the Paketo community for all your hard work over the last year! The project made significant progress on the themes identified in our 2021 Roadmap. We won’t be able to cover everything in this blog post, but here are some highlights. Solidifying Existing Buildpacks While the work of standardizing our buildpacks continues, we are proud of the progres we have made, including: Moving to environment variables as the primary mode of configuration for all buildpacks Standardized handling of language-ecosystem environment variables such as JAVA_TOOL_OPTIONS and NODE_ENV Standardized versioning of buildpacks, stacks, and builders Standardized configuration options, including log levels and dependency mappings Inclusion of utility buildpacks in all language families, allowing users to: Configure additional CA Certificates Apply custom image labels Set runtime environment variables Contribute additional process types We also restructured the Python buildpack, improving modularity and composability.

Introducing the Liberty buildpack

Liberty is finally available in Paketo and included in the java buildpack! Liberty is an open application framework designed for the cloud. It’s small, lightweight, and designed with modern cloud-native application development in mind. With the Liberty buildpack, you can: Build Java apps from source or a pre-configured on-prem Liberty Install Liberty and user custom features Install Liberty interim fixes Create UBI-based OCI images What do you need? Your application source or a pre-configured on-prem Liberty Docker pack Let’s get started!

A Philosophy for Developing Paketo Buildpacks, Part 1

Photo by Jon Flobrant on Unsplash Sharing what we’ve learned The Paketo Buildpacks Team has been developing our Cloud Native Buildpacks for the better part of 2 years now. In the process, we’ve learned a lot about what works well and what doesn’t. We’ve made mistakes and interated toward solutions that are more flexible, easier to maintain, and provide better experiences for our users. In the process, we’ve developed a set of guidelines – a philosophy, maybe – for how we think about developing buildpacks.

Java Buildpack Support and Debug Enhancements

I’m pleased to announce that the Paketo Java Buildpack has been enhanced to make it even easier to analyze and debug your JVM based applications. A host of features have been added or integrated in the form of environment variable flags, and some features which previously required image rebuilds can now simply be toggled at runtime. This post will outline how to both configure the JVM itself and make use of the following features:

Building a Cloud Native Buildpack Isn’t as Hard as You Think

Maybe you’ve heard that many companies today are transitioning to, or have already transitioned to, a container-based platform like Kubernetes. With this movement comes the need to containerize your applications, new and old. Buildpacks provide a seamless mechanism for doing that without Dockerfiles. Paketo Buildpacks is a community-driven project that provides Cloud Native Buildpacks implementations for the most popular languages. Buildpacks provide great out-of-box support for many languages, but what if you need a buildpack that doesn’t exist yet?

Introducing a re-architected .NET Core Buildpack!

On behalf of the Paketo contributors, I’m pleased to unveil the new and improved .NET Core Buildpack! With the release of Paketo .NET Core Buildpack 0.1.0, you’ll enjoy a host of new features and improvements that will make containerizing your .NET apps a breeze. 🍃 With the new buildpack, you can: Build .NET 5 apps Build your app from source code, from a framework-dependent deployment (FDD), from a framework-dependent executable (FDE), or from a self-contained deployment Build Visual Basic apps Have source code removed from final app image.

2021 Paketo Buildpacks Roadmap

We’re not even at the one year anniversary of the Paketo Buildpacks launch, but we’ve already got so much to celebrate 🎉. 2020 was a busy year for the Paketo Buildpacks core development team. Looking back on the last year, a few highlights stand out: Establishing our project governance and RFC process Moving all project tooling to Github-based workflows Building out a foundational set of buildpacks for some of the most popular languages including Java, Node.

Paketo Buildpacks Hot Topic at Cloud Foundry Summit

Paketo Buildpacks were a hot topic at the recently concluded Cloud Foundry Summit, the first virtual Summit run by the Cloud Foundry Foundation. The Summit featured project updates, particularly in the Kubernetes space, including a talk on Paketo Buildpacks. Dan Thornton, an engineer contributing to the Paketo Buildpacks project, maintained that they are the ideal tool for transforming app source code into container images. So, we wanted to share Dan’s talk here and dive into a Q&A of all of the questions we didn’t get to answer during this session.

Building apps for Kubernetes? Get to Know Paketo Buildpacks.

I’m excited to announce the launch of Paketo Buildpacks, a collection of Cloud Native Buildpacks for the most popular languages and frameworks. Paketo Buildpacks make it easy for you to build and patch containerized apps so that you can spend all your time on the thing that matters the most… developing great software. First off… what are Paketo Buildpacks, and why would I use them? Buildpacks provide a higher-level abstraction for building apps