diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..ed8f4a43 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 + +updates: + + # Keep dependencies for GitHub Actions up-to-date + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'daily' diff --git a/.github/workflows/configlet.yml b/.github/workflows/configlet.yml index 850b75f5..3c422c27 100644 --- a/.github/workflows/configlet.yml +++ b/.github/workflows/configlet.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v2 - name: Fetch configlet - uses: exercism/github-actions/configlet-ci@master + uses: exercism/github-actions/configlet-ci@main - name: Configlet Linter - run: configlet lint . + run: configlet lint diff --git a/bin/fetch-configlet b/bin/fetch-configlet index 4f64c5b9..43f1c83c 100755 --- a/bin/fetch-configlet +++ b/bin/fetch-configlet @@ -1,32 +1,58 @@ -#!/bin/bash - -LATEST=https://github.com/exercism/configlet/releases/latest - -OS=$( -case $(uname) in - (Darwin*) - echo "mac";; - (Linux*) - echo "linux";; - (Windows*) - echo "windows";; - (*) - echo "linux";; -esac) - -ARCH=$( -case $(uname -m) in - (*64*) - echo 64bit;; - (*686*) - echo 32bit;; - (*386*) - echo 32bit;; - (*) - echo 64bit;; -esac) - -VERSION="$(curl --head --silent $LATEST | awk -v FS=/ '/Location:/{print $NF}' | tr -d '\r')" -URL=https://github.com/exercism/configlet/releases/download/$VERSION/configlet-$OS-${ARCH}.tgz - -curl -s --location $URL | tar xz -C bin/ +#!/usr/bin/env bash + +set -eo pipefail + +readonly LATEST='https://api.github.com/repos/exercism/configlet/releases/latest' + +case "$(uname)" in + Darwin*) os='mac' ;; + Linux*) os='linux' ;; + Windows*) os='windows' ;; + MINGW*) os='windows' ;; + MSYS_NT-*) os='windows' ;; + *) os='linux' ;; +esac + +case "${os}" in + windows*) ext='zip' ;; + *) ext='tgz' ;; +esac + +case "$(uname -m)" in + *64*) arch='64bit' ;; + *686*) arch='32bit' ;; + *386*) arch='32bit' ;; + *) arch='64bit' ;; +esac + +curlopts=( + --silent + --show-error + --fail + --location + --retry 3 +) + +if [[ -n "${GITHUB_TOKEN}" ]]; then + curlopts+=(--header "authorization: Bearer ${GITHUB_TOKEN}") +fi + +suffix="${os}-${arch}.${ext}" + +get_download_url() { + curl "${curlopts[@]}" --header 'Accept: application/vnd.github.v3+json' "${LATEST}" | + grep "\"browser_download_url\": \".*/download/.*/configlet.*${suffix}\"$" | + cut -d'"' -f4 +} + +download_url="$(get_download_url)" +output_dir="bin" +output_path="${output_dir}/latest-configlet.${ext}" +curl "${curlopts[@]}" --output "${output_path}" "${download_url}" + +case "${ext}" in + *zip) unzip "${output_path}" -d "${output_dir}" ;; + *) tar xzf "${output_path}" -C "${output_dir}" ;; +esac + +rm -f "${output_path}" diff --git a/config.json b/config.json index 022e6f8e..acdd2e5c 100644 --- a/config.json +++ b/config.json @@ -1,98 +1,115 @@ { "language": "VB.NET", + "slug": "vbnet", "active": false, + "status": { + "concept_exercises": false, + "test_runner": false, + "representer": false, + "analyzer": false + }, "blurb": "VB.NET is an object-oriented programming language implemented on the .NET Framework.", + "version": 3, + "online_editor": { + "indent_style": "space", + "indent_size": 4 + }, "checklist_issue": 3, - "exercises": [ - { - "slug": "hello-world", - "uuid": "a3da97d9-8e55-47a2-ba80-7446ee8ddaa9", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "strings" - ] - }, - { - "slug": "two-fer", - "uuid": "22176233-7668-4faf-8ecc-f24a4c766307", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "optional_values", - "strings" - ] - }, - { - "slug": "reverse-string", - "uuid": "af6ae113-35b5-45a2-bf24-27381adf5c6f", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "strings" - ] - }, - { - "slug": "bob", - "uuid": "c26876c4-060e-4870-b20c-a4a3ebbfcf7c", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - }, - { - "slug": "anagram", - "uuid": "ff07d780-2531-4728-9432-bd786652ad51", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - }, - { - "slug": "binary", - "uuid": "b5363091-1350-428f-b709-550f9352d562", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "math" - ] - }, - { - "slug": "allergies", - "uuid": "0488d664-0386-4471-b569-01f847ec6054", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - }, - { - "slug": "atbash-cipher", - "uuid": "cd829c1c-8e35-4cf7-a47e-3b394a036637", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - }, - { - "slug": "accumulate", - "uuid": "b2e12f15-5cae-4848-9ee8-2e1b0992b69c", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - }, - { - "slug": "crypto-square", - "uuid": "5f6ed6d3-fd66-406a-9a92-544745a5e4ee", - "core": false, - "unlocked_by": null, - "difficulty": 1, - "topics": [] - } - ] + "exercises": { + "concept": [], + "practice": [ + { + "slug": "hello-world", + "name": "Hello World", + "uuid": "a3da97d9-8e55-47a2-ba80-7446ee8ddaa9", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "strings" + ] + }, + { + "slug": "two-fer", + "name": "Two Fer", + "uuid": "22176233-7668-4faf-8ecc-f24a4c766307", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "optional_values", + "strings" + ] + }, + { + "slug": "reverse-string", + "name": "Reverse String", + "uuid": "af6ae113-35b5-45a2-bf24-27381adf5c6f", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "strings" + ] + }, + { + "slug": "accumulate", + "name": "Accumulate", + "uuid": "b2e12f15-5cae-4848-9ee8-2e1b0992b69c", + "prerequisites": [], + "difficulty": 1, + "topics": [] + }, + { + "slug": "allergies", + "name": "Allergies", + "uuid": "0488d664-0386-4471-b569-01f847ec6054", + "prerequisites": [], + "difficulty": 1, + "topics": [] + }, + { + "slug": "anagram", + "name": "Anagram", + "uuid": "ff07d780-2531-4728-9432-bd786652ad51", + "prerequisites": [], + "difficulty": 1, + "topics": [] + }, + { + "slug": "atbash-cipher", + "name": "Atbash Cipher", + "uuid": "cd829c1c-8e35-4cf7-a47e-3b394a036637", + "prerequisites": [], + "difficulty": 1, + "topics": [] + }, + { + "slug": "binary", + "name": "Binary", + "uuid": "b5363091-1350-428f-b709-550f9352d562", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "math" + ] + }, + { + "slug": "bob", + "name": "Bob", + "uuid": "c26876c4-060e-4870-b20c-a4a3ebbfcf7c", + "prerequisites": [], + "difficulty": 1, + "topics": [] + }, + { + "slug": "crypto-square", + "name": "Crypto Square", + "uuid": "5f6ed6d3-fd66-406a-9a92-544745a5e4ee", + "prerequisites": [], + "difficulty": 1, + "topics": [] + } + ] + }, + "concepts": [], + "key_features": [], + "tags": [] } diff --git a/exercises/accumulate/AccumulateTest.vb b/exercises/practice/accumulate/AccumulateTest.vb similarity index 100% rename from exercises/accumulate/AccumulateTest.vb rename to exercises/practice/accumulate/AccumulateTest.vb diff --git a/exercises/accumulate/Example.vb b/exercises/practice/accumulate/Example.vb similarity index 100% rename from exercises/accumulate/Example.vb rename to exercises/practice/accumulate/Example.vb diff --git a/exercises/accumulate/README.md b/exercises/practice/accumulate/README.md similarity index 100% rename from exercises/accumulate/README.md rename to exercises/practice/accumulate/README.md diff --git a/exercises/allergies/AllergiesTest.vb b/exercises/practice/allergies/AllergiesTest.vb similarity index 100% rename from exercises/allergies/AllergiesTest.vb rename to exercises/practice/allergies/AllergiesTest.vb diff --git a/exercises/allergies/Example.vb b/exercises/practice/allergies/Example.vb similarity index 100% rename from exercises/allergies/Example.vb rename to exercises/practice/allergies/Example.vb diff --git a/exercises/allergies/README.md b/exercises/practice/allergies/README.md similarity index 100% rename from exercises/allergies/README.md rename to exercises/practice/allergies/README.md diff --git a/exercises/anagram/AnagramTest.vb b/exercises/practice/anagram/AnagramTest.vb similarity index 100% rename from exercises/anagram/AnagramTest.vb rename to exercises/practice/anagram/AnagramTest.vb diff --git a/exercises/anagram/Example.vb b/exercises/practice/anagram/Example.vb similarity index 100% rename from exercises/anagram/Example.vb rename to exercises/practice/anagram/Example.vb diff --git a/exercises/anagram/README.md b/exercises/practice/anagram/README.md similarity index 100% rename from exercises/anagram/README.md rename to exercises/practice/anagram/README.md diff --git a/exercises/atbash-cipher/AtbashTest.vb b/exercises/practice/atbash-cipher/AtbashTest.vb similarity index 100% rename from exercises/atbash-cipher/AtbashTest.vb rename to exercises/practice/atbash-cipher/AtbashTest.vb diff --git a/exercises/atbash-cipher/Example.vb b/exercises/practice/atbash-cipher/Example.vb similarity index 100% rename from exercises/atbash-cipher/Example.vb rename to exercises/practice/atbash-cipher/Example.vb diff --git a/exercises/atbash-cipher/README.md b/exercises/practice/atbash-cipher/README.md similarity index 100% rename from exercises/atbash-cipher/README.md rename to exercises/practice/atbash-cipher/README.md diff --git a/exercises/binary/BinaryTest.vb b/exercises/practice/binary/BinaryTest.vb similarity index 100% rename from exercises/binary/BinaryTest.vb rename to exercises/practice/binary/BinaryTest.vb diff --git a/exercises/binary/Example.vb b/exercises/practice/binary/Example.vb similarity index 100% rename from exercises/binary/Example.vb rename to exercises/practice/binary/Example.vb diff --git a/exercises/binary/README.md b/exercises/practice/binary/README.md similarity index 100% rename from exercises/binary/README.md rename to exercises/practice/binary/README.md diff --git a/exercises/bob/.meta/description.md b/exercises/practice/bob/.meta/description.md similarity index 100% rename from exercises/bob/.meta/description.md rename to exercises/practice/bob/.meta/description.md diff --git a/exercises/bob/BobTest.vb b/exercises/practice/bob/BobTest.vb similarity index 100% rename from exercises/bob/BobTest.vb rename to exercises/practice/bob/BobTest.vb diff --git a/exercises/bob/Example.vb b/exercises/practice/bob/Example.vb similarity index 100% rename from exercises/bob/Example.vb rename to exercises/practice/bob/Example.vb diff --git a/exercises/bob/README.md b/exercises/practice/bob/README.md similarity index 100% rename from exercises/bob/README.md rename to exercises/practice/bob/README.md diff --git a/exercises/crypto-square/CryptoSquareTest.vb b/exercises/practice/crypto-square/CryptoSquareTest.vb similarity index 100% rename from exercises/crypto-square/CryptoSquareTest.vb rename to exercises/practice/crypto-square/CryptoSquareTest.vb diff --git a/exercises/crypto-square/Example.vb b/exercises/practice/crypto-square/Example.vb similarity index 100% rename from exercises/crypto-square/Example.vb rename to exercises/practice/crypto-square/Example.vb diff --git a/exercises/crypto-square/README.md b/exercises/practice/crypto-square/README.md similarity index 100% rename from exercises/crypto-square/README.md rename to exercises/practice/crypto-square/README.md diff --git a/exercises/hello-world/Example.vb b/exercises/practice/hello-world/Example.vb similarity index 100% rename from exercises/hello-world/Example.vb rename to exercises/practice/hello-world/Example.vb diff --git a/exercises/hello-world/HelloWorld.vb b/exercises/practice/hello-world/HelloWorld.vb similarity index 100% rename from exercises/hello-world/HelloWorld.vb rename to exercises/practice/hello-world/HelloWorld.vb diff --git a/exercises/hello-world/HelloWorld.vbproj b/exercises/practice/hello-world/HelloWorld.vbproj similarity index 100% rename from exercises/hello-world/HelloWorld.vbproj rename to exercises/practice/hello-world/HelloWorld.vbproj diff --git a/exercises/hello-world/HelloWorldTest.vb b/exercises/practice/hello-world/HelloWorldTest.vb similarity index 100% rename from exercises/hello-world/HelloWorldTest.vb rename to exercises/practice/hello-world/HelloWorldTest.vb diff --git a/exercises/hello-world/README.md b/exercises/practice/hello-world/README.md similarity index 100% rename from exercises/hello-world/README.md rename to exercises/practice/hello-world/README.md diff --git a/exercises/reverse-string/Example.vb b/exercises/practice/reverse-string/Example.vb similarity index 100% rename from exercises/reverse-string/Example.vb rename to exercises/practice/reverse-string/Example.vb diff --git a/exercises/reverse-string/README.md b/exercises/practice/reverse-string/README.md similarity index 100% rename from exercises/reverse-string/README.md rename to exercises/practice/reverse-string/README.md diff --git a/exercises/reverse-string/ReverseString.vb b/exercises/practice/reverse-string/ReverseString.vb similarity index 100% rename from exercises/reverse-string/ReverseString.vb rename to exercises/practice/reverse-string/ReverseString.vb diff --git a/exercises/reverse-string/ReverseString.vbproj b/exercises/practice/reverse-string/ReverseString.vbproj similarity index 100% rename from exercises/reverse-string/ReverseString.vbproj rename to exercises/practice/reverse-string/ReverseString.vbproj diff --git a/exercises/reverse-string/ReverseStringTests.vb b/exercises/practice/reverse-string/ReverseStringTests.vb similarity index 100% rename from exercises/reverse-string/ReverseStringTests.vb rename to exercises/practice/reverse-string/ReverseStringTests.vb diff --git a/exercises/two-fer/Example.vb b/exercises/practice/two-fer/Example.vb similarity index 100% rename from exercises/two-fer/Example.vb rename to exercises/practice/two-fer/Example.vb diff --git a/exercises/two-fer/README.md b/exercises/practice/two-fer/README.md similarity index 100% rename from exercises/two-fer/README.md rename to exercises/practice/two-fer/README.md diff --git a/exercises/two-fer/TwoFer.vb b/exercises/practice/two-fer/TwoFer.vb similarity index 100% rename from exercises/two-fer/TwoFer.vb rename to exercises/practice/two-fer/TwoFer.vb diff --git a/exercises/two-fer/TwoFer.vbproj b/exercises/practice/two-fer/TwoFer.vbproj similarity index 100% rename from exercises/two-fer/TwoFer.vbproj rename to exercises/practice/two-fer/TwoFer.vbproj diff --git a/exercises/two-fer/TwoFerTests.vb b/exercises/practice/two-fer/TwoFerTests.vb similarity index 100% rename from exercises/two-fer/TwoFerTests.vb rename to exercises/practice/two-fer/TwoFerTests.vb