Swiftpack.co - Package - SDGGiesbrecht/Workspace

macOS • Linux

Documentation

Workspace

Workspace automates management of Swift projects.

Πᾶν ὅ τι ἐὰν ποιῆτε, ἐκ ψυχῆς ἐργάζεσθε, ὡς τῷ Κυρίῳ καὶ οὐκ ἀνθρώποις.

Whatever you do, work from the heart, as working for the Lord and not for men.

―⁧שאול⁩/Shaʼul

Features

Installation

Workspace provides command line tools.

They can be installed any way Swift packages can be installed. The most direct method is pasting the following into a terminal, which will either install or update them:

curl -sL https://gist.github.com/SDGGiesbrecht/4d76ad2f2b9c7bf9072ca1da9815d7e2/raw/update.sh | bash -s Workspace "https://github.com/SDGGiesbrecht/Workspace" 0.31.0 "workspace help" workspace arbeitsbereich

Importing

Workspace provides a library for use with the Swift Package Manager.

Simply add Workspace as a dependency in Package.swift:

let package = Package(
    name: "MyPackage",
    dependencies: [
        .package(url: "https://github.com/SDGGiesbrecht/Workspace", .upToNextMinor(from: Version(0, 31, 0))),
    ],
    targets: [
        .target(name: "MyTarget", dependencies: [
            .productItem(name: "WorkspaceConfiguration", package: "Workspace"),
        ])
    ]
)

The module can then be imported in source files:

import WorkspaceConfiguration

About

The Workspace project is maintained by Jeremy David Giesbrecht.

If Workspace saves you money, consider giving some of it as a donation.

If Workspace saves you time, consider devoting some of it to contributing back to the project.

Ἄξιος γὰρ ὁ ἐργάτης τοῦ μισθοῦ αὐτοῦ ἐστι.

For the worker is worthy of his wages.

―‎ישוע/Yeshuʼa

Github

link
Stars: 58

Dependencies

Used By

Total: 0

Releases

Version 0.31.0 - 2020-03-13 21:42:30

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Web is supported as a target platform. (But Workspace itself cannot run on the web yet.)

New Features

  • Continuous integration no longer needs the .command and .sh scripts.

Bug Fixes

  • WindowsMain.swift is formatted according to the configuration.

🇩🇪DE

Brechende Änderungen

  • Netz wird als Zielschicht unterstützt. (Aber Arbeitsbereich selbst läuft noch nicht auf dem Netz.)

Neue Merkmale

  • Fortlaufende Einbindung benötigt die .command und .sh Skripte nicht mehr.

Fehlerbehebungen

  • WindowsMain.swift wird nach der Konfiguration formatiert.

Version 0.30.2 - 2020-02-27 04:09:23

🇬🇧🇺🇸🇨🇦EN

New Features

  • The Android emulator has access to the package source at SWIFTPM_PACKAGE_ROOT.

Bug Fixes

  • WindowsMain.swift uses fully qualified names.
  • HOME is set in the Android emulator so that FileManager works properly.
  • WindowsMain.swift is formatted according to the configuration.

🇩🇪DE

Neue Merkmale

  • Der Android‐Emulator hat Zugang zur Paketquellen unter SWIFTPM_PACKAGE_ROOT.

Fehlerbehebungen

  • WindowsMain.swift verwendet eindeutigeren Namen.
  • HOME wird im Android‐Emulator eingestellt, damit FileManager funktioniert.
  • WindowsMain.swift wird nach der Konfiguration formatiert.

Version 0.30.1 - 2020-02-14 04:32:56

🇬🇧🇺🇸🇨🇦EN

Bug Fixes

  • Android tests launch properly.

🇩🇪DE

Fehlerbehebungen

  • Android‐Testen starten richtig.

Experimental Swift < 5.2 2020‐02‐05 - 2020-02-07 23:24:55

This “release” serves only to provide persistent links to consistent artifacts from experimental Swift builds for Windows and Android. They originate from here.

Version 0.30.0 - 2020-02-12 02:49:41

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

Android is supported as a target platform. (But Workspace itself cannot run on Android yet.)

🇩🇪DE

Brechende Änderungen

Android wird als Zielschicht unterstützt. (Aber Arbeitsbereich selbst läuft noch nicht auf Android.)

Version 0.29.0 - 2020-01-25 00:26:32

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Windows is supported as a target platform. (But Workspace itself cannot run on Windows yet.)

🇩🇪DE

Brechende Änderungen

  • Windows wird als Zielschicht unterstützt. (Aber Arbeitsbereich selbst läuft noch nicht auf Windows.)

Version 0.28.0 - 2019-12-31 20:26:58

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • GitHub Actions are complete and now replace Travis CI.
    • encryptedTravisCIDeploymentKey has been replaced with serveFromGitHubPagesBranch, a Bool.

🇩🇪DE

Brechende Änderungen

  • Die GitHub‐Vorgänge sind vollständig und haben Travis‐CI ersetzt.
    • verschlüsselterTravisCIVerteilungsschlüssel wurde durch durchGitHubSeitenVeröffentlichen, einem Bool, ersetzt.

Version 0.27.1 - 2019-12-12 02:21:08

🇬🇧🇺🇸🇨🇦EN

New Features

  • Continuous integration management creates some GitHub Actions (which do not yet handle everything from the Travis CI jobs).

Bug Fixes

  • Dependency updates. (Especially compatibility with Swift 5.1.3.)
  • @exempt(from:) works with SwiftFormat rules.

🇩🇪DE

Neue Merkmale

  • Verwaltung fortlaufender Einbindung erstellt einige GitHub‐Vorgänge (“Actions”) (die noch nicht alles aus den Travis‐CI‐Aufgaben beinhalten).

Fehlerbehebungen

  • Abhängigkeitsaktualisierungen. (Hauptsächlich Verträglichkeit mit Swift 5.1.3.)
  • @ausnahme(zu:) funktioniert für Regeln von SwiftFormat.

Version 0.27.0 - 2019-11-20 00:21:07

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Normalization became much more invasive with the addition of SwiftFormat. It is no longer active by default.

🇩🇪DE

Brechende Änderungen

  • Mit SwiftFormat verursacht die Normalisation nun viel größere Änderungen. Es wird nicht mehr automatisch eingeschaltet.

Version 0.26.0 - 2019-11-17 00:02:13

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Normalization and proofreading include SwiftFormat. It can be configured under proofreading.swiftFormatConfiguration, or disabled completely by setting it to nil.
    • The autoindentResilience, colonSpacing and braceSpacing rules became redundant and have been removed.

🇩🇪DE

Brechende Änderungen

  • Normalisation und Korrektur beinhalten SwiftFormat. Es kann unter korrektur.swiftFormatKonfiguration konfiguriert, oder mit nil völlig ausgeschaltet werden.
    • Die Regeln widerstandGegenAutomatischenEinzug, doppelpunktabstand und abstandGeschweifterKlammern wurden überflüssig und sind entfernt worden.

Version 0.25.1 - 2019-11-06 02:17:45

🇬🇧🇺🇸🇨🇦EN

Bug Fixes

  • Continuous integration uses Xcode 11.2 on macOS and Swift 5.1.1 on Linux.
  • The documentation index properly expands for the current page.

🇩🇪DE

Fehlerbehebungen

  • Fortlaufende EInbindung verwendet Xcode 11.2 auf macOS und Swift 5.1.1 auf Linux.
  • Die Dokumentationsverzeichnis wird für die aktuelle Seite aufgefaltet.

Version 0.25.0 - 2019-11-03 18:51:17

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Xcode 11.1–2
  • Very old deprecation rules have been removed.

New Features

  • Xcode projects are not required for any task.
  • Test manifests are no longer required on Linux.
    • Proofreading rejects XCTestManifest.swift files.

🇩🇪DE

Brechende Änderungen

  • Xcode 11.1–2
  • Sehr alte Überholungsregeln wurden entfernt.

Neue Merkmale

  • Xcode‐Projekte werden für keine Aufgaben benötigt.
  • Testlisten werden auf Linux nicht mehr benötigt.
    • Korrekturlesen lehnt XCTestManifest.swift‐Dateien ab.

Version 0.24.0 - 2019-10-26 03:31:49

🇬🇧🇺🇸🇨🇦EN

New Features

  • All platform restrictions have been removed.

Bug Fixes

  • Failed Xcode operations now longer spill duplicate logs.
  • Asterisks are allowed in availability checks.
  • Related projects are skipped during documentation coverage validation.

🇩🇪DE

Brechende Änderungen

  • Manche Rechtschreibungsfehler in der Programmierschnittstelle wurden korrigiert.

Neue Merkmale

  • Alle Schichtsbeschränkungen sind aufgehoben.

Fehlerbehebungen

  • Protokolle fehlgeschlagenen Xcode‐Vorgänge werden nicht mehr verdoppelt.
  • Sternchen sind in Verfügbarkeitsprüfungen erlaubt.
  • Verwandte Projekte werden übersprungen wenn Dokumentationsabdeckung geprüft wird.

Version 0.23.1 - 2019-10-10 23:54:51

🇬🇧🇺🇸🇨🇦EN

Dependency updates.

🇩🇪DE

Abhängigkeitsaktualisierungen.

Version 0.23.0 - 2019-09-25 04:29:18

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Swift 5.1
  • Xcode 11

🇩🇪DE

Brechende Änderungen

  • Swift 5.1
  • Xcode 11

Version 0.22.1 - 2019-09-12 03:05:12

🇬🇧🇺🇸🇨🇦EN

Dependency updates.

🇩🇪DE

Abhängigkeitsaktualisierungen.

Version 0.22.0 - 2019-08-30 21:07:54

🇬🇧🇺🇸🇨🇦EN

Breaking Changes

  • Older deprecation rules have been removed.

New Features

  • The configuration allows for localized project names.
  • Localised into British English.
  • Localized into American English.

Bug Fixes

  • Several broken links have been fixed in the generated documentation.

🇩🇪DE

Neue Merkmale

  • Auf Deutsch lokalisiert.

Version 0.21.3 - 2019-07-23 20:57:03

Bug Fixes

Dependency updates.

Version 0.21.2 - 2019-07-12 01:11:36

Bug Fixes

Dependency updates.

Version 0.21.1 - 2019-07-04 01:47:22

Bug Fixes

  • The filenames of GitHub templates now use Unicode directly. (Since GitHub handles them properly now.)

Version 0.21.0 - 2019-06-14 19:05:04

Breaking Changes

  • Localized symbol documentation is fully implemented. Documenting with multiple localizations active requires that each symbols has a documentation comment for every localization, or that the symbol itself is localized and cross‐referenced its equivalents. See the localization option for more details.
  • API documentation and read‐me generation have been unified.
    • Front matter is available along with the generated API documentation in addition to the read‐me.
    • The read‐me now automatically includes the package documentation comment parsed from the manifest.
    • Localized read‐me files and related project lists have been moved completely into the generated documentation. (The root‐level README.md remains behind for GitHub.)
    • Related configuration options have been rearranged:
      • The description, features, and example usage are no longer part of the configuration. They now belong in the documentation comment in the package manifest.
      • The installation instructions, import instructions and about sections are now directly on the .documentation property (instead of under .documentation.readMe), since they now apply to both the read‐me and the generated documentation.
  • GitHub management is localized:
    • Contributing instructions.
    • Issue templates.
  • OperatingSystem has been renamed to Platform to match the PackageDescription API.

New Features

  • Documentation now includes the command line interface of executable products built on SDGCommandLine.
  • Test manifests are updated during testing when running:
    • on a platform which can generate them, and
    • for a project which declares support for a platform which needs test manifests.

Bug Fixes

  • Protocol documentation can be filtered by protocol requirements or customization points.
  • @unknown switch cases are exempt from test coverage by default.

Version 0.20.0 - 2019-05-04 04:38:49

Breaking Changes

  • Test coverage can be checked using the package manager without Xcode, including on Linux!.
    • Since the Xcode job would now be redundant, it has been removed and the package manager job renamed to simply macos.
  • Manual documentation inheritance only works within a single package. It no longer copies documentation from dependencies. This is more in line with copyright and licensing laws. (Cross‐package inheritance is still respected in coverage validation and other situations which involve only reading, not copying the unowned documentation.)

New Features

  • Documentation can be sped up by configuring ignored dependencies.

Version 0.19.0 - 2019-04-18 22:51:40

Breaking Changes

  • Copyright notices are localized values.

New Features

  • Compatible with Swift 5.0.1 and Xcode 10.2.1.
  • The unicode proofreading rule can be restricted to certain scopes.

Version 0.18.2 - 2019-04-08 02:54:14

Bug Fixes

  • Proofreading skips LinuxMain.swift and XCTestManifests.swift files by default.
  • Parameter documentation validation operates on the entire list at once, displaying all the expected parameters in the expected order so that warnings are easier to understand and resolve.

Version 0.18.1 - 2019-04-04 04:42:33

Bug Fixes

  • Platform restrictions do not interfere with configuration loading.

Version 0.18.0 - 2019-04-03 20:26:46

Breaking Changes

  • Swift 5
  • macOS 10.13
  • SwiftLint is no longer included. It is currently incompatible with Swift 5. Once a compatible release is available, it can be set up as a custom task.
  • New proofreading rules:
    • closureParameterPosition

New Features

  • Custom tasks can be set up from any tool vended as a Swift package. See the configuration documentation.

Bug Fixes

  • During documentation, tuple parameters containing closures do not result in duplicate parameters.

Version 0.17.2 - 2019-02-17 02:02:06

Bug Fixes

  • Variables containing closures handle parameter documentation correctly.
  • Continuous integration configurations work around a bug in Travis CI involving an incompatibility between the version of the available Git tool and its global configuration.

Version 0.17.1 - 2019-02-12 22:55:30

Bug Fixes

  • Unlabelled closure parameters are flagged if they are encountered during documentation generation.
  • Inherited conformances are no longer duplicated in documentation.
  • Documentation coverage checks are significantly faster.
  • Documentation generation is faster in some situations.

Version 0.17.0 - 2019-01-29 04:36:32

Breaking Changes

  • A braceSpacing proofreading rule has been added.

New Features

  • Individual proofreading violations can now be suppressed by placing @exempt(from: ruleIdentifier) on the same line.

Bug Fixes

  • The quality of generated documentation has been improved:
    • Parameters, Throws and Returns callouts are handled separately.
    • Conformances and inheritance are documented.
    • Corresponding import statements and dependency declarations display on each page.
      • Extensions in a separate module display on the same page as the main symbol, but categorized under their respective import statements.
  • Documentation coverage validation checks individual parameters, not just entire methods.
  • The colon spacing rule is no longer vulnerable to crashing.
  • The accuracy of several proofreading rules has been improved.

Version 0.16.0 - 2019-01-07 01:20:47

Breaking Changes

  • Old proofreading rules in the deprecation category have been removed.

New Features

  • Generated documentation includes operators and precedence groups.
  • Documentation generation warns when no publishing date is specified for copyright.
  • Constraints are displayed near symbol names in titles and lists in documentation.
  • File headers support several new file types, including .py and .inc.

Bug Fixes

  • The documentation scroll bar is properly displayed at the extreme right of the page.
  • Callouts are handled by documentation generation.
  • Documentation content is properly escaped for HTML.