Initialize plist plugin with core functionality, README, and tests#2530
Open
czuria1 wants to merge 1 commit into
Open
Initialize plist plugin with core functionality, README, and tests#2530czuria1 wants to merge 1 commit into
czuria1 wants to merge 1 commit into
Conversation
Author
|
Hi @adierkens @hipstersmoothie @hborawski , I'm proposing the following plugin to help with versioning for SPM repositories that require knowing the versioning of the bundle through the Info.plist. Can I please get some help getting reviews from the right contributors for this repo? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a new
@auto-it/plistplugin that manages versioning for Apple platform projects by reading and writing version strings directly inside.plistfiles.Motivation
You could technically accomplish the same outcome with the existing
version-fileplugin — it already knows how to read and write arbitrary version strings out of arbitrary files. This plugin exists becauseInfo.plistis the canonical version file for iOS, macOS, watchOS, and tvOS projects, and treating it as a first-class citizen deserves dedicated tooling.The goals here are analogous to what the
cocoapodsplugin does for CocoaPods-based libraries: keep the on-disk version artifact in sync with the git tag so that platform tooling always sees the right version. The key difference is the target workflow:Info.plistfor you as part of its build process, so teams using CocoaPods often rely on thecocoapodsplugin to keep the.podspecversion (and therefore the derived plist) in sync..podspec, and SPM does not produce anInfo.plistfor you. Teams that want to expose a runtime version string from their library (e.g. for logging, telemetry, or SDK version headers) need to maintain that plist themselves. This plugin automates keeping it in sync with the git tag, giving SPM libraries the same versioning automation that CocoaPods projects get from thecocoapodsplugin.In short: if you ship a Swift package and want
MySDK.versionin your code to always reflect the current release without manual edits, this is the plugin for that.What this plugin does
CFBundleShortVersionString)CFBundleVersion) with the same valuepublishScripthook for custom distribution steps (xcframework upload, DocC hosting, etc.)Relationship to other plugins
version-filecocoapods.podspecplist(this PR)Info.plistChange Type
Indicate the type of change your pull request is:
documentationpatchminormajor