Automating packaging and software distribution on macOS.
OTHER License
Bot releases are visible (Hide)
Published by homebysix over 3 years ago
This is the release candidate for AutoPkg 2.3.
NEW FEATURES:
AutoPkg now supports recipes in yaml format (#698). Yaml recipes tend to be more human-readable than plist recipes, especially for those who don't work with plists on a daily basis.
AutoPkg can produce new recipes in yaml format using autopkg new-recipe SomeCoolApp.pkg.recipe.yaml
and make overrides in yaml format using autopkg make-override --format=yaml SomeCoolApp.pkg
. Searching for public yaml recipes on GitHub is also possible using autopkg search
.
NOTES FOR RECIPE AUTHORS:
OTHER CHANGES FROM 2.2:
autopkg make-override
no longer creates override for deprecated recipes by default (#685)autopkg new-recipe
autopkg repo-add
and autopkg repo-delete
to fail for repos in GitHub organizations with non-alphanumeric characters in their names (#712, #715)autopkg list-processors --help
, matching behavior of most other verbs (#717)autopkg list-recipes --plist
is now text instead of binary (this matches previous behavior in AutoPkg 1.x)autopkg repo-add
and autopkg repo-delete
(#704)uninstaller_item_location
path (#702)KNOWN ISSUES:
autopkg search
results (regardless of whether the recipes are plist or yaml)Published by nmcspadden about 4 years ago
NEW FEATURES
MunkiImporter now supports Munki repo plugins, thanks to @tboyko. The default behavior
is still to use FileRepo as the default local behavior, so existing behavior is
unchanged. (https://github.com/autopkg/autopkg/pull/654)
CHANGES FROM 2.1:
self.env
ifPublished by nmcspadden over 4 years ago
NEW FEATURES
AutoPkg now supports the verbs list-repos
and processor-list
for convenience (https://github.com/autopkg/autopkg/pull/628)
autopkg info --pull
/-p
now allows you to fetch all parent repos of a recipe
automatically.
Example:
$ autopkg repo-delete recipes
$ autopkg info -p GoogleChrome.munki
Didn't find a recipe for com.github.autopkg.munki.google-chrome.
Found this recipe in repository: recipes
Attempting git clone...
Adding /Users/nmcspadden/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes to RECIPE_SEARCH_DIRS...
Updated search path:
'.'
'~/Library/AutoPkg/Recipes'
'/Library/AutoPkg/Recipes'
'/Users/nmcspadden/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes'
Description: Downloads the latest Google Chrome disk image and imports into Munki.
Identifier: local.munki.GoogleChrome
Munki import recipe: True
Has check phase: True
Builds package: False
Recipe file path: /Users/nmcspadden/Library/AutoPkg/RecipeOverrides/GoogleChrome.munki.recipe
Parent recipe(s): /Users/nmcspadden/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.munki.recipe
/Users/nmcspadden/Library/AutoPkg/RecipeRepos/com.github.autopkg.recipes/GoogleChrome/GoogleChrome.download.recipe
The automatic fetching works by looking at the parent identifier of a recipe, and
searching GitHub via API for that file. It fetches that parent file from GitHub
directly, and adds the repo that it belongs to. Then it parses its parent, recursively
until it finds a recipe with no parents.
Note that the only verb to support this is autopkg info
. You can use this feature to
dynamically fetch parents on-demand, instead of preconfiguring your environment with a
list of known repos.
CHANGES FROM 2.0.2:
url
in the environment (https://github.com/autopkg/autopkg/pull/605)expected_authorities
argument (https://github.com/autopkg/autopkg/commit/1a3481f1ff9a992ace27dc8d301e1ef3e86c691d)Published by nmcspadden over 4 years ago
PYTHON 3
This is the official release of a Python 3-only version of AutoPkg. It is no longer compatible with Python 2, and will encounter syntax errors and failures if ran with Python 2.
The release package has an included Python 3 framework that includes all necessary modules to run everything in AutoPkg core, and all of the recipes in autopkg-recipes.
MAJOR HIGHLIGHTS OF THE PYTHON 3 CODE:
CHANGES FROM RC2:
Published by nmcspadden over 4 years ago
CHANGES FROM RC1:
Published by nmcspadden almost 5 years ago
ANNOUNCEMENT:
This is the release candidate for AutoPkg 2.0.
This is the best time and way to test if your recipe list works in Python 3. Barring the discovery of serious problems, we expect to release AutoPkg 2.0 next week.
DEVELOPMENT:
The previous branch for AutoPkg development, "py2-to-3", has been merged into Master.
AutoPkg 1.x has been cut into a new branch ("AutoPkg_1.x"). Short of an emergency scenario, development on AutoPkg 1.x is frozen at the release of 1.4.1.
CHANGES FROM BETA 3:
URLGetter.execute_curl()
was changed to use subprocess.run()
instead of Popen
(https://github.com/autopkg/autopkg/commit/facad8ce48cfb9766578d55823660feb177b3e80)-vvvv
verbosity (https://github.com/autopkg/autopkg/commit/7c24a05fd327d77f082875aaa70549f48d156802)download_to_file(url, filename)
function, which makesPublished by nmcspadden almost 5 years ago
FIXES:
download_to_file(url, filename)
function that can be used inPublished by nmcspadden almost 5 years ago
FIXES:
ADDITIONS:
URLGetter.download_with_curl(curl_command,)
takes a curl command as an argument (a list of strings that is passed to subprocess). You can use this along with the other helper functions to arrange your own curl command with custom headers and arguments, and parse the output.URLGetter.download(url, headers=None)
takes a URL (and optional headers) and returns the output of the curl command. You can use this to simply retrieve the results of requesting a web page (such as for URLTextSearcher).prefetch_filename
option that will allow fetching the original name from the redirected URL (https://github.com/autopkg/autopkg/pull/571)Published by nmcspadden almost 5 years ago
PYTHON 3 ONLY RELEASE
This is the second beta release of a Python 3-only version of AutoPkg. It is no longer compatible with Python 2, and will encounter syntax errors and failures if run with Python 2.
The release package has an included Python 3 framework that includes all necessary modules to run everything in AutoPkg core, and all of the recipes in autopkg-recipes.
This release also coincides with the most recent commit to
autopkg/recipes, so both change notes will be provided here.
CHANGES FROM BETA 2:
urllib
logic:
URLGetter.download_with_curl(curl_command, text=True)
takes a curl command as an argument (a list of strings that is passed to subprocess). You can use this along with the other helper functions to arrange your own curl command with custom headers and arguments, and parse the output.URLGetter.download(url, headers=None, text=False)
takes a URL (and optional headers) and returns the output of the curl command. You can use this to simply retrieve the results of requesting a web page (such as for URLTextSearcher).text
mode to determine if you get straight text output.CHANGES FROM BETA 1:
CHANGES IN INITIAL 2.0 RELEASE:
KNOWN ISSUES:
HOW TO USE THIS BETA RELEASE:
Installing the release package will get you everything you need to run AutoPkg 2.0.
As of this release, all recipes in autopkg/recipes work directly (with commit https://github.com/autopkg/recipes/commit/25518b9b761f943d4c567fcb0944561b32ca3b89).
You will need to update your trust info as many custom processors have changed:
autopkg update-trust-info Firefox.munki
autopkg update-trust-info MakeCatalogs.munki
autopkg run -vv Firefox.munki MakeCatalogs.munki
HOW TO REPORT ISSUES:
Use the "Beta Bug report" GitHub issue template to specifically label the issue as being
beta only. Please make use of the template to convey all information possible in order
to reproduce or diagnose the issue as clearly as possible.
SETTING UP AUTOPKG MANUALLY:
If you do not want to use the AutoPkg release installer, you can manually set up an
AutoPkg 2.0 environment. Setup and place the AutoPkg files as you normally would:
sudo chmod -R 755 /Library/AutoPkg/autopkgserver/
Build a relocatable python bundle:
Published by nmcspadden almost 5 years ago
FIXES:
Published by nmcspadden almost 5 years ago
FIXES:
autopkg repo-list
wasn't respecting the --prefs
option correctly (https://github.com/autopkg/autopkg/commit/ec7222335f7a0a191c8c7664ab81de477292f8b7)autopkg list-recipes
wasn't parsing the arguments correctly when used with --prefs
(https://github.com/autopkg/autopkg/commit/8b15b7305cf9ef32310c6bc3728bf83fd06a4aee)Published by nmcspadden about 5 years ago
FIXES:
curl
using --compress
instead of --compressed
(https://github.com/autopkg/autopkg/commit/3c8bc23d89e902d9e7f69ff698179f38f36a9a44)ADDITIONS:
--prefs
. The inputIMPROVEMENTS:
print()
in the core autopkg script were replaced with log
and log_err
(https://github.com/autopkg/autopkg/commit/8300b807e29553be92c8c74894090442c8312b6d)Published by gregneagle over 5 years ago
This is the official release of AutoPkg 1.1. It is the same build as 1.1 Release Candidate 2.
FIXES:
--compress
option to curl
calls in SparkleUpdateInfoProvider and URLTextSearcher~/
(GH-437) (https://github.com/autopkg/autopkg/commit/603f2207df3cd88b3a2cb3e59543923648ac6522)generate_processor_docs
sorts the sidebar alphabetically (GH-520)ADDITIONS:
--force
option for autopkg make-override
(GH-425)-q/--quiet
option to suppress Github search and suggestions (GH-426)new-recipe
subcommand (https://github.com/autopkg/autopkg/commit/f92a0a46042c14de502379ed7f454e1aa9053db1)IMPROVEMENTS:
Published by hjuutilainen over 6 years ago
FIXES:
autopkg search
functionality on macOS 10.12IMPROVEMENTS:
curl_opts
input variable to providePublished by gregneagle about 7 years ago
FIXES:
IMPROVEMENTS:
codesign
.codesign
or not. Deep verification was previously on by default (andcodesign
tool.pkgutil
, everything else should go to codesign
.Published by timsutton over 7 years ago
FIXES:
.dmg
(GH-349)IMPROVEMENTS:
autopkg run
has recipes failing due to trust verification failure, this isftp://
server URLs (GH-338)pattern
(GH-263)Invalid version
, it now includes the offending version stringPublished by timsutton almost 8 years ago
FIXES:
--recipe-list
containing a single itemPublished by timsutton almost 8 years ago
This is the official release of AutoPkg 1.0. There were no changes from Release Candidate 1.
ADDITIONS:
audit
verb, used to output helpful information about any recipes that:
verify-trust-info
and update-trust-info
verbs. These can be used toautopkg repo-update
against this or all recipe repos), thisverify-trust-info
withupdate-trust-info
will updateFAIL_RECIPES_WITHOUT_TRUST_INFO
AutoPkg preference. See theAppPkgCreator
processor, a single processor replacing the several stepsFIXES:
appcast_request_headers
argument sinceautopkg
message output.autopkg search
for a recipe name containing spaces.IMPROVEMENTS:
--fail
option so that most 400-class error codes70
if any recipe in an autopkg run
uninstaller_pkg_path
input variable, used touninstaller_item_location
in pkginfos.makepkginfo
in Munki tools version 2.8.0Published by timsutton over 8 years ago
FIXES:
Published by timsutton over 8 years ago
CHANGES:
/usr/bin/curl
binary for performing HTTP requests. This resolvesCURL_PATH
input variable.expected_authority_names
to verify .apprequirement
instead. (GH-256)FIXES:
IMPROVEMENTS:
autopkg run -k CHECK_FILESIZE_ONLY=true VLC.munki