Repository: exercism/cli
Pull request #1177 (2024-10-11 21:00:04)

refactored exercism.io to exercism.org
Changed exercism.io to exercism.org after reading this conversation:
https://discord.com/channels/854117591135027261/1294074767682310164

github-actions[bot]: Hello. Thanks for opening a PR on Exercism 🙂

We ask that all changes to Exercism are discussed on our Community Forum before being opened on GitHub. To enforce this, we automatically close all PRs that are submitted. That doesn't mean your PR is rejected but that we want the initial discussion about it to happen on our forum where a wide range of key contributors across the Exercism ecosystem can weigh in.

You can use [this link](https://forum.exercism.org/new-topic?title=refactored%20exercism.io%20to%20exercism.org&body=Changed%20exercism.io%20to%20exercism.org%20after%20reading%20this%20conversation:%0D%0Ahttps://discord.com/channels/854117591135027261/1294074767682310164&category=support ) to copy this into a new topic on the forum. If we decide the PR is appropriate, we'll reopen it and continue with it, so please don't delete your local branch.

If you're interested in learning more about this auto-responder, please read [this blog post](https://exercism.org/blog/contribution-guidelines-nov-2023).

---

_Note: If this PR has been pre-approved, please link back to this PR on the forum thread and a maintainer or staff member will reopen it._
iHiD: @glennj Would you like to take a stab at releasing this? (If so, we can open a forum thread for it where Erik can transfer any missing knowledge!)
glennj: Sure
iHiD: Great. Thanks! 

So the instructions are [here](https://github.com/exercism/cli/blob/main/RELEASE.md), but I guess you need keys/access. @ErikSchierboom Do you know what I need to give Glenn to make this happen? Thanks :)
ErikSchierboom: I do. Glenn needs a public key and password. I'll send it to him via the forum 
ladokp: Will this be merged during the release? I'm just curious. 😄
glennj: Sorry for the delay everyone. I'll merge this then work on the release.

Patch:
diff --git a/.release/header.md b/.release/header.md
index 55027b7..c648e2d 100644
--- a/.release/header.md
+++ b/.release/header.md
@@ -1,3 +1,3 @@
-To install, follow the interactive installation instructions at https://exercism.io/cli-walkthrough
+To install, follow the interactive installation instructions at https://exercism.org/cli-walkthrough
 
 ---
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5d98f96..b12f04f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -153,7 +153,7 @@ The exercism CLI follows [semantic versioning](http://semver.org/).
 
 ## v3.0.0 (2018-07-13)
 
-This is a complete rewrite from the ground up to work against the new https://exercism.io site.
+This is a complete rewrite from the ground up to work against the new https://exercism.org site.
 
 ## v2.4.1 (2017-07-01)
 
@@ -299,7 +299,7 @@ Tweaked:
 
 ## v1.9.2 (2015-01-11)
 
-- [exercism.io#2155](https://github.com/exercism/exercism.io/issues/2155): Fixed problem with passed in config file being ignored.
+- [exercism#2155](https://github.com/exercism/exercism/issues/2155): Fixed problem with passed in config file being ignored.
 - Added first version of changelog
 
 ## v1.9.1 (2015-01-10)
@@ -419,7 +419,7 @@ Tweaked:
 
 ## v1.3.1 (2013-12-01)
 
-- [exercism.io#1039](https://github.com/exercism/exercism.io/issues/1039): Stopped clobbering existing files on fetch
+- [exercism#1039](https://github.com/exercism/exercism/issues/1039): Stopped clobbering existing files on fetch
 
 ## v1.3.0 (2013-11-16)
 
@@ -427,7 +427,7 @@ Tweaked:
 
 ## v1.2.3 (2013-11-13)
 
-- [exercism.io#998](https://github.com/exercism/exercism.io/issues/998): Fix problem with writing an empty config file under certain circumstances.
+- [exercism#998](https://github.com/exercism/exercism/issues/998): Fix problem with writing an empty config file under certain circumstances.
 
 ## v1.2.2 (2013-11-12)
 
diff --git a/README.md b/README.md
index c92650a..8b0fa92 100644
--- a/README.md
+++ b/README.md
@@ -15,5 +15,5 @@ Instructions can be found at [exercism/cli/releases](https://github.com/exercism
 
 If you wish to help improve the CLI, please see the [Contributing guide][contributing].
 
-[exercism]: http://exercism.io
+[exercism]: http://exercism.org
 [contributing]: /CONTRIBUTING.md
diff --git a/RELEASE.md b/RELEASE.md
index 8feda68..289c788 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -34,7 +34,7 @@ This workflow will create a draft release at https://github.com/exercism/cli/rel
 Once created, go that page to update the release description to:
 
 ```
-To install, follow the interactive installation instructions at https://exercism.io/cli-walkthrough
+To install, follow the interactive installation instructions at https://exercism.org/cli-walkthrough
 ---
 
 [modify the generated release-notes to describe changes in this release]
@@ -49,6 +49,6 @@ Homebrew will automatically bump the version, no manual action is required.
 ## Update the docs site
 
 If there are any significant changes, we should describe them on
-[exercism.io/cli](https://exercism.io/cli).
+[exercism.org/cli](https://exercism.org/cli).
 
 The codebase lives at [exercism/website-copy](https://github.com/exercism/website-copy) in `pages/cli.md`.
diff --git a/config/config.go b/config/config.go
index b9b1883..e1cc37e 100644
--- a/config/config.go
+++ b/config/config.go
@@ -12,7 +12,7 @@ import (
 )
 
 var (
-	defaultBaseURL = "https://api.exercism.io/v1"
+	defaultBaseURL = "https://api.exercism.org/v1"
 
 	// DefaultDirName is the default name used for config and workspace directories.
 	DefaultDirName string
@@ -121,8 +121,8 @@ func InferSiteURL(apiURL string) string {
 	if apiURL == "" {
 		apiURL = defaultBaseURL
 	}
-	if apiURL == "https://api.exercism.io/v1" {
-		return "https://exercism.io"
+	if apiURL == "https://api.exercism.org/v1" {
+		return "https://exercism.org"
 	}
 	re := regexp.MustCompile("^(https?://[^/]*).*")
 	return re.ReplaceAllString(apiURL, "$1")
diff --git a/exercism/doc.go b/exercism/doc.go
index a60d6e7..3e00d90 100644
--- a/exercism/doc.go
+++ b/exercism/doc.go
@@ -1,5 +1,5 @@
 /*
-Command exercism allows users to interact with the exercism.io platform.
+Command exercism allows users to interact with the exercism.org platform.
 
 The primary actions are to fetch problems to be solved, and submit iterations
 of these problems.
diff --git a/shell/exercism.fish b/shell/exercism.fish
index 28702a4..c2c7c08 100644
--- a/shell/exercism.fish
+++ b/shell/exercism.fish
@@ -18,11 +18,11 @@ complete -f -c exercism -n "__fish_use_subcommand" -a "help" -d "Shows a list of
 complete -f -c exercism -n "__fish_seen_subcommand_from help" -a "configure download help open submit test troubleshoot upgrade version workspace"
 
 # Open
-complete -f -c exercism -n "__fish_use_subcommand" -a "open" -d "Opens a browser to exercism.io for the specified submission."
+complete -f -c exercism -n "__fish_use_subcommand" -a "open" -d "Opens a browser to exercism.org for the specified submission."
 complete -f -c exercism -n "__fish_seen_subcommand_from open" -s h -l help -d "help for open"
 
 # Submit
-complete -f -c exercism -n "__fish_use_subcommand" -a "submit" -d "Submits a new iteration to a problem on exercism.io."
+complete -f -c exercism -n "__fish_use_subcommand" -a "submit" -d "Submits a new iteration to a problem on exercism.org."
 complete -f -c exercism -n "__fish_seen_subcommand_from submit" -s h -l help -d "help for submit"
 
 # Test
diff --git a/shell/exercism_completion.zsh b/shell/exercism_completion.zsh
index 5d476ac..542c8a5 100644
--- a/shell/exercism_completion.zsh
+++ b/shell/exercism_completion.zsh
@@ -6,8 +6,8 @@ typeset -A opt_args
 local -a options
 options=(configure:"Writes config values to a JSON file."
          download:"Downloads and saves a specified submission into the local system"
-         open:"Opens a browser to exercism.io for the specified submission."
-         submit:"Submits a new iteration to a problem on exercism.io."
+         open:"Opens a browser to exercism.org for the specified submission."
+         submit:"Submits a new iteration to a problem on exercism.org."
          test:"Run the exercise's tests."
          troubleshoot:"Outputs useful debug information."
          upgrade:"Upgrades to the latest available version."


Test patch:
diff --git a/cmd/download_test.go b/cmd/download_test.go
index d957297..aadcf84 100644
--- a/cmd/download_test.go
+++ b/cmd/download_test.go
@@ -26,7 +26,7 @@ func TestDownloadWithoutToken(t *testing.T) {
 	if assert.Error(t, err) {
 		assert.Regexp(t, "Welcome to Exercism", err.Error())
 		// It uses the default base API url to infer the host
-		assert.Regexp(t, "exercism.io/my/settings", err.Error())
+		assert.Regexp(t, "exercism.org/my/settings", err.Error())
 	}
 }
 
diff --git a/cmd/submit_test.go b/cmd/submit_test.go
index 2a12d0b..9b64596 100644
--- a/cmd/submit_test.go
+++ b/cmd/submit_test.go
@@ -28,7 +28,7 @@ func TestSubmitWithoutToken(t *testing.T) {
 	err := runSubmit(cfg, pflag.NewFlagSet("fake", pflag.PanicOnError), []string{})
 	if assert.Error(t, err) {
 		assert.Regexp(t, "Welcome to Exercism", err.Error())
-		assert.Regexp(t, "exercism.io/my/settings", err.Error())
+		assert.Regexp(t, "exercism.org/my/settings", err.Error())
 	}
 }
 
diff --git a/config/config_test.go b/config/config_test.go
index e9d29f9..40ecb0c 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -10,11 +10,11 @@ func TestInferSiteURL(t *testing.T) {
 	testCases := []struct {
 		api, url string
 	}{
-		{"https://api.exercism.io/v1", "https://exercism.io"},
-		{"https://v2.exercism.io/api/v1", "https://v2.exercism.io"},
-		{"https://mentors-beta.exercism.io/api/v1", "https://mentors-beta.exercism.io"},
+		{"https://api.exercism.org/v1", "https://exercism.org"},
+		{"https://v2.exercism.org/api/v1", "https://v2.exercism.org"},
+		{"https://mentors-beta.exercism.org/api/v1", "https://mentors-beta.exercism.org"},
 		{"http://localhost:3000/api/v1", "http://localhost:3000"},
-		{"", "https://exercism.io"},            // use the default
+		{"", "https://exercism.org"},           // use the default
 		{"http://whatever", "http://whatever"}, // you're on your own, pal
 	}