macOS • Linux
Workspace automates management of Swift projects.
- Provides rigorous validation:
- Generates API documentation.
- Automates code maintenance:
- Automates open source details:
- Designed to interoperate with the Swift Package Manager.
- Manages projects for macOS, Linux, iOS, watchOS and tvOS.
(For a list of related projects, see here.)
Workspace provides command line tools.
Paste the following into a terminal to install or update them:
curl -sL https://gist.github.com/SDGGiesbrecht/4d76ad2f2b9c7bf9072ca1da9815d7e2/raw/update.sh | bash -s Workspace "https://github.com/SDGGiesbrecht/Workspace" 0.13.2 "workspace help" workspace arbeitsbereich
Workspace provides a library for use with the Swift Package Manager.
Simply add Workspace as a dependency in
let package = Package( name: "MyPackage", dependencies: [ .package(url: "https://github.com/SDGGiesbrecht/Workspace", .upToNextMinor(from: Version(0, 13, 2))), ], targets: [ .target(name: "MyTarget", dependencies: [ .productItem(name: "WorkspaceConfiguration", package: "Workspace"), ]) ] )
The library’s module can then be imported in source files:
The Workspace Workflow
(The following sample package is a real repository. You can use it to follow along.)
When the Repository Is Cloned
The need to hunt down workflow tools can deter contributors. On the other hand, including them in the repository causes a lot of clutter. To reduce both, when a project using Workspace is pulled, pushed, or cloned...
git clone https://github.com/SDGGiesbrecht/SamplePackage
...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 Project
To refresh the project, 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 may take a while the first time, but subsequent runs are faster.)
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...
When the project seems ready for a push, merge, or pull request, validate the current state of the project by double‐clicking the
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...
Validatewhen 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.)
$ 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.