Swiftpack.co - Package - SDGGiesbrecht/Workspace


macOS • Linux


Workspace automates management of Swift projects.

Πᾶν ὅ τι ἐὰν ποιῆτε, ἐκ ψυχῆς ἐργάζεσθε, ὡς τῷ Κυρίῳ καὶ οὐκ ἀνθρώποις.
Whatever you do, work from the heart, as working for the Lord and not for men.



(For a list of related projects, see here.)


Paste the following into a terminal to install or update Workspace:

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

The Workspace Workflow

The Workspace project is managed by... Workspace! So let’s try it out by following along using the Workspace project itself.

When the Repository Is Cloned

Workspace hides as much as it can from Git, so when a project using Workspace is pulled, pushed, or cloned...

git clone https://github.com/SDGGiesbrecht/Workspace

...only one small piece of Workspace comes with it: A short script called “Refresh” that comes in two variants, one for each operating system.

Hmm... I wish I had more tools at my disposal... Hey! What if I...

Refresh the Workspace

To refresh the workspace, double‐click the Refresh script for the corresponding operating system. (If you are on Linux and double‐clicking fails or opens a text file, see here.)

Refresh opens a terminal window, and in it Workspace reports its actions while it sets the project folder up for development.

This looks better. Let’s get coding!

[Add this... Remove that... Change something over here...]

...All done. I wonder if I broke anything while I was working? Hey! It looks like I can...

Validate Changes

When the project seems ready for a push, merge, or pull request, validate the current state of the project by double‐clicking the Validate script.

Validate opens a terminal window and in it Workspace runs the project through a series of checks.

When it finishes, it prints a summary of which tests passed and which tests failed.

Oops! I never realized that would happen...


  1. Refresh before working.
  2. Validate when it looks complete.

Wow! That was so much easier than doing it all manually!

Applying Workspace to a Project

To apply Workspace to a project, run the following command in the root of the project’s repository. (This requires a full install. See Installation.)

$ workspace refresh

By default, Workspace refrains from tasks which would involve modifying project files. Such tasks must be activated with a configuration file.


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.



Stars: 14
Help us keep the lights on



0.6.0 - Apr 11, 2018

Breaking Changes

  • Swift 4.1

0.5.1 - Mar 10, 2018

Bug Fixes

  • Continuous integration updated to Swift 4.0.3.

0.5.0 - Feb 8, 2018

Breaking Changes

  • “Code coverage” has been renamed “test coverage”. This affects both configuration options and inline exemptions.
  • Custom Xcode projects (but not those generated by Workspace) will need their proofreading build phase script to be manually updated. (For the new script, see the documentation.)
  • Documentation generation is now off by default.
  • The initialize subcommand has been removed. Use $ swift package init and $ git init instead.
  • SwiftLint is no longer affected by Disable Proofreading Rules.
  • YAML resources are now embedded as String.

New Features

  • New proofreading rules have been added.
  • More tasks are available in isolation as individual subcommands. Commands marked with an asterisk (*) can be further narrowed to a specific •job.
    • $ workspace normalize
    • $ workspace proofread
    • $ workspace validate build*
    • $ workspace test*
    • $ workspace validate test‐coverage*
  • Documentation coverage can now be validated even if documentation generation is disabled.
  • Manual execution of specific tasks from the command line is now possible even if the task is disabled in general by the configuration file.

0.4.4 - Dec 19, 2017

New Features

  • Ability to deploy documentation directly from continuous integration instead of generating it locally and checking it in.

0.4.3 - Dec 18, 2017

New Features

  • The default read‐me template now contains installation instructions for packages with executable products, provided the repository URL and current version are configured.

Bug Fixes

  • External updates to descriptions of related projects no longer cause validation to fail.