Releases: mas-cli/mas
v2.2.2: π Limit app interactions to specific folders
What's Changed
π Bug Fixes
- Only interact with apps under
/Applications
or MAS-designated large app drive by @rgoldberg in #840
Changes
- Always install all dependencies in
Brewfile
as now only support building on macOS 13+ by @rgoldberg in #824 - Use local time zone for
info
dates by @rgoldberg in #826 - Improve
MASError.notSupported
description by @rgoldberg in #829 - Improve code spacing by @rgoldberg in #830
- Indent with tabs instead of with spaces by @rgoldberg in #831
- Do not delete the cache folder since it hasn't been used since 2021 by @rgoldberg in #834
- Change package identifier from
com.mphys.mas-cli
toio.github.mas-cli
by @rgoldberg in #835 - Simplify networking. by @rgoldberg in #837
Full Changelog: v2.2.1...v2.2.2
v2.2.1: βοΈ Non-retroactive
What's Changed
Changes
- Upgrade Xcode to 16.3 on GHA macos-15 runners by @rgoldberg in #817
- Remove the homebrew-core bump step from
release-published.yml
by @rgoldberg in #820 - Remove
@retroactive
by @rgoldberg in #821
Full Changelog: v2.2.0...v2.2.1
v2.2.0: π§Ή Cleanup
What's Changed
π Features
- Warn about how to index installed apps when no apps found by
mas list
by @rgoldberg in #814
π Bug Fixes
- Support apps under
/Volumes/*/Applications
by @rgoldberg in #779 - Reenable
account
for macOS 11- by @rgoldberg in #785
Changes
- Improve concurrency & other cleanup by @rgoldberg in #771
- Upgrade Swift from 5.7.1 to 5.9 by @rgoldberg in #773
- Code cleanup by @rgoldberg in #776
- Make
SoftwareProduct
&SimpleSoftwareProduct
immutable by @rgoldberg in #789 - Simplify test concurrency. by @rgoldberg in #790
- Reword "Apple ID" as "Apple Account" by @rgoldberg in #791
- Use
NSMetadataItem*Key
instead ofkMDItem*
for Spotlight query keys by @rgoldberg in #793 - Remove vestigial Apple private framework headers by @rgoldberg in #795
- Improve output code. by @rgoldberg in #798
- Remove unused imports by @rgoldberg in #800
- Code cleanup by @rgoldberg in #807
- docs(known issues): explain that mas relies on mds by @gforien in #803
- Improve
README.md
by @rgoldberg in #812
New Contributors
Full Changelog: v2.1.0...v2.2.0
v2.1.0: π Unknown app IDs no longer prevent upgrading other apps
What's Changed
π Bug Fixes
- When upgrading apps, don't short circuit when encountering any app ID that is unknown to the MAS by @rgoldberg in #767
Full Changelog: v2.0.0...v2.1.0
v2.0.0: π©Ή macOS 15.4+ compatibility
What's Changed
π¨ Requires macOS 10.15 (Catalina) or Newer
mas previously required macOS 10.13 (High Sierra) or newer to run.
mas now requires macOS 10.15 (Catalina) or newer.
This was to migrate threading from third-party PromiseKit to native Swift Concurrency, which facilitated migrating the source of the list of apps installed from the MAS from a now-broken Apple private framework to the public (and working) Spotlight metadata.
The threading migration should (probably negligibly) improve the performance of mas, but, more importantly, facilitate future development.
Requiring macOS 10.15 also allows mas to use other newer frameworks & libraries / current versions of already used frameworks & libraries, as 10.15 was a watershed macOS (mainly because of Swift Concurrency).
Sorry to any users that might be stuck on macOS 10.13 or 10.14.
- Require macOS 10.15+ to run mas. by @rgoldberg in #735
- Use Swift Concurrency instead of PromiseKit by @rgoldberg in #737
π©Ή Fixed list
, outdated
& update
on macOS 15.4+
mas previously obtained an array of apps installed from the MAS from CKSoftwareMap.shared().allProducts()
, which is from CommerceKit, an undocumented Apple private framework.
macOS 15.4, the array is always empty, which broke multiple mas commands: list
, outdated
& update
.
mas 2.0.0 now sources an array of apps installed from the MAS from Spotlight metadata, which fixes the broken commands.
Since Spotlight is a public interface, it shouldn't break without warning.
Unfortunately, Spotlight has all the data for each installed app except for the app name. mas uses the name of the app's folder (with any trailing .app
removed) as the app name, which is frequently exactly the same as the app name, but sometimes slightly off.
Future updates to mas might try to source the exact app name (& additional data) from the iTunes Search web API, or from elsewhere.
- Obtain installed apps from Spotlight by @rgoldberg in #740
π Other Features
- Ca 10000 se-insensitively sort installed apps by app name by @rgoldberg in #741
- Do not scrape MAS app web page for version by @rgoldberg in #708
ποΈ Development (users should ignore this section)
- Downgrade Quick to 7.5.0 to fix multi-architecture executable build bug in Quick 7.6.0+ by @rgoldberg in #749
- Do not prepend any branch prefix to the version if the main branch does not exist by @rgoldberg in #752
- Fix app installation output by @rgoldberg in #760
- Include branch name in version name in certain conditions by @rgoldberg in #706
- Remove unnecessary imports by @rgoldberg in #710
- Update SwiftLint config for 0.58.0 by @rgoldberg in #712
- Improve scripts, GitHub workflows & docs by @rgoldberg in #714
- Improve scripts by @rgoldberg in #716
- Improvements by @rgoldberg in #718
- Simplify emoji by @rgoldberg in #720
- Improve
script/test
boilerplate filtering for newerswift
executables. by @rgoldberg in #734 - Upgrade Nimble to 13.7.1 & Quick to 7.6.2 by @rgoldberg in #736
- Check for Quick & Nimble updates in Dependabot by @rgoldberg in #743
- Ignore major & minor updates for Quick in Dependabot by @rgoldberg in #754
- Improve
*AppStoreSearcher
DocC by @rgoldberg in #756 - Improve
*AppLibrary
DocC by @rgoldberg in #758 - Enable Dependabot checks for Quick by @rgoldberg in #763
- Fix installed app displayed names by @rgoldberg in #747
Full Changelog: v1.9.0...v2.0.0
v1.9.0: π region & config
Improvements for users:
- Use Mac App Store region throughout, instead of using it in some places & the macOS region in others (#689 by @rgoldberg)
- Add
mas region
command: displays the region of the Mac App Store (#689 by @rgoldberg) - Add
mas config
command: displays mas config & related system info, mainly for bug reports (#698 & #702 by @rgoldberg)- Update Bug Report form (#700 by @rgoldberg):
- Modify to expect config info from
mas config
- Simplify the input fields & instructions
- Modify to expect config info from
- Update Bug Report form (#700 by @rgoldberg):
- Whenever an app name is missing, substitute the same fallback property values throughout mas (#690 by @rgoldberg)
Improvements for developers:
- Append a
+
to version name if there are any uncommitted changes or unignored untracked files (#688 & #704 by @rgoldberg) - Cleanup code (#687 & #692 by @rgoldberg)
- Improve linting (#697 by @rgoldberg)
- Avoid build warning on newer swift compilers (#697 by @rgoldberg)
- Improve testing (#695 by @rgoldberg):
- Check all consequences for correctness:
- return value
- error
- stdout
- stderr
- Remove useless tests
- Cleanup tests
- Check all consequences for correctness:
Improvements for administrators:
- GitHub workflows (#691 by @rgoldberg):
- Scan for vulnerabilities with CodeQL workflow (#646 by @rgoldberg)
- Scan for Swift library updates with Dependabot workflow
- Remove useless Danger workflow
- Minimize granted permissions
- Cleanup logs
Full Changelog: v1.8.8...v1.9.0
v1.8.8: π Release process overhaul
What's Changed
π Bug Fixes
- Fix Apple iTunes Search API JSON parsing error by making
formattedPrice
&price
optional forSearchResult
by @rgoldberg in #643
Changes
- Overhaul the release process by @rgoldberg in #640 & #683
- Improve GitHub issue templates & other GitHub pages by @rgoldberg in #647, #651, #662 & #665
Full Changelog: v1.8.7...v1.8.8
v1.8.7: π§ Numerous fixes
What's Changed
π Features
- π₯οΈ Only search, outdated and update macOS apps by @phatblat in #505
- Improve downloading output by @rgoldberg in #625
π Bug Fixes
- π§ Check for mac updates only by @WangEdward in #496
- Re-enable
purchase
. by @rgoldberg in #556 outdated
checks if new app version requires newer macOS for all kinds of apps, not just mac-software by @rgoldberg in #551- Fix app IDs by @rgoldberg in #570
- Fix iTunes Search API issues by @rgoldberg in #572
- Downgrade Nimble & Quick to fix testing on newer Xcode versions. by @rgoldberg in #584
- Fix
uninstall
by @rgoldberg in #599 - Use
formattedPrice
for prices by @rgoldberg in #601 - Open the Mac App Store without any spurious error dialogs. by @rgoldberg in #618
Changes
- π·π»ββοΈ Switch to self-hosted M1 Mac mini runner by @phatblat in #382
- π¦ Migrate to GitHub automated release notes by @chris-araman in #445
- π Fix link to known issues by @beatngu13 in #448
- β¬οΈ(deps): Bump actions/checkout from 2 to 3 by @dependabot in #454
- π Script fixes by @phatblat in #451
- β¬οΈ Swift 5.6 by @phatblat in #470
- Fix error message wording by @janbrasna in #465
- Identifier from App Store by @brettrowberry in #460
- Corrected the build folder name by @jankais3r in #472
- Improve
mas upgrade
output by @rgoldberg in #475 - β¬οΈ Dependency & tool updates by @phatblat in #476
- π Error message cleanup by @phatblat in #477
- Apple silicon GitHub hosted runner by @GreyTeardrop in #509
- Apple Silicon Github-hosted runner for build-test job by @rgoldberg in #508
- β¬οΈ(deps): Bump actions/checkout from 3 to 4 by @dependabot in #500
- π·π»ββοΈ GHA release workflow by @phatblat in #510
- Add all versions of mas to the Homebrew prerelease allow list by @tonyarnold in #517
- Fix breaking lint issue in MasStoreSearch.swift. by @rgoldberg in #548
- Improve scripts: bootstrap, build, format, lint, test & version. by @rgoldberg in #553
- Git ignore JetBrains IntelliJ IDEA config directory. by @rgoldberg in #552
- Fix typos in comments & in documentation. by @rgoldberg in #549
- Output to stderr responses from Apple endpoints that are unparsable as JSON by @rgoldberg in #550
- Improve
Account
,SignIn
,SignOut
&ISStoreAccount
extension & associated code: by @rgoldberg in #563 - Use Swift Argument Parser instead of Commandant. by @rgoldberg in #554
- Improve tests by @rgoldberg in #571
- Update
README.md
. by @rgoldberg in #573 appIDValue
to encapsulateuint64Value
. by @rgoldberg in #575- Improve usage of
trash
in scripts. by @rgoldberg in #577 - Improve
bootstrap
. by @rgoldberg in #581 - Additional linting / cleanup code by @rgoldberg in #593
- Improve GitHub runners by @rgoldberg in #595
- Improve naming by @rgoldberg in #600
- Improve help output. by @rgoldberg in #610
- Increase minimum macOS version to 10.13 & upgrade Swift to 5.7.1 by @rgoldberg in #611
- Additional improvements enabled by macOS 10.13 by @rgoldberg in #614
- Refactor
AppStoreSearcher
code. by @rgoldberg in #615 - Cleanup help. by @rgoldberg in #617
- Replace
ExternalCommand
code that starts new processes with Apple library calls by @rgoldberg in #621 - Simplify
open()
extension func forURL
. by @rgoldberg in #622 - Improve error messages by @rgoldberg in #623
- Fix typos in DocC by @rgoldberg in #624
New Contributors
- @beatngu13 made their first contribution in #448
- @janbrasna made their first contribution in #465
- @brettrowberry made their first contribution in #460
- @jankais3r made their first contribution in #472
- @GreyTeardrop made their first contribution in #509
- @WangEdward made their first contribution in #496
Full Changelog: v1.8.6...v1.8.7
v1.8.6: π Localize queries
Changes
- π Localize queries (#443) @chris-araman
- β»οΈ Simplify pointer dance (#440) @chris-araman
- π§ Migrate to Danger Swift (#434) @chris-araman
- β¬οΈ PromiseKit (6.16.2) (#435) @chris-araman
- πΌ Use the custom tap formula when bottling for the custom tap (#430) @chris-araman
- π Fix typo in README (#432) @revolter
- β¬οΈ Danger (8.4.2) (#433) @dependabot
v1.8.5: π Allow redownloads on macOS 12
π Bug Fixes
- π Allow redownloads on macOS 12 (#428) @chris-araman