feat: Renames update-version plugin to bump-version, removes generate plugin as the bump-version can be called with the generate arguments.
All checks were successful
CI / Ubuntu (push) Successful in 2m42s
All checks were successful
CI / Ubuntu (push) Successful in 2m42s
This commit is contained in:
@@ -15,8 +15,7 @@ let package = Package(
|
|||||||
.library(name: "GitClient", targets: ["GitClient"]),
|
.library(name: "GitClient", targets: ["GitClient"]),
|
||||||
.library(name: "LoggingExtensions", targets: ["LoggingExtensions"]),
|
.library(name: "LoggingExtensions", targets: ["LoggingExtensions"]),
|
||||||
.plugin(name: "BuildWithVersionPlugin", targets: ["BuildWithVersionPlugin"]),
|
.plugin(name: "BuildWithVersionPlugin", targets: ["BuildWithVersionPlugin"]),
|
||||||
.plugin(name: "GenerateVersionPlugin", targets: ["GenerateVersionPlugin"]),
|
.plugin(name: "BumpVersionPlugin", targets: ["BumpVersionPlugin"])
|
||||||
.plugin(name: "UpdateVersionPlugin", targets: ["UpdateVersionPlugin"])
|
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(url: "https://github.com/pointfreeco/swift-dependencies.git", from: "1.6.2"),
|
.package(url: "https://github.com/pointfreeco/swift-dependencies.git", from: "1.6.2"),
|
||||||
@@ -101,26 +100,11 @@ let package = Package(
|
|||||||
]
|
]
|
||||||
),
|
),
|
||||||
.plugin(
|
.plugin(
|
||||||
name: "GenerateVersionPlugin",
|
name: "BumpVersionPlugin",
|
||||||
capability: .command(
|
capability: .command(
|
||||||
intent: .custom(
|
intent: .custom(
|
||||||
verb: "generate-version",
|
verb: "bump-version",
|
||||||
description: "Generates a version file in the given target."
|
description: "Bumps a version file in the given target."
|
||||||
),
|
|
||||||
permissions: [
|
|
||||||
.writeToPackageDirectory(reason: "Generate a version file in the target's directory.")
|
|
||||||
]
|
|
||||||
),
|
|
||||||
dependencies: [
|
|
||||||
"bump-version"
|
|
||||||
]
|
|
||||||
),
|
|
||||||
.plugin(
|
|
||||||
name: "UpdateVersionPlugin",
|
|
||||||
capability: .command(
|
|
||||||
intent: .custom(
|
|
||||||
verb: "update-version",
|
|
||||||
description: "Updates a version file in the given target."
|
|
||||||
),
|
),
|
||||||
permissions: [
|
permissions: [
|
||||||
.writeToPackageDirectory(reason: "Update a version file in the target's directory.")
|
.writeToPackageDirectory(reason: "Update a version file in the target's directory.")
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ struct GenerateVersionBuildPlugin: BuildToolPlugin {
|
|||||||
.deletingLastPathComponent()
|
.deletingLastPathComponent()
|
||||||
.deletingLastPathComponent()
|
.deletingLastPathComponent()
|
||||||
|
|
||||||
let tool = try context.tool(named: "cli-version")
|
let tool = try context.tool(named: "bump-version")
|
||||||
let outputPath = context.pluginWorkDirectoryURL
|
let outputPath = context.pluginWorkDirectoryURL
|
||||||
|
|
||||||
let outputFile = outputPath.appending(path: "Version.swift")
|
let outputFile = outputPath.appending(path: "Version.swift")
|
||||||
@@ -25,7 +25,7 @@ struct GenerateVersionBuildPlugin: BuildToolPlugin {
|
|||||||
arguments: [
|
arguments: [
|
||||||
"build", "--verbose",
|
"build", "--verbose",
|
||||||
"--git-directory", gitDirectoryPath.absoluteString,
|
"--git-directory", gitDirectoryPath.absoluteString,
|
||||||
"--target", outputPath.absoluteString
|
"--target-file-path", outputPath.absoluteString
|
||||||
],
|
],
|
||||||
environment: [:],
|
environment: [:],
|
||||||
inputFiles: target.sourceFiles.map(\.url),
|
inputFiles: target.sourceFiles.map(\.url),
|
||||||
|
|||||||
24
Plugins/BumpVersionPlugin/BumpVersionPlugin.swift
Normal file
24
Plugins/BumpVersionPlugin/BumpVersionPlugin.swift
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import Foundation
|
||||||
|
import PackagePlugin
|
||||||
|
|
||||||
|
@main
|
||||||
|
struct BumpVersionPlugin: CommandPlugin {
|
||||||
|
|
||||||
|
func performCommand(context: PluginContext, arguments: [String]) async throws {
|
||||||
|
print("Starting bump-version plugin")
|
||||||
|
let tool = try context.tool(named: "bump-version")
|
||||||
|
|
||||||
|
print("arguments: \(arguments)")
|
||||||
|
|
||||||
|
let process = Process()
|
||||||
|
process.executableURL = tool.url
|
||||||
|
process.arguments = arguments
|
||||||
|
try process.run()
|
||||||
|
process.waitUntilExit()
|
||||||
|
|
||||||
|
guard process.terminationReason == .exit && process.terminationStatus == 0 else {
|
||||||
|
Diagnostics.error("Reason: \(process.terminationReason), status: \(process.terminationStatus)")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
import PackagePlugin
|
|
||||||
|
|
||||||
@main
|
|
||||||
struct GenerateVersionPlugin: CommandPlugin {
|
|
||||||
|
|
||||||
func performCommand(context: PluginContext, arguments: [String]) async throws {
|
|
||||||
let gitVersion = try context.tool(named: "cli-version")
|
|
||||||
|
|
||||||
let arguments = ["generate"] + arguments
|
|
||||||
|
|
||||||
for target in context.package.targets {
|
|
||||||
guard let target = target as? SourceModuleTarget,
|
|
||||||
arguments.first(where: { $0.contains(target.name) }) != nil
|
|
||||||
else { continue }
|
|
||||||
|
|
||||||
let process = Process()
|
|
||||||
process.executableURL = gitVersion.url
|
|
||||||
process.arguments = arguments
|
|
||||||
try process.run()
|
|
||||||
process.waitUntilExit()
|
|
||||||
|
|
||||||
guard process.terminationReason == .exit && process.terminationStatus == 0 else {
|
|
||||||
Diagnostics.error("Reason: \(process.terminationReason), status: \(process.terminationStatus)")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
import PackagePlugin
|
|
||||||
|
|
||||||
@main
|
|
||||||
struct UpdateVersionPlugin: CommandPlugin {
|
|
||||||
|
|
||||||
func performCommand(context: PluginContext, arguments: [String]) async throws {
|
|
||||||
let gitVersion = try context.tool(named: "cli-version")
|
|
||||||
|
|
||||||
let arguments = ["update"] + arguments
|
|
||||||
|
|
||||||
for target in context.package.targets {
|
|
||||||
guard let target = target as? SourceModuleTarget,
|
|
||||||
arguments.first(where: { $0.contains(target.name) }) != nil
|
|
||||||
else { continue }
|
|
||||||
|
|
||||||
let process = Process()
|
|
||||||
process.executableURL = gitVersion.url
|
|
||||||
process.arguments = arguments
|
|
||||||
try process.run()
|
|
||||||
process.waitUntilExit()
|
|
||||||
|
|
||||||
guard process.terminationReason == .exit && process.terminationStatus == 0 else {
|
|
||||||
Diagnostics.error("Reason: \(process.terminationReason), status: \(process.terminationStatus)")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,13 +6,15 @@ This is a reminder of the steps used to create a release and update the homebrew
|
|||||||
> automated in `ci`, but there are no `macOS` host runners currently in `gitea`, so the bottles need
|
> automated in `ci`, but there are no `macOS` host runners currently in `gitea`, so the bottles need
|
||||||
> built on `macOS`.
|
> built on `macOS`.
|
||||||
|
|
||||||
1. Update the version in `Sources/hpa/Version.swift`.
|
1. Update the version in `Sources/bump-version/Version.swift`.
|
||||||
1. Tag the commit with the next version tag.
|
1. Tag the commit with the next version tag.
|
||||||
1. Push the tagged commit, this will initiate the release being created.
|
1. Push the tagged commit, this will initiate the release being created.
|
||||||
1. Get the `sha` of the `*.tar.gz` in the release.
|
1. Get the `sha` of the `*.tar.gz` in the release.
|
||||||
1. `just get-release-sha`
|
1. `just get-release-sha`
|
||||||
1. Update the homebrew formula url, sha256, and version at top of the homebrew formula.
|
1. Update the homebrew formula url, sha256, and version at top of the homebrew formula.
|
||||||
1. `cd $(brew --repo michael/formula)`
|
1. `cd $(brew --repo michael/formula)`
|
||||||
|
1. Create a branch for a pull-request `git checkout -b bump-version`
|
||||||
|
1. `n Formula/bump-version.rb`
|
||||||
1. Build and generate a homebrew bottle.
|
1. Build and generate a homebrew bottle.
|
||||||
1. `just bottle`
|
1. `just bottle`
|
||||||
1. Update the `bottle do` section of homebrew formula with output during previous step.
|
1. Update the `bottle do` section of homebrew formula with output during previous step.
|
||||||
|
|||||||
@@ -14,13 +14,11 @@ struct BumpCommand: CommandRepresentable {
|
|||||||
discussion: Discussion.default(examples: [
|
discussion: Discussion.default(examples: [
|
||||||
makeExample(
|
makeExample(
|
||||||
label: "Basic usage, bump the minor version.",
|
label: "Basic usage, bump the minor version.",
|
||||||
example: "--minor",
|
example: "--minor"
|
||||||
includesAppName: false
|
|
||||||
),
|
),
|
||||||
makeExample(
|
makeExample(
|
||||||
label: "Dry run, just show what the bumped version would be.",
|
label: "Dry run, just show what the bumped version would be.",
|
||||||
example: "--minor --dry-run",
|
example: "--minor --dry-run"
|
||||||
includesAppName: false
|
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
// Do not set this variable, it is set during the build process.
|
// Do not set this variable, it is set during the build process.
|
||||||
let VERSION: String? = "0.3.0"
|
let VERSION: String? = "0.2.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user