Skip to content

Commit

Permalink
Lint markdown files.
Browse files Browse the repository at this point in the history
  • Loading branch information
rogerluan committed Sep 20, 2022
1 parent d18bf48 commit 15148d7
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
2 changes: 1 addition & 1 deletion DECISIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This file exists to provide a historical record of the motivation for important

## Why Make xcodes?

[xcode-install](https://github.com/xcpretty/xcode-install) is a great tool for quickly downloading Xcodes onto a development or build machine, and I use it all the time. Managing Ruby environments and debugging issues is annoying, though, and somehow after all these years I still don't know if I'm going to be able to successfully install Nokogiri. I do write a lot of Swift! And it feels like the ecosystem is at a point where we should be able to do almost everything we need with it instead of relying on a second language ecosystem for all of our tools. Others have probably already had this realization, but xcodes is my first crack at rewriting something that otherwise works fine in the hopes of accelerating the Swift ecosystem and ditching Ruby. For now, it aims to reimplement the core functionality with the same or similar CLI API.
[`xcode-install`](https://github.com/xcpretty/xcode-install) is a great tool for quickly downloading Xcodes onto a development or build machine, and I use it all the time. Managing Ruby environments and debugging issues is annoying, though, and somehow after all these years I still don't know if I'm going to be able to successfully install Nokogiri. I do write a lot of Swift! And it feels like the ecosystem is at a point where we should be able to do almost everything we need with it instead of relying on a second language ecosystem for all of our tools. Others have probably already had this realization, but xcodes is my first crack at rewriting something that otherwise works fine in the hopes of accelerating the Swift ecosystem and ditching Ruby. For now, it aims to reimplement the core functionality with the same or similar CLI API.

## Code Organization

Expand Down
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ _If you're looking for an app version of `xcodes`, try [Xcodes.app](https://gith

![CI Status](https://github.com/RobotsAndPencils/xcodes/workflows/CI/badge.svg)

![](Header.png)
![Header Image](Header.png)

## Installation

Expand All @@ -32,6 +32,7 @@ Download the latest release from the [Releases](https://github.com/RobotsAndPenc
```sh
mint install RobotsAndPencils/xcodes
```

</details>

<details>
Expand All @@ -49,10 +50,9 @@ PREFIX=/your/install/directory make install

While installing, you may get the following output:

```
```sh
swift build
error: terminated(72): xcrun --sdk macosx --find xctest output:
```

If that occurs, it means you need to select a version of Xcode. You can do this with `xcode-select` or by choosing a Command Line Tools option in Xcode's preferences Locations tab.
Expand All @@ -62,7 +62,7 @@ If that occurs, it means you need to select a version of Xcode. You can do this

Install a specific version of Xcode using a command like one of these:

```
```sh
xcodes install 10.2.1
xcodes install 11 Beta 7
xcodes install 11.2 GM seed
Expand All @@ -78,7 +78,7 @@ After successfully authenticating, xcodes will save your Apple ID password into

xcodes will download and install the version you asked for so that it's ready to use.

```
```sh
(1/6) Downloading Xcode 11.2.0: 100%
(2/6) Unarchiving Xcode (This can take a while)
(3/6) Moving Xcode to /Applications/Xcode-11.2.0.app
Expand Down Expand Up @@ -109,9 +109,9 @@ Xcode will be installed to /Applications by default, but you can provide the pat

### Experimental Unxip - for faster unxipping

Thanks to the amazing work by [saagarjhi](https://github.com/saagarjha/unxip) - Xcodes now includes the ability to unxip up to 70% faster on some systems.
Thanks to the amazing work by [saagarjhi](https://github.com/saagarjha/unxip) - Xcodes now includes the ability to unxip up to 70% faster on some systems.

```
```sh
xcodes install --latest --experimental-unxip
```

Expand All @@ -128,19 +128,20 @@ Run the following commands:
mkdir ~/.oh-my-zsh/completions
xcodes --generate-completion-script > ~/.oh-my-zsh/completions/_xcodes
```

</details>

## Development

You'll need Xcode 13 in order to build and run xcodes.
You'll need Xcode 13 in order to build and run xcodes.

<details>
<summary>Using Xcode</summary>
Even though xcodes is a command-line app, lll of the normal functionality works in Xcode, like building, running, and running tests. You can even type text into Xcode's console when it prompts you for input like your Apple ID or 2FA code.

When running xcodes from Xcode, if you want to run a particular command or pass some arguments, you can hold the option key to present a sheet with more options. This means you'd use <kbd>Option</kbd> + <kbd>Command</kbd> + <kbd>R</kbd> or hold <kbd>Option</kbd> while clicking the Run button. Here you can add, remove, and toggle arguments that will be passed to xcodes when it's launched.

![](XcodeRunSheet.png)
![Xcode Edit Scheme Screen](XcodeRunSheet.png)
</details>

<details>
Expand All @@ -150,6 +151,7 @@ You can also use the Swift command line tools once you have Xcode installed:
- Build: `swift build`
- Run: `swift run`, or commands like `swift run xcodes list`
- Run tests: `swift test`

</details>

There's a Makefile to help build xcodes for distribution. We already do this for you in order to provide Developer ID-signed and notarized release builds via Homebrew (see [Installation](#installation)).
Expand All @@ -175,7 +177,7 @@ make bottle VERSION="$VERSION"
# Notarize the release build
# This can take a while
make notarize \
TEAMID="ABC123"
TEAMID="ABC123"

# Push the new version bump commit and tag
git push --follow-tags
Expand All @@ -187,6 +189,7 @@ git push --follow-tags

# Update the Homebrew Bottle: https://github.com/RobotsAndPencils/homebrew-made/blob/master/Formula/xcodes.rb
```

</details>

Notable design decisions are recorded in [DECISIONS.md](./DECISIONS.md). The Apple authentication flow is described in [Apple.paw](./Apple.paw), which will allow you to play with the API endpoints that are involved using the [Paw](https://paw.cloud) app.
Expand Down

0 comments on commit 15148d7

Please sign in to comment.