Skip to content

Commit

Permalink
Elixir 1.16 (#1397)
Browse files Browse the repository at this point in the history
* Test on Elixir 1.16

* Update 'getting started' links

* Fix genserver link

* Ignore reddit links
  • Loading branch information
angelikatyborska authored Jan 6, 2024
1 parent d00f7c1 commit 8d74999
Show file tree
Hide file tree
Showing 118 changed files with 172 additions and 181 deletions.
10 changes: 4 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
elixir: [1.15]
otp: [26.0]
elixir: [1.16]
otp: [26.2]

steps:
- name: Checkout code
Expand Down Expand Up @@ -76,10 +76,6 @@ jobs:
strategy:
matrix:
include:
- elixir: '1.10.0'
otp: '21.0'
- elixir: '1.10.0'
otp: '22.2'
- elixir: '1.11.0'
otp: '23.2'
- elixir: '1.12.0'
Expand All @@ -90,6 +86,8 @@ jobs:
otp: '25.0'
- elixir: '1.15.0'
otp: '26.0'
- elixir: '1.16.0'
otp: '26.2'

steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
Expand Down
1 change: 1 addition & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ github.com/pulls
twitter.com
regexr.com
papyr.com
reddit.com
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Please keep the following in mind:

- For practice exercises, `instructions.md` come from the [problem specifications](https://github.com/exercism/problem-specifications) repository. They cannot be changed without updating them in that repository first. If Elixir-specific changes are necessary, they can be appended to the instructions by creating a `instructions.append.md` file.

- For practice exercises, use typespecs in the example and template files as described [here](https://elixir-lang.org/getting-started/typespecs-and-behaviours.html).
- For practice exercises, use typespecs in the example and template files as described [here](https://hexdocs.pm/elixir/typespecs.html).

- Each practice exercise test file should have a `test_helper.exs` with code like the following at the top of the file.
This allows the tests to be run on CI and configures tests to be skipped with the `:pending` flag.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

## Setup

The exercises currently target Elixir versions from 1.10 to 1.15 and Erlang/OTP versions from 21 to 26. Detailed installation instructions can be found at
The exercises currently target Elixir versions from 1.11 to 1.16 and Erlang/OTP versions from 21 to 26. Detailed installation instructions can be found at
[https://elixir-lang.org/install.html](https://elixir-lang.org/install.html). We recommend using the [asdf version manager](https://github.com/asdf-vm/asdf) to manage multiple Elixir versions.

## Testing
Expand Down
2 changes: 1 addition & 1 deletion concepts/agent/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/mix-otp/agent.html#agents",
"url": "https://hexdocs.pm/elixir/agents.html",
"description": "Getting Started - Agents"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/anonymous-functions/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ x
# => ** (CompileError): undefined function x/0
```

[anon-fns]: https://elixir-lang.org/getting-started/basic-types.html#anonymous-functions
[anon-fns]: https://hexdocs.pm/elixir/anonymous-functions.html
[kernel-fn]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#fn/1
[kernel-capture]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#&/1
[capture]: https://dockyard.com/blog/2016/08/05/understand-capture-operator-in-elixir
Expand Down
2 changes: 1 addition & 1 deletion concepts/anonymous-functions/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/basic-types.html#anonymous-functions",
"url": "https://hexdocs.pm/elixir/anonymous-functions.html",
"description": "Getting Started guide - Anonymous Functions"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/ast/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The ability to represent code as an AST is at the heart of metaprogramming in El

Another use case for ASTs is static code analysis, like Exercism's own tool, the Analyzer, which you might already know as the little bot that leaves comments on your solutions.

[getting-started-quote]: https://elixir-lang.org/getting-started/meta/quote-and-unquote.html#quoting
[getting-started-quote]: https://hexdocs.pm/elixir/quote-and-unquote.html
[doc-quote]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#quote/2
[doc-code-string-to-quoted]: https://hexdocs.pm/elixir/Code.html#string_to_quoted/2
[macro-prewalk]: https://hexdocs.pm/elixir/Macro.html#prewalk/3
2 changes: 1 addition & 1 deletion concepts/ast/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/meta/quote-and-unquote.html#quoting",
"url": "https://hexdocs.pm/elixir/quote-and-unquote.html",
"description": "Getting Started - quoting"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/atoms/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ Enum.fetch([1], 2)

[_Atoms_][atom] are internally represented by an integer in a lookup table, which are set automatically. That makes comparing atoms faster than comparing strings. It is not possible to change this internal value. It is generally considered to be an [anti-pattern][anti-pattern] to dynamically create atoms from user supplied input. The runtime only has space for a limited number of atoms, generating new atoms at runtime could fail if the atom table is full.

[atom]: https://elixir-lang.org/getting-started/basic-types.html#atoms
[atom]: https://hexdocs.pm/elixir/basic-types.html#atoms
[anti-pattern]: https://en.wikipedia.org/wiki/Anti-pattern
2 changes: 1 addition & 1 deletion concepts/atoms/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/basic-types.html#atoms",
"url": "https://hexdocs.pm/elixir/basic-types.html#atoms",
"description": "Getting Started - Atoms"
}
]
4 changes: 2 additions & 2 deletions concepts/basics/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ string = "this is a string! 1, 2, 3!"
Comments can be used to leave notes for other developers reading the source code. Single line comments in Elixir are preceded by `#`.

[match]: https://elixirschool.com/en/lessons/basics/pattern_matching/
[operators]: https://elixir-lang.org/getting-started/basic-types.html#basic-arithmetic
[operators]: https://hexdocs.pm/elixir/basic-types.html#basic-arithmetic
[modules]: https://elixirschool.com/en/lessons/basics/modules/#modules
[functions]: https://elixirschool.com/en/lessons/basics/functions/#named-functions
[def]: https://hexdocs.pm/elixir/Kernel.html#def/2
[defp]: https://hexdocs.pm/elixir/Kernel.html#defp/2
[defmodule]: https://hexdocs.pm/elixir/Kernel.html#defmodule/2
[string]: https://elixir-lang.org/getting-started/basic-types.html#strings
[string]: https://hexdocs.pm/elixir/basic-types.html#strings
[docs]: https://hexdocs.pm/elixir/Kernel.html#content
6 changes: 1 addition & 5 deletions concepts/basics/links.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
[
{
"url": "https://elixir-lang.org/getting-started/basic-types.html",
"url": "https://hexdocs.pm/elixir/basic-types.html",
"description": "Getting Started guide - Basic Types"
},
{
"url": "https://elixir-lang.org/getting-started/basic-operators.html",
"description": "Getting Started guide - Basic Operators"
},
{
"url": "https://elixirschool.com/en/lessons/basics/basics/",
"description": "Basics - Elixir School"
Expand Down
4 changes: 0 additions & 4 deletions concepts/behaviours/links.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
[
{
"url": "https://elixir-lang.org/getting-started/typespecs-and-behaviours.html#behaviours",
"description": "Getting Started - Behaviours"
},
{
"url": "https://hexdocs.pm/elixir/typespecs.html#behaviours",
"description": "Documentation - Behaviours"
Expand Down
4 changes: 2 additions & 2 deletions concepts/binaries/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ This can be also done for strings:

[bin-concat]: https://hexdocs.pm/elixir/Kernel.html#%3C%3E/2
[bin-size]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1-unit-and-size
[binary]: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#binaries
[bitstring]: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#bitstrings
[binary]: https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#binaries
[bitstring]: https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#bitstrings
[byte-size]: https://hexdocs.pm/elixir/Kernel.html#byte_size/1
[special-form]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1
[string-length]: https://hexdocs.pm/elixir/String.html#length/1
Expand Down
2 changes: 1 addition & 1 deletion concepts/binaries/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#binaries",
"url": "https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#binaries",
"description": "Getting Started guide - Binaries"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/bitstrings/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@
- `0b1000001 = ?A = 65`

[integer-literal]: https://hexdocs.pm/elixir/syntax-reference.html#integers-in-other-bases-and-unicode-code-points
[bitstring]: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#bitstrings
[bitstring]: https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#bitstrings
[bitstring-form]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1
[bitstring-matching]: https://hexdocs.pm/elixir/Kernel.SpecialForms.html#%3C%3C%3E%3E/1-binary-bitstring-matching
2 changes: 1 addition & 1 deletion concepts/bitstrings/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#bitstrings",
"url": "https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#bitstrings",
"description": "Getting Started guide - Bitstrings"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/booleans/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/basic-types.html#booleans",
"url": "https://hexdocs.pm/elixir/basic-types.html#booleans-and-nil",
"description": "Getting Started guide - Booleans"
}
]
2 changes: 1 addition & 1 deletion concepts/case/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/case-cond-and-if.html#case",
"url": "https://hexdocs.pm/elixir/case-cond-and-if.html#case",
"description": "Getting Started guide - case"
}
]
2 changes: 1 addition & 1 deletion concepts/charlists/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#charlists",
"url": "https://hexdocs.pm/elixir/binaries-strings-and-charlists.html#charlists",
"description": "Getting Started guide - Charlists"
}
]
6 changes: 3 additions & 3 deletions concepts/cond/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ end

The `cond` conditional is usually used when there are more than two logical branches and each branch has a condition based on different variables. If all the conditions are based on the same variables, a [`case`][case] conditional is a better fit. If there are only two logical branches, use an [`if`][if] conditional instead.

[cond]: https://elixir-lang.org/getting-started/case-cond-and-if.html#cond
[case]: https://elixir-lang.org/getting-started/case-cond-and-if.html#case
[if]: https://elixir-lang.org/getting-started/case-cond-and-if.html#if-and-unless
[cond]: https://hexdocs.pm/elixir/case-cond-and-if.html#cond
[case]: https://hexdocs.pm/elixir/case-cond-and-if.html#case
[if]: https://hexdocs.pm/elixir/case-cond-and-if.html#if-unless
2 changes: 1 addition & 1 deletion concepts/cond/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/case-cond-and-if.html#cond",
"url": "https://hexdocs.pm/elixir/case-cond-and-if.html#cond",
"description": "Getting Started - cond"
}
]
2 changes: 1 addition & 1 deletion concepts/default-arguments/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,5 @@ guess()
# => true
```

[default-arguments]: https://elixir-lang.org/getting-started/modules-and-functions.html#default-arguments
[default-arguments]: https://hexdocs.pm/elixir/modules-and-functions.html#default-arguments
[function-header]: https://inquisitivedeveloper.com/lwm-elixir-25/
2 changes: 1 addition & 1 deletion concepts/default-arguments/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/modules-and-functions.html#default-arguments",
"url": "https://hexdocs.pm/elixir/modules-and-functions.html#default-arguments",
"description": "Getting Started guide - Default Arguments"
}
]
2 changes: 1 addition & 1 deletion concepts/docs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,6 @@ If a module or a function is intended for internal usage only, you can mark it w
[intellij-elixir-documentation]: https://github.com/KronicDeth/intellij-elixir#quick-documentation
[vsc-documentation]: https://fly.io/phoenix-files/setup-vscode-for-elixir-development/
[iex-h]: https://hexdocs.pm/iex/IEx.Helpers.html#h/1
[getting-started-iex]: https://elixir-lang.org/getting-started/introduction.html#interactive-mode
[getting-started-iex]: https://hexdocs.pm/elixir/introduction.html#interactive-mode
[hiding-internal-modules-and-functions]: https://hexdocs.pm/elixir/writing-documentation.html#hiding-internal-modules-and-functions
[documentation-vs-comments]: https://hexdocs.pm/elixir/writing-documentation.html#documentation-code-comments
2 changes: 1 addition & 1 deletion concepts/enum/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/enumerables-and-streams.html#enumerables",
"url": "https://hexdocs.pm/elixir/enumerable-and-streams.html#enumerables",
"description": "Getting Started - Enumerables"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/erlang-libraries/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/erlang-libraries.html",
"url": "https://hexdocs.pm/elixir/erlang-libraries.html",
"description": "Getting Started - Erlang libraries"
},
{
Expand Down
4 changes: 2 additions & 2 deletions concepts/errors/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ case MyModule.janky_function() do
end
```

[getting-started]: https://elixir-lang.org/getting-started/try-catch-and-rescue.html
[errors]: https://elixir-lang.org/getting-started/try-catch-and-rescue.html#errors
[getting-started]: https://hexdocs.pm/elixir/try-catch-and-rescue.html
[errors]: https://hexdocs.pm/elixir/try-catch-and-rescue.html#errors
[let-it-crash]: https://www.amberbit.com/blog/2019/7/26/the-misunderstanding-of-let-it-crash/
[happy-path]: https://en.wikipedia.org/wiki/Happy_path
2 changes: 1 addition & 1 deletion concepts/exceptions/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,6 @@ raise MyCustomizedError, "a very bad error occurred"
# => ** (MyCustomizedError) Alert: a very bad error occurred
```

[getting-started-errors]: https://elixir-lang.org/getting-started/try-catch-and-rescue.html#errors
[getting-started-errors]: https://hexdocs.pm/elixir/try-catch-and-rescue.html#errors
[defexception]: https://hexdocs.pm/elixir/Kernel.html#defexception/1
[exception-behaviour]: https://hexdocs.pm/elixir/Exception.html
2 changes: 1 addition & 1 deletion concepts/exceptions/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/try-catch-and-rescue.html#errors",
"url": "https://hexdocs.pm/elixir/try-catch-and-rescue.html#errors",
"description": "Getting Started guide - Errors"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/file/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/io-and-the-file-system.html#the-file-module",
"url": "https://hexdocs.pm/elixir/io-and-the-file-system.html#the-file-module",
"description": "Getting Started guide - File"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/genserver/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/mix-otp/genserver.html",
"url": "https://hexdocs.pm/elixir/genservers.html",
"description": "Getting Started - GenServer"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/if/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ truthy?.(nil)
# => true
```

[getting-started-if-unless]: https://elixir-lang.org/getting-started/case-cond-and-if.html#if-and-unless
[getting-started-if-unless]: https://hexdocs.pm/elixir/case-cond-and-if.html#if-unless
[kernel-if]: https://hexdocs.pm/elixir/Kernel.html#if/2
[kernel-unless]: https://hexdocs.pm/elixir/Kernel.html#unless/2
[kernel-boolean-and]: https://hexdocs.pm/elixir/Kernel.html#and/2
Expand Down
2 changes: 1 addition & 1 deletion concepts/if/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,5 @@ This syntax is helpful for very short expressions, but should be avoided if the

In Elixir, all datatypes evaluate to a _truthy_ or _falsy_ value when they are encountered in a boolean context (like an `if` expression). All data is considered _truthy_ **except** for `false` and `nil`. In particular, empty strings, the integer `0`, and empty lists are all considered _truthy_ in Elixir.

[getting-started-if-unless]: https://elixir-lang.org/getting-started/case-cond-and-if.html#if-and-unless
[getting-started-if-unless]: https://hexdocs.pm/elixir/case-cond-and-if.html#if-unless
[kernel-if]: https://hexdocs.pm/elixir/Kernel.html#if/2
4 changes: 2 additions & 2 deletions concepts/if/links.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[
{
"url": "https://elixir-lang.org/getting-started/case-cond-and-if.html#if-and-unless",
"url": "https://hexdocs.pm/elixir/case-cond-and-if.html#if-unless",
"description": "Getting Started: `if` and `unless`"
},
{
"url": "https://elixir-lang.org/getting-started/basic-types.html#booleans",
"url": "https://hexdocs.pm/elixir/basic-types.html#booleans-and-nil",
"description": "Getting Started: Booleans"
},
{
Expand Down
4 changes: 2 additions & 2 deletions concepts/io/links.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[
{
"url": "https://elixir-lang.org/getting-started/io-and-the-file-system.html#the-io-module",
"url": "https://hexdocs.pm/elixir/io-and-the-file-system.html#the-io-module",
"description": "Getting Started guide - IO"
},
{
"url": "https://hexdocs.pm/elixir/IO.html",
"description": "The IO module"
},
{
"url": "https://elixir-lang.org/getting-started/debugging.html#ioinspect2",
"url": "https://hexdocs.pm/elixir/debugging.html#io-inspect-2",
"description": "Getting Started guide - Debugging with IO.inspect/2"
}
]
2 changes: 1 addition & 1 deletion concepts/keyword-lists/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/keywords-and-maps.html#keyword-lists",
"url": "https://hexdocs.pm/elixir/keywords-and-maps.html#keyword-lists",
"description": "Getting Started guide - Keyword Lists"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/links/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/processes.html#links",
"url": "https://hexdocs.pm/elixir/processes.html#links",
"description": "Getting Started - Links"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/list-comprehensions/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/comprehensions.html",
"url": "https://hexdocs.pm/elixir/comprehensions.html",
"description": "Getting Started guide - Comprehensions"
},
{
Expand Down
2 changes: 1 addition & 1 deletion concepts/lists/links.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"url": "https://elixir-lang.org/getting-started/basic-types.html#linked-lists",
"url": "https://hexdocs.pm/elixir/lists-and-tuples.html#linked-lists",
"description": "Getting Started - Lists"
},
{
Expand Down
Loading

0 comments on commit 8d74999

Please sign in to comment.