Skip to content

Commit 9ec57c6

Browse files
Add authors and contributors to Practice Exercises (#458)
For each Practice Exercise, we've looked at the commit history of its files to see which commits touched that Practice Exercise. Each commit that we could associate with a Practice Exercise was used to determine authorship/contributorship. ### Authors 1. Find the Git commit author of the oldest commit linked to that Practice Exercise 2. Find the GitHub username for the Git commit author of that commit 3. Add the GitHub username of the Git commit author to the `authors` key in the `.meta/config.json` file ### Contributors 1. Find the Git commit authors and any co-authors of all but the oldest commit linked to that Practice Exercise. If there is only one commit, there won't be any contributors. 1. Exclude the Git commit author and any co-authors of the oldest commit from the list of Git commit authors (an author is _not_ also a contributor) 2. Find the GitHub usernames for the Git commit authors and any co-authors of those commits 3. Add the GitHub usernames of the Git commit authors and any co-authors to the `contributor` key in the `.meta/config.json` file We used the GitHub GraphQL API to find the username of a commit author or any co-authors. In some cases though, a username cannot be found for a commit (e.g. due to the user account no longer existing), in which case the commit was skipped. ## Renames There are a small number of Practice Exercises that might have been renamed at some point. You can ask Git to "follow" a file over its renames using `git log --follow <file>`, which will also return commits made before renames. Unfortunately, Git does not store renames, it just stores the contents of the renamed files and tries to guess if a file was renamed by looking at its contents. This _can_ (and will) lead to false positives, where Git will think a file has been renamed whereas it hasn't. As we don't want to have incorrect authors/contributors for exercises, we're ignoring renames. The only exception to this are known exercise renames: - `bracket-push` was renamed to `matching-brackets` - `retree` was renamed to `satellite` - `resistor-colors` was renamed to `resistor-color-duo` - `kindergarden-garden` was renamed to `kindergarten-garden` ## Exclusions There are some commits that we skipped over, and which thus didn't influence the authors/contributors list: - Commits authored by `dependabot[bot]`, `dependabot-preview[bot]` or `github-actions[bot]` - Bulk update PRs made by `ErikSchierboom` or `kytrinx` to update the track
1 parent 742bea2 commit 9ec57c6

File tree

32 files changed

+218
-31
lines changed

32 files changed

+218
-31
lines changed

exercises/practice/accumulate/.meta/config.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"blurb": "Implement the `accumulate` operation, which, given a collection and an operation to perform on each element of the collection, returns a new collection containing the result of applying that operation to each element of the input collection.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango",
10+
"yanick"
11+
],
412
"files": {
513
"solution": [
614
"Accumulate.rakumod"

exercises/practice/acronym/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Convert a long phrase to its acronym",
3-
"authors": [],
3+
"authors": [
4+
"dcampos"
5+
],
6+
"contributors": [
7+
"m-dango"
8+
],
49
"files": {
510
"solution": [
611
"Acronym.rakumod"

exercises/practice/all-your-base/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Convert a number, represented as a sequence of digits in one base, to any other base.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
6+
"contributors": [
7+
"kotp"
8+
],
49
"files": {
510
"solution": [
611
"AllYourBase.rakumod"

exercises/practice/allergies/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"m-dango"
9+
],
410
"files": {
511
"solution": [
612
"Allergies.rakumod"

exercises/practice/anagram/.meta/config.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
{
22
"blurb": "Given a word and a list of possible anagrams, select the correct sublist.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango",
10+
"polettix",
11+
"yanick"
12+
],
413
"files": {
514
"solution": [
615
"Anagram.rakumod"

exercises/practice/atbash-cipher/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "Create an implementation of the atbash cipher, an ancient encryption system created in the Middle East.",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"m-dango"
9+
],
410
"files": {
511
"solution": [
612
"AtbashCipher.rakumod"

exercises/practice/binary/.meta/config.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"blurb": "Convert a binary number, represented as a string (e.g. '101010'), to its decimal equivalent using first principles",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango",
10+
"yanick"
11+
],
412
"files": {
513
"solution": [
614
"Binary.rakumod"

exercises/practice/bob/.meta/config.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
{
22
"blurb": "Bob is a lackadaisical teenager. In conversation, his responses are very limited.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"austinlyons",
8+
"kotp",
9+
"kytrinyx",
10+
"m-dango",
11+
"yanick"
12+
],
413
"files": {
514
"solution": [
615
"Bob.rakumod"

exercises/practice/clock/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Implement a clock that handles times without dates.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
6+
"contributors": [
7+
"kotp"
8+
],
49
"files": {
510
"solution": [
611
"Clock.rakumod"

exercises/practice/etl/.meta/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"blurb": "We are going to do the `Transform` step of an Extract-Transform-Load.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
46
"files": {
57
"solution": [
68
"ETL.rakumod"

exercises/practice/flatten-array/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Take a nested list and return a single list with all values except nil/null",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
6+
"contributors": [
7+
"kotp"
8+
],
49
"files": {
510
"solution": [
611
"FlattenArray.rakumod"

exercises/practice/grade-school/.meta/config.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{
22
"blurb": "Given students' names along with the grade that they are in, create a roster for the school",
33
"authors": [],
4+
"contributors": [
5+
"kotp",
6+
"m-dango"
7+
],
48
"files": {
59
"solution": [
610
"GradeSchool.rakumod"

exercises/practice/grains/.meta/config.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
{
22
"blurb": "Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango"
10+
],
411
"files": {
512
"solution": [
613
"Grains.rakumod"

exercises/practice/hamming/.meta/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"blurb": "Calculate the Hamming difference between two DNA strands.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
46
"files": {
57
"solution": [
68
"Hamming.rakumod"

exercises/practice/hello-world/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "The classical introductory exercise. Just say \"Hello, World!\"",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx"
9+
],
410
"files": {
511
"solution": [
612
"HelloWorld.rakumod"

exercises/practice/leap/.meta/config.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
{
22
"blurb": "Given a year, report if it is a leap year.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"alexkalderimis",
8+
"kotp",
9+
"kytrinyx",
10+
"m-dango",
11+
"pgraemer",
12+
"yanick"
13+
],
414
"files": {
515
"solution": [
616
"Leap.rakumod"

exercises/practice/linked-list/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "Implement a doubly linked list",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"m-dango"
9+
],
410
"files": {
511
"solution": [
612
"LinkedList.rakumod"

exercises/practice/luhn/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "Given a number determine whether or not it is valid per the Luhn formula.",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"m-dango"
9+
],
410
"files": {
511
"solution": [
612
"Luhn.rakumod"

exercises/practice/meetup/.meta/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"blurb": "Calculate the date of meetups.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
46
"files": {
57
"solution": [
68
"Meetup.rakumod"

exercises/practice/nucleotide-count/.meta/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"blurb": "Given a DNA string, compute how many times each nucleotide occurs in the string.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
46
"files": {
57
"solution": [
68
"NucleotideCount.rakumod"

exercises/practice/pangram/.meta/config.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
22
"blurb": "Determine if a sentence is a pangram.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
46
"files": {
57
"solution": [
68
"Pangram.rakumod"

exercises/practice/phone-number/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Clean up user-entered phone numbers so that they can be sent SMS messages.",
3-
"authors": [],
3+
"authors": [
4+
"m-dango"
5+
],
6+
"contributors": [
7+
"kotp"
8+
],
49
"files": {
510
"solution": [
611
"Phone.rakumod"

exercises/practice/raindrops/.meta/config.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
{
22
"blurb": "Convert a number to a string, the content of which depends on the number's factors.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango"
10+
],
411
"files": {
512
"solution": [
613
"Raindrops.rakumod"

exercises/practice/rna-transcription/.meta/config.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"blurb": "Given a DNA strand, return its RNA Complement Transcription.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango",
10+
"yanick"
11+
],
412
"files": {
513
"solution": [
614
"RNA.rakumod"

exercises/practice/robot-name/.meta/config.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"blurb": "Manage robot factory settings.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"kytrinyx",
9+
"m-dango",
10+
"yanick"
11+
],
412
"files": {
513
"solution": [
614
"Robot.rakumod"

exercises/practice/roman-numerals/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Write a function to convert from normal numbers to Roman Numerals.",
3-
"authors": [],
3+
"authors": [
4+
"dcampos"
5+
],
6+
"contributors": [
7+
"m-dango"
8+
],
49
"files": {
510
"solution": [
611
"RomanNumerals.rakumod"

exercises/practice/scrabble-score/.meta/config.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
{
22
"blurb": "Given a word, compute the Scrabble score for that word.",
3-
"authors": [],
3+
"authors": [
4+
"dnmfarrell"
5+
],
6+
"contributors": [
7+
"drewbs",
8+
"kotp",
9+
"kytrinyx",
10+
"m-dango"
11+
],
412
"files": {
513
"solution": [
614
"Scrabble.rakumod"

exercises/practice/space-age/.meta/config.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
{
22
"blurb": "Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"kotp",
8+
"m-dango"
9+
],
410
"files": {
511
"solution": [
612
"SpaceAge.rakumod"

exercises/practice/trinary/.meta/config.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
{
22
"blurb": "Convert a trinary number, represented as a string (e.g. '102012'), to its decimal equivalent using first principles.",
3-
"authors": [],
3+
"authors": [
4+
"yanick"
5+
],
6+
"contributors": [
7+
"m-dango"
8+
],
49
"files": {
510
"solution": [
611
"Trinary.rakumod"

0 commit comments

Comments
 (0)