We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Fri, April 21, 2023
PAKman 7.2 Release Notes
![PAKman 7.2 release notes](https://cdn.sanity.io/images/gyrrgtvc/staging/62f1e98c3b6d1e9fdc0fd994e9106036bf8ed216-2016x1344.png?w=1024)
PAKman is the build system that builds your application into an easily distributable package. We started out with a simple goal, to build a build system that is fast, reliable, minimizes dependencies on external tooling and finally produces packages that are small and easy to distribute. Today we’re happy to announce PAKman version 7.2. Check out the action on github marketplace.
Let’s take a look at what’s in this release.
Faster Upgrades / Configuration Changes
Since version 7 is a major upgrade, there are a few breaking changes to be aware of. The format for the instellar.yml has been changed quite abit. Below are some of the changes to be aware of.
Dependencies
The dependency section now has an optional field called trace: true
we introduced this flag because some programming languages had issues with dependency tracing. We recommend on setting this to trace: true for all frameworks except Ruby on Rails.
Build
Previously you could only specify a single build destination. We’ve changed this and now it supports specifying multiple build destinations.
Change
build:
destination: '_build/prod/rel/someapp/*'
To
build:
destinations:
- '_build/prod/rel/someapp/*'
Run
The run section also received a few clean ups. You can now specify a separate commands section. Here is an elixir example:
run:
commands:
- name: migrate
binary: someapp
call: 'eval Someapp.Release.Tasks.migrate'
services:
- name: web
binary: someapp
start:
call: start
You’ll notice from above that the stop section is now gone. This is because our bug fix ensures that s6 is directly supervising the application which means s6 can handle the stop of our applications properly. This change gave us > 30% boost in upgrade speed across our applications, since now s6 can terminate applications much more effectively during the upgrade process.
Example Applications
We’ve also updated our documentation section to include more programming languages and example, if you wish to see how the new configuration should be written please see our Documentation.
If you’re unsure about how to upgrade please feel free to reach out to our support.
Reduced Dependency
In version < 7 all the apps built using PAKman still relied on an external github action for the Archiving step. With the release of 7.2 this dependency is now gone. Everything required to build a package is now contained within the PAKman action. This means in .github/workflows/deployment.yml you can remove the following:
- name: 'Archive'
uses: juankaram/archive-action@v1.0.0
with:
args: zip -r packages.zip /github/home/packages
Replace it with:
- name: 'Archive'
uses: upmaru/pakman@alpine-3.17-7.2
with:
entrypoint: /var/lib/pakman/bin/archive.sh
Please make sure to select the correct action version based on your requirement of alpine version.
Availability
We’re incredibly proud of this release since it resolves many long standing issues, adds support for many languages and frameworks and really optimizes the build performance. We highly recommend this upgrade for all existing applications and all new applications moving forward.
PAKman 7.2 is available for upgrade now, you can safely upgrade your application to get the performance gains right away. Please see the main page on github marketplace for all available versions.